Skapa ett Phi Silica-tillägg för Electron

Den här guiden visar hur du skapar ett inbyggt C#-tillägg som använder Ai-modellen Phi Silica för att sammanfatta text på enheten i din Electron-app. Phi Silica är en liten språkmodell som körs lokalt på Windows 11 enheter med NPU:er.

Förutsättningar

  • Installationen av utvecklingsmiljön har slutförts
  • Copilot+ PC (Windows 11 med NPU-stöd)

Anmärkning

Phi Silica kräver en Copilot+ PC med NPU-stöd. API:et returnerar ett fel på enheter utan NPU-stöd.

Steg 1: Skapa ett internt C#-tillägg

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

Då skapas en csAddon/ mapp med:

  • addon.cs – Din C#-kod som anropar Windows-API:er
  • csAddon.csproj – Project fil med referenser till Windows SDK och Windows App SDK
  • README.md -Dokumentation

Kommandot lägger också till ett build-addon skript i package.json.

Skapa tillägget:

npm run build-addon

Steg 2: Lägg till Phi Silica-kod

Öppna csAddon/addon.cs och lägg till Phi Silica-sammanfattningskoden:

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

Steg 3: Skapa tillägget

npm run build-addon

Detta kompilerar C#-koden med hjälp av Native AOT (kompilering i förväg), som skapar en .node binär fil som inte kräver någon .NET körning på måldatorer.

Steg 4: Testa tillägget

Öppna src/index.js och läs in tillägget:

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

Lägg till en testfunktion:

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

Kalla på den i createWindow():

callPhiSilica();

Steg 5: Lägg till nödvändig kapacitet

Öppna appxmanifest.xml och lägg till funktionen systemAIModels :

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

Steg 6: Uppdatera felsökningsidentitet

När du har modifierat appxmanifest.xmluppdaterar du felsökningsidentiteten:

npx winapp node add-electron-debug-identity

Kör appen:

npm start

Kontrollera utdata från konsolen för Phi Silicas sammanfattning.

Anmärkning

Det finns en känd Windows-bugg med gles paketering av Elektronprogram som kan orsaka krascher eller tomma fönster. Se installationsguiden för lösningen.

Nästa steg