Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia mostra como criar um complemento nativo em C# que chama a API de IA do Phi Silica em seu aplicativo Electron. O Phi Silica é um modelo de linguagem pequeno que é executado localmente em dispositivos Windows 11 com NPUs (Unidades de Processamento Neural).
Pré-requisitos
Antes de iniciar este guia, verifique se você:
- Concluído a configuração do ambiente de desenvolvimento
- Copilot+ PC - Phi Silica requer um dispositivo com uma NPU (Unidade de Processamento Neural)
Observação
Se você não estiver em um Copilot+ PC, ainda poderá seguir este guia para aprender o processo de criação do complemento. O código manipulará normalmente dispositivos sem suporte à NPU retornando uma mensagem indicando que o modelo não está disponível.
Etapa 1: Criar um complemento nativo em C#
Agora vem a parte emocionante - vamos criar um complemento nativo que chama APIs do Windows! Usaremos um modelo C# que aproveita o node-api-dotnet para fazer a ponte entre JavaScript e C#.
npx winapp node create-addon --template cs
Isso cria uma csAddon/ pasta com:
-
addon.cs- Seu código C# que chamará APIs do Windows -
csAddon.csproj– arquivo Project com referências ao SDK do Windows e SDK do Aplicativo Windows -
README.md- Documentação sobre como usar o complemento
O comando também adiciona um build-csAddon script à sua package.json criação do complemento e um clean-csAddon script para limpar artefatos de build:
{
"scripts": {
"build-csAddon": "dotnet publish ./csAddon/csAddon.csproj -c Release",
"clean-csAddon": "dotnet clean ./csAddon/csAddon.csproj"
}
}
O modelo inclui automaticamente referências para ambos os SDKs, para que você possa iniciar imediatamente a chamada Windows APIs!
Vamos verificar se tudo está configurado corretamente criando o complemento:
# Build the C# addon
npm run build-csAddon
Observação
Você também pode criar um complemento C++ usando npx winapp node create-addon (sem o --template sinalizador). Os complementos do C++ usam node-addon-api e fornecem acesso direto às APIs Windows com desempenho máximo. Consulte o guia do Complemento de Notificação do C++ para obter um passo a passo ou a documentação completa do comando para obter mais opções.
Etapa 2: Adicionar recursos de IA com o Phi Silica
Vamos adicionar uma API SDK do Aplicativo Windows real– usaremos o modelo de IA Phi Silica para resumir o texto diretamente no dispositivo.
Abra csAddon/addon.cs e adicione este código:
using System;
using System.Threading.Tasks;
using Microsoft.JavaScript.NodeApi;
using Microsoft.Windows.AI;
using Microsoft.Windows.AI.Text;
namespace csAddon
{
[JSExport]
public class Addon
{
/// <summary>
/// Summarizes the provided text using the Phi Silica AI model.
/// </summary>
/// <param name="text">The text to summarize</param>
/// <returns>A summary of the input text</returns>
[JSExport]
public static async Task<string> SummarizeText(string text)
{
try
{
var readyState = LanguageModel.GetReadyState();
if (readyState is AIFeatureReadyState.Ready or AIFeatureReadyState.NotReady)
{
if (readyState == AIFeatureReadyState.NotReady)
{
await LanguageModel.EnsureReadyAsync();
}
using LanguageModel languageModel = await LanguageModel.CreateAsync();
TextSummarizer textSummarizer = new TextSummarizer(languageModel);
var result = await textSummarizer.SummarizeParagraphAsync(text);
return result.Text;
}
return "Model is not available";
}
catch (Exception ex)
{
return $"Error calling Phi Silica API: {ex.Message}";
}
}
}
}
Observação
O Phi Silica requer Windows 11 com um dispositivo equipado com NPU (Copilot+ PC). Se você não tiver hardware compatível, a API retornará uma mensagem indicando que o modelo não está disponível. Você ainda pode concluir este tutorial e empacotar o aplicativo– ele manipulará normalmente os dispositivos sem suporte à NPU.
Etapa 3: Criar o complemento do C#
Agora, crie o complemento novamente:
npm run build-csAddon
Isso compila seu código C# usando Native AOT (compilação em tempo antecipado), que:
- Cria um
.nodebinário (formato de complemento nativo) - Corta o código não utilizado para um tamanho de pacote menor
- Não requer .NET runtime em computadores de destino
- Fornece desempenho nativo
O complemento compilado estará em csAddon/dist/csAddon.node.
Etapa 4: Testar a API de Windows
Agora, vamos verificar se o complemento funciona chamando-o do processo principal. Abra src/main.js e siga estas etapas:
4.1. Carregar o complemento do C#
Adicione isso com suas outras require declarações na parte superior do arquivo:
const csAddon = require('../csAddon/dist/csAddon.node');
4.2. Criar uma função de teste
Adicione essa função em algum lugar do arquivo (após as instruções necessárias):
const callPhiSilica = async () => {
console.log('Summarizing with Phi Silica: ')
const result = await csAddon.Addon.summarizeText("The Windows App Development CLI is a powerful tool that bridges cross-platform development with Windows-native capabilities.");
console.log('Summary:', result);
};
4.3. Chamar a função
Adicione essa linha no final da createWindow() função para testar a API quando o aplicativo for iniciado:
callPhiSilica();
Quando você executar o aplicativo, o resumo será impresso no console. A partir daqui, você pode integrar o complemento ao seu aplicativo como desejar, seja expondo-o ao processo do renderizador por meio de um script de pré-carregamento, chamando-o a partir dos manipuladores IPC, ou usando-o diretamente no processo principal.
Etapa 5: Adicionar funcionalidade necessária
Antes de usar a API Phi Silica, você precisa declarar a funcionalidade necessária no manifesto do aplicativo. Abra Package.appxmanifest e adicione a systemAIModels funcionalidade dentro da <Capabilities> seção:
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="systemAIModels" />
</Capabilities>
Dica
ApIs de Windows diferentes exigem recursos diferentes. Sempre verifique a documentação da API para ver quais recursos são necessários. As mais comuns incluem microphone, webcame locationbluetooth.
Etapa 6: Atualizar identidade de depuração
Sempre que você modificar Package.appxmanifest ou alterar ativos referenciados no manifesto (como ícones de aplicativo), será necessário atualizar a identidade de depuração do aplicativo. Execute:
npx winapp node add-electron-debug-identity
Este comando:
- Lê o seu
Package.appxmanifestpara obter detalhes e funcionalidades do aplicativo - Registra
electron.exeem suanode_modulescom uma identidade temporária - Permite que você teste APIs que exigem identidade sem a necessidade de empacotamento MSIX completo
Observação
Esse comando já faz parte do postinstall script que adicionamos no guia de instalação, portanto, ele é executado automaticamente após npm install. No entanto, você precisa executá-lo manualmente sempre que:
- Modificar
Package.appxmanifest(alterar recursos, identidade ou propriedades) - Atualizar ativos do aplicativo (ícones, logotipos etc.)
- Reinstalar ou atualizar dependências
Agora, execute seu aplicativo:
npm start
Verifique a saída do console – você deve ver o resumo do Phi Silica impresso!
⚠️ Problema Conhecido: Falhas de aplicativo ou janela em branco (clique para expandir)
Há um bug de Windows conhecido com aplicativos Electron de empacotamento esparso que faz com que o aplicativo falhe no início ou não renderize o conteúdo da Web. O problema foi corrigido em Windows mas ainda não foi propagado para todos os dispositivos.
Consulte a configuração do ambiente de desenvolvimento para solução alternativa.
Próximas etapas
Parabéns! Você criou com êxito um complemento nativo que chama APIs de IA do Windows! 🎉
Agora você está pronto para:
- Empacotar seu aplicativo para distribuição – Criar um pacote MSIX que você pode distribuir
Ou explore outros guias:
- Criando um complemento WinML – Saiba como usar Windows Machine Learning
- Visão geral de introdução – Retornar ao guia principal
Recursos adicionais
- Documentação da CLI do winapp – Referência completa da CLI
- Exemplo de aplicativo Electron – exemplo totalmente funcional
- Windows AI Addon for Electron - O suplemento de IA Windows para Electron é um suplemento nativo Node.js que fornece acesso às APIs de IA Windows diretamente do JavaScript.
- Galeria de Desenvolvimento de IA – Galeria de exemplos de todas as APIs de IA
- SDK do Aplicativo Windows Samples - Coleção de amostras de SDK do Aplicativo Windows
- node-api-dotnet – biblioteca de interoperabilidade do JavaScript em C# ↔
Windows developer