Vytvoření doplňku Phi Silica pro Elektron

V této příručce se dozvíte, jak vytvořit nativní doplněk jazyka C#, který používá model Phi Silica AI k sumarizaci textu na zařízení v aplikaci Elektron. Phi Silica je malý jazykový model, který běží místně na Windows 11 zařízeních s NPU.

Předpoklady

Poznámka:

Phi Silica vyžaduje počítač Copilot+ s podporou NPU. Rozhraní API vrátí chybu na zařízeních bez podpory NPU.

Krok 1: Vytvoření nativního doplňku jazyka C#

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

Tím se csAddon/ vytvoří složka s:

  • addon.cs – Váš kód v jazyce C#, který bude volat Windows API
  • csAddon.csproj – Projektový soubor s odkazy na sadu Windows SDK a Windows App SDK
  • README.md -Dokumentace

Příkaz také přidá build-addon skript do vašeho package.jsonsouboru .

Sestavte doplněk:

npm run build-addon

Krok 2: Přidání kódu Phi Silica

Otevřete csAddon/addon.cs a přidejte kód souhrnu 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;
    }
}

Krok 3: Sestavení doplňku

npm run build-addon

Tím se kód jazyka C# zkompiluje pomocí Native AOT (kompilace před časem), která vytvoří binární soubor .node, který na cílových počítačích nevyžaduje žádný modul runtime .NET.

Krok 4: Otestování doplňku

Otevřete src/index.js a načtěte doplněk:

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

Přidání testovací funkce:

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

Volejte ho v createWindow():

callPhiSilica();

Krok 5: Přidání požadované funkce

Otevřete appxmanifest.xml a přidejte systemAIModels funkci:

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

Krok 6: Aktualizace identity ladění

Po úpravě appxmanifest.xmlaktualizujte identitu ladění:

npx winapp node add-electron-debug-identity

Spuštění aplikace:

npm start

Zkontrolujte výstup konzoly pro zobrazení souhrnu "Phi Silica."

Poznámka:

Existuje známá chyba ve Windows se „sparse packaging“ aplikací Electron, která může způsobit pády nebo prázdná okna. Alternativní řešení najdete v průvodci nastavením .

Další kroky