Creación de un complemento Phi Silica para Electron

En esta guía se muestra cómo crear un complemento nativo de C# que use el modelo phiLice AI para resumir el texto en el dispositivo en la aplicación Electron. PhiLice es un modelo de lenguaje pequeño que se ejecuta localmente en dispositivos Windows 11 con NPUs.

Prerrequisitos

Nota:

Phi Silica requiere un PC Copilot+ con soporte de NPU. La API devolverá un error en los dispositivos sin compatibilidad con NPU.

Paso 1: Crear un complemento nativo de C#

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

Esto crea una csAddon/ carpeta con:

  • addon.cs - El código de C# que llamará a las API de Windows
  • csAddon.csproj - Archivo de proyecto con referencias a Windows SDK y Windows App SDK
  • README.md - Documentación

El comando también agrega un build-addon script a package.json.

Compile el complemento:

npm run build-addon

Paso 2: Agregar código Phi Silica

Abra csAddon/addon.cs y agregue el código de resumen de PhiLice:

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

Paso 3: Compilar el complemento

npm run build-addon

Esto compila tu código de C# mediante Native AOT (compilación anticipada), que crea un binario .node que no requiere un tiempo de ejecución .NET en las máquinas de destino.

Paso 4: Probar el complemento

Abra src/index.js y cargue el complemento:

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

Agregue una función de prueba:

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

Llámalo en createWindow():

callPhiSilica();

Paso 5: Agregar la funcionalidad necesaria

Abra appxmanifest.xml y agregue la systemAIModels funcionalidad:

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

Paso 6: Actualización de la identidad de depuración

Después de modificar appxmanifest.xml, actualice la identidad de depuración:

npx winapp node add-electron-debug-identity

Ejecute la aplicación:

npm start

Compruebe la salida de la consola para ver el resumen de PhiLice.

Nota:

Hay un error conocido de Windows con aplicaciones de Electron de empaquetado disperso que pueden provocar bloqueos o ventanas en blanco. Consulte la guía de configuración para encontrar una alternativa.

Pasos siguientes