Appeler Phi Silica à partir de JavaScript (liaisons JS)

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 :

É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-codegen0.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 à :

Ou explorez d’autres guides :

Ressources additionnelles