Compartilhar via


Criando um complemento Phi Silica para Electron

Este guia mostra como criar um complemento nativo em C# que usa o modelo de IA Phi Silica para resumir o texto no dispositivo em seu aplicativo Electron. O Phi Silica é um modelo de linguagem pequeno que é executado localmente em dispositivos Windows 11 com NPUs.

Pré-requisitos

Observação

O Phi Silica requer um pc Copilot+ com suporte de NPU. A API retornará um erro em dispositivos sem suporte à NPU.

Etapa 1: Criar um complemento nativo em C#

npx winapp node create-addon --template cs --name csAddon

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 Windows App SDK
  • README.md -Documentação

O comando também adiciona um script build-addon ao seu package.json.

Crie o complemento:

npm run build-addon

Etapa 2: Adicionar código Phi Silica

Abra csAddon/addon.cs e adicione o código de resumo Phi Silica:

using Microsoft.JavaScript.NodeApi;
using Microsoft.Windows.AI.Generative;

namespace CsAddon;

[JSExport]
public static class Addon
{
    public static async Task<string> SummarizeText(string text)
    {
        var session = await LanguageModel.CreateAsync();
        var result = await session.GenerateResponseAsync($"Summarize: {text}");
        return result.Response;
    }
}

Etapa 3: Criar o complemento

npm run build-addon

Isso compila seu código C# usando Native AOT (compilação antecipada), que cria um binário .node que não requer .NET runtime em computadores de destino.

Etapa 4: Testar o complemento

Abra src/index.js e carregue o complemento:

const csAddon = require('../csAddon/dist/csAddon.node');

Adicionar uma função de teste:

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);
};

Chame-o em createWindow():

callPhiSilica();

Etapa 5: Adicionar a funcionalidade necessária

Abra appxmanifest.xml e adicione a systemAIModels funcionalidade:

<Capabilities>
  <rescap:Capability Name="runFullTrust" />
  <rescap:Capability Name="systemAIModels" />
</Capabilities>

Etapa 6: Atualizar identidade de depuração

Depois de modificar appxmanifest.xml, atualize a identidade de depuração.

npx winapp node add-electron-debug-identity

Execute o aplicativo:

npm start

Verifique a saída do console para o resumo do Phi Silica.

Observação

Há um bug conhecido no Windows associado a aplicativos Electron com embalagem esparsa, que pode resultar em falhas ou janelas em branco. Consulte o guia de configuração para a solução alternativa.

Próximas Etapas