Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta guía se muestra cómo invocar directamente la API de resumido de texto Phi Silica de SDK de Aplicaciones para Windows desde JavaScript de Electron mediante enlaces de JS generados.
Prerequisites
Antes de iniciar esta guía, asegúrese de que tiene:
- Completó la configuración del entorno de desarrollo.
- Probado en un Copilot+ PC. PhiLice requiere hardware que admita el modelo de lenguaje local.
Paso 1: Adición de la funcionalidad de IA
Phi Silica requiere la systemAIModels capacidad restringida. Añádalo a Package.appxmanifest dentro de <Capabilities>:
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="systemAIModels" />
</Capabilities>
Después de cambiar el manifiesto, actualice la identidad de depuración:
npx winapp node add-electron-debug-identity
Paso 2: Invocar Phi Silica desde el proceso principal de Electron
Importe los enlaces generados a través de #winapp/bindings, cree un TextSummarizer e invóquelo al final de createWindow() para comprobar que todo funciona:
Requiere
@microsoft/dynwinrt-codegen≥0.1.0-preview.8— consulta Primeros pasos con Electron para soluciones alternativas para proyectos antiguos.
// src/index.js (Electron main, CommonJS)
const {
AIFeatureReadyState,
LanguageModel,
TextSummarizer,
} = require('#winapp/bindings');
const callPhiSilica = async () => {
console.log('Summarizing with Phi Silica:');
const readyState = LanguageModel.getReadyState();
if (readyState !== AIFeatureReadyState.Ready && readyState !== AIFeatureReadyState.NotReady) {
console.log('Summary: Model is not available');
return;
}
if (readyState === AIFeatureReadyState.NotReady) {
await LanguageModel.ensureReadyAsync();
}
const languageModel = await LanguageModel.createAsync();
try {
const summarizer = TextSummarizer.createInstance(languageModel);
const result = await summarizer.summarizeParagraphAsync(
"The Windows App Development CLI lets Electron apps call Windows-native APIs from JavaScript. Package identity enables features such as notifications and background tasks."
);
console.log('Summary:', result.text);
} finally {
languageModel.close();
}
};
const createWindow = () => {
// ... existing window creation code ...
// Test the Phi Silica AI API
callPhiSilica();
};
Note
getReadyState() devuelve uno de Ready, NotReady, DisabledByUsero NotSupportedOnCurrentSystem. Llamar a ensureReadyAsync() hace que el sistema descargue/inicialice el modelo si aún no está listo.
Paso 3: Ejecutarlo
npm start
Compruebe la salida de la consola — debería ver el resumen de PhiLice impreso!
Si el modelo no está disponible en el dispositivo, la función registra "Summary: Model is not available". Asegúrese de que se está ejecutando en hardware admitido (Copilot+ PC) y de que el manifiesto incluye systemAIModels.
Desde aquí, puedes integrar la función de resumen en tu aplicación como quieras: exponiéndola al proceso de renderizado mediante un script de precarga, conectándola a controladores de IPC o llamándola directamente en el proceso principal.
Pasos siguientes
¡Felicidades! Ahora puedes llamar a Phi Silica directamente desde JavaScript, sin complemento de C# ni paso de compilación node-gyp. 🎉
Ahora ya está listo para:
-
Empaqueta tu aplicación para su distribución — genera un MSIX que puedes distribuir (el
@microsoft/dynwinrtentorno de ejecución ya está en tudependencies).
O explore otras guías:
- Mostrar una notificación de JavaScript: muestra una notificación de SDK de Aplicaciones para Windows a través de enlaces JS.
- Llamar a Windows API desde JavaScript: elija un archivo y lea sus dimensiones de imagen mediante enlaces JS.
-
Ejecutar WinML desde JavaScript — use la detección de proveedores de ML de SDK de Aplicaciones para Windows con
onnxruntime-node. - Creación de un complemento de PhiLice : homólogo nativo del complemento de C#.
- Introducción: vuelva a la guía principal.
Recursos adicionales
-
Documentación de la CLI de winapp : referencia completa de la CLI (
init,restore,node generate-bindings). - Aplicación de ejemplo de Electron — ejemplo funcional completo, incluidos los bindings de JS.
- @microsoft/dynwinrt : el entorno de ejecución que alimenta los enlaces generados.
- @microsoft/dynwinrt-codegen : el generador de código.