Anropa Phi Silica från JavaScript (JS-bindningar)

Den här guiden visar hur du anropar api:et för Windows App SDK Phi Silica-textsammanfattning direkt från Electron JavaScript med hjälp av genererade JS-bindningar.

Förutsättningar

Kontrollera att du har gjort så här innan du startar den här guiden:

  • Installationen av utvecklingsmiljön har slutförts.
  • Testad på en Copilot+ PC. Phi Silica kräver maskinvara som stöder den lokala språkmodellen.

Steg 1: Lägg till AI-funktionen

Phi Silica kräver begränsad systemAIModels kapacitet. Lägg till den i Package.appxmanifest inuti <Capabilities>:

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

När du har ändrat manifestet uppdaterar du felsökningsidentiteten:

npx winapp node add-electron-debug-identity

Steg 2: Anropa Phi Silica från elektronens huvudprocess

Importera de genererade bindningarna via #winapp/bindings, skapa en TextSummarizeroch anropa den i slutet av createWindow() för att kontrollera att allt fungerar:

Kräver @microsoft/dynwinrt-codegen0.1.0-preview.8 — se Kom igång med Electron för reservlösningar för äldre projekt.

// 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() returnerar en av Ready, NotReady, DisabledByUsereller NotSupportedOnCurrentSystem. Anrop ensureReadyAsync() utlöser systemet för att ladda ned/initiera modellen om den inte är klar ännu.

Steg 3: Kör det

npm start

Kontrollera konsolens utdata – du bör se Phi Silica-sammanfattningen utskriven!

Om modellen inte är tillgänglig på enheten loggar funktionen "Summary: Model is not available". Kontrollera att du kör på maskinvara som stöds (Copilot+ PC) och att manifestet innehåller systemAIModels.

Härifrån kan du integrera sammanfattningen i din app, hur du vill – exponera den via ett förinläsningsskript till renderaren, koppla den till IPC-hanterare eller anropa den direkt i huvudprocessen.

Nästa steg

Grattis! Nu anropar du Phi Silica direkt från JavaScript – inget C#-tillägg, inget node-gyp byggsteg. 🎉

Nu är du redo att:

Eller utforska andra guider:

Ytterligare resurser