Création d’un module complémentaire Phi Silicon pour Electron

Ce guide vous montre comment créer un module complémentaire natif C# qui utilise le modèle IA Phi Silicon pour synthétiser du texte sur appareil dans votre application Electron. Phi Silicon est un petit modèle de langage qui s’exécute localement sur des appareils Windows 11 avec des processeurs réseau.

Prerequisites

Note

Phi Silicon nécessite un PC Copilot+ avec prise en charge de NPU. L'API renverra une erreur sur les appareils sans support NPU.

Étape 1 : Créer un complément natif C#

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

Cela crée un csAddon/ dossier avec :

  • addon.cs - Votre code C# qui appelle les API Windows
  • csAddon.csproj - fichier Project avec des références au Kit de développement logiciel (SDK) Windows et Windows App SDK
  • README.md -Documentation

La commande ajoute également un build-addon script à votre package.json.

Générez le module complémentaire :

npm run build-addon

Étape 2 : Ajouter du code Phi Silicon

Ouvrez csAddon/addon.cs et ajoutez le code de synthèse Phi Silicon :

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

Étape 3 : Générer le module complémentaire

npm run build-addon

Cela compile votre code C# à l’aide de Native AOT (compilation anticipée), qui crée un binaire .node qui ne nécessite aucun runtime .NET sur les machines cibles.

Étape 4 : Tester le module complémentaire

Ouvrez src/index.js et chargez le module complémentaire :

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

Ajoutez une fonction de test :

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

Appelez-le dans createWindow():

callPhiSilica();

Étape 5 : Ajouter une fonctionnalité requise

Ouvrez appxmanifest.xml et ajoutez la systemAIModels fonctionnalité :

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

Étape 6 : Mettre à jour l’identité de débogage

Après avoir modifié appxmanifest.xml, mettez à jour l'identité de débogage :

npx winapp node add-electron-debug-identity

Exécutez l’application :

npm start

Vérifiez la sortie de la console pour le résumé de Phi Silica.

Note

Il existe un bogue Windows connu avec l’empaquetage d’applications Electron éparses qui peuvent provoquer des blocages ou des fenêtres vides. Consultez le guide de configuration pour la solution de contournement.

Étapes suivantes