Phi Silicium aanroepen vanuit JavaScript (JS-bindingen)

In deze handleiding ziet u hoe u de Windows App SDK samenvattings-API van Phi Silicium-tekst rechtstreeks vanuit Electron JavaScript aanroept met behulp van gegenereerde JS-bindingen.

Prerequisites

Voordat u aan deze handleiding begint, moet u het volgende doen:

Stap 1: De AI-mogelijkheid toevoegen

PhiSilium vereist de systemAIModels beperkte mogelijkheden. Voeg het toe aan Package.appxmanifest in <Capabilities>:

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

Nadat u het manifest hebt gewijzigd, vernieuwt u de foutopsporingsidentiteit:

npx winapp node add-electron-debug-identity

Stap 2: Roep PhiSilium aan vanuit het Electron Main-proces

Importeer de gegenereerde bindingen via #winapp/bindings, maak een TextSummarizeren roep deze aan aan het einde van createWindow() om te controleren of alles werkt:

Vereist @microsoft/dynwinrt-codegen0.1.0-preview.8 — zie Aan de slag met Electron voor alternatieven voor oudere projecten.

// 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() retourneert een van Ready, NotReady, DisabledByUserof NotSupportedOnCurrentSystem. Het aanroepen ensureReadyAsync() activeert het systeem om het model te downloaden/initialiseren als het nog niet gereed is.

Stap 3: Voer deze uit

npm start

Controleer de console-uitvoer. U ziet nu dat de phi-siliciumsamenvatting wordt afgedrukt.

Als het model niet beschikbaar is op het apparaat, logt de functie "Summary: Model is not available". Zorg ervoor dat u werkt op ondersteunde hardware (Copilot+ PC) en dat het manifest bevatsystemAIModels.

Van hieruit kunt u de samenvatter in uw app integreren op welke manier u maar wilt — door deze via een preload-script beschikbaar te maken voor de renderer, deze te koppelen aan IPC-handlers of deze rechtstreeks in het hoofdproces aan te roepen.

Volgende stappen

Gefeliciteerd! U roept Phi Silicium nu rechtstreeks vanuit JavaScript aan: geen C#-invoegtoepassing, geen node-gyp buildstap. 🎉

U kunt nu het volgende doen:

Of bekijk andere handleidingen:

Aanvullende bronnen