Membuat addon Phi Silica untuk Electron

Panduan ini menunjukkan cara membuat addon asli C# yang menggunakan model Phi Silica AI untuk meringkas teks di perangkat di aplikasi Electron Anda. Phi Silica adalah model bahasa kecil yang berjalan secara lokal di perangkat Windows 11 dengan NPU.

Prasyarat

Nota

Phi Silica memerlukan Pc Copilot+ dengan dukungan NPU. API akan mengembalikan kesalahan pada perangkat tanpa dukungan NPU.

Langkah 1: Membuat addon asli C#

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

Ini membuat sebuah folder csAddon/ dengan:

  • addon.cs - Kode C# Anda yang akan memanggil API Windows
  • csAddon.csproj - file Project dengan referensi ke Windows SDK dan Windows App SDK
  • README.md -Dokumentasi

Perintah ini juga menambahkan build-addon skrip ke dalam package.json Anda.

Membangun fungsi tambahan:

npm run build-addon

Langkah 2: Tambahkan kode Phi Silica

Buka csAddon/addon.cs dan tambahkan kode ringkasan 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;
    }
}

Langkah 3: Bangun addon

npm run build-addon

Ini mengkompilasi kode C# Anda menggunakan Native AOT (Kompilasi Ahead-of-Time), yang membuat biner .node yang tidak memerlukan runtime .NET pada mesin target.

Langkah 4: Uji addon

Buka src/index.js dan muat addon:

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

Tambahkan fungsi pengujian:

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

Sebut saja di createWindow():

callPhiSilica();

Langkah 5: Menambahkan kemampuan yang diperlukan

Buka appxmanifest.xml dan tambahkan kemampuan systemAIModels:

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

Langkah 6: Memperbarui identitas debug

Setelah memodifikasi appxmanifest.xml, perbarui identitas debug:

npx winapp node add-electron-debug-identity

Jalankan aplikasi:

npm start

Periksa output konsol untuk ringkasan Phi Silica.

Nota

Ada bug Windows yang diketahui terkait dengan aplikasi Electron berkemasan sparse yang dapat menyebabkan aplikasi crash atau jendela tampil kosong. Lihat panduan penyiapan untuk solusinya.

Langkah berikutnya