Criar um addon Phi Silica para o Electron

Este guia mostra-lhe como criar um addon nativo de C# que utilize o modelo de IA Phi Silica para resumir texto no dispositivo na sua aplicação Electron. Phi Silica é um pequeno modelo de linguagem que corre localmente em dispositivos Windows 11 com NPUs.

Pré-requisitos

Observação

A Phi Silica requer um PC Copilot+ com suporte NPU. A API devolverá um erro em dispositivos sem suporte a NPU.

Passo 1: Criar um addon nativo de C#

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

Isto cria uma csAddon/ pasta com:

  • addon.cs - O seu código C# que irá chamar APIs do Windows
  • csAddon.csproj - ficheiro Project com referências ao Windows SDK e Windows App SDK
  • README.md - Documentação

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

Construa o addon:

npm run build-addon

Passo 2: Adicionar código Phi Silica

Abra csAddon/addon.cs e adicione o código de sumarização da 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;
    }
}

Passo 3: Constrói o addon

npm run build-addon

Isto compila o seu código C# usando Native AOT (compilação antecipada ao tempo), que cria um binário .node que não requer tempo de execução .NET nas máquinas alvo.

Passo 4: Testar o addon

Abra src/index.js e carregue o adddon:

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

Avisa createWindow():

callPhiSilica();

Passo 5: Adicionar a capacidade necessária

Abra appxmanifest.xml e adicione a systemAIModels capacidade:

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

Passo 6: Atualizar identidade de depuração

Após modificar appxmanifest.xml, atualize a identidade do depurador:

npx winapp node add-electron-debug-identity

Execute o aplicativo:

npm start

Verifique a saída da consola para o resumo da Phi Silica.

Observação

Existe um bug conhecido no Windows com aplicações Electron com empacotamento esparso que pode causar falhas ou janelas em branco. Consulte o guia de configuração para a solução alternativa.

Passos seguintes