Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide montre comment appeler l’API de synthèse de texte SDK d'application Windows Phi Silicon directement à partir d’Electron JavaScript à l’aide de liaisons JS générées.
Prerequisites
Avant de commencer ce guide, vérifiez que vous avez :
- Terminé la configuration de l’environnement de développement.
- Testé sur un Copilot+ PC. Phi Silicon nécessite du matériel qui prend en charge le modèle de langue locale.
Étape 1 : Ajouter la fonctionnalité IA
Phi Silicon nécessite la systemAIModels capacité restreinte. Ajoutez-le à Package.appxmanifest à l’intérieur de <Capabilities> :
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="systemAIModels" />
</Capabilities>
Après avoir modifié le manifeste, actualisez l’identité de débogage :
npx winapp node add-electron-debug-identity
Étape 2 : Appeler Phi Silica à partir du processus principal électronique
Importez les liaisons générées à l’aide de #winapp/bindings, créez un TextSummarizer, puis appelez-le à la fin de createWindow() pour vérifier que tout fonctionne :
Nécessite
@microsoft/dynwinrt-codegen≥0.1.0-preview.8— consultez Prise en main d’Electron pour les solutions de repli des projets plus anciens.
// 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()renvoie l’un des Ready, , NotReadyou DisabledByUserNotSupportedOnCurrentSystem. L’appel ensureReadyAsync() déclenche le téléchargement/initialisation du modèle par le système s’il n’est pas encore prêt.
Étape 3 : l’exécuter
npm start
Vérifiez la sortie de la console : vous devriez voir le résumé Phi Silica affiché !
Si le modèle n’est pas disponible sur l’appareil, la fonction journalise "Summary: Model is not available". Vérifiez que vous utilisez un matériel pris en charge (Copilot+ PC) et que le manifeste inclut systemAIModels.
À partir de là, vous pouvez intégrer l’outil de synthèse à votre application comme vous le souhaitez — en l’exposant au processus de rendu via un script de préchargement, en le connectant à des gestionnaires IPC ou en l’appelant directement dans le processus principal.
Prochaines étapes
Félicitations ! Vous appelez maintenant Phi Silicon directement à partir de JavaScript — aucun module complémentaire C#, aucune node-gyp étape de génération. 🎉
Vous êtes maintenant prêt à :
-
Empaqueter votre application pour la distribution : produisez un MSIX que vous pouvez expédier (le
@microsoft/dynwinrtruntime est déjà dans votredependencies).
Ou explorez d’autres guides :
- Afficher une notification à partir de JavaScript : affiche une notification SDK d'application Windows via des liaisons JS.
- Appelez Windows API à partir de JavaScript : choisissez un fichier et lisez ses dimensions d’image à l’aide de liaisons JS.
-
Exécuter WinML à partir de JavaScript — utilisez la découverte du fournisseur ML de SDK d'application Windows avec
onnxruntime-node. - Création d’un addon Phi Silicon — équivalent natif du module complémentaire C#.
- Vue d’ensemble de la prise en main : revenez au guide principal.
Ressources additionnelles
-
Documentation de l’interface CLI winapp : référence CLI complète (
init,restore,node generate-bindings). - Exemple d’application Electron : exemple de travail complet, y compris les liaisons JS.
- @microsoft/dynwinrt : runtime qui alimente les liaisons générées.
- @microsoft/dynwinrt-codegen : le générateur de code.
Windows developer