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 du matériel qui prend en charge Phi Silica. Pour obtenir des conseils actuels sur le matériel, l’accès et la transition, consultez Prise en main de Phi Silica dans le SDK d'application Windows.
Étape 1 : Ajouter la fonctionnalité IA
Phi Silica nécessite la fonctionnalité systemAIModels. Il réside dans son propresystemai espace de noms , et non rescap , déclarez donc cet espace de noms sur <Package> et marquez-le ignoré, puis ajoutez la fonctionnalité :
<Package
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="rescap systemai">
...
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<systemai:Capability Name="systemAIModels" />
</Capabilities>
</Package>
Il faut également que TargetDeviceFamily/@MaxVersionTested soit au moins 10.0.26226.0.
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 êtes en cours d’exécution sur le matériel Phi Silica pris en charge 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.
- Documentation Phi Silica : configuration matérielle requise actuelle, conseils de préparation et détails de l’API.
- @microsoft/dynwinrt : runtime qui alimente les liaisons générées.
- @microsoft/dynwinrt-codegen : le générateur de code.
Windows developer