Aufrufen von Phi Silika aus JavaScript (JS-Bindungen)

In diesem Leitfaden wird gezeigt, wie Sie die Windows App SDK Phi-Silika-Textzusammenfassungs-API direkt aus Electron JavaScript mithilfe generierter JS-Bindungen aufrufen.

Voraussetzungen

Bevor Sie diesen Leitfaden starten, stellen Sie sicher, dass Sie folgendes haben:

Schritt 1: Hinzufügen der KI-Funktion

Phi Silica erfordert die systemAIModels eingeschränkte Fähigkeit. Fügen Sie es zu Package.appxmanifest in <Capabilities> hinzu:

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

Aktualisieren Sie nach dem Ändern des Manifests die Debugidentität:

npx winapp node add-electron-debug-identity

Schritt 2: Aufrufen von Phi-Silikate aus dem Elektronen-Hauptprozess

Importieren Sie die generierten Bindungen über #winapp/bindings, erstellen Sie ein TextSummarizer und rufen Sie es am Ende von createWindow() auf, um zu überprüfen, ob alles funktioniert:

Erfordert @microsoft/dynwinrt-codegen0.1.0-preview.8 — siehe Erste Schritte mit Electron für Ausweichlösungen bei älteren Projekten.

// 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();
};

Hinweis

getReadyState() gibt einen von Ready, NotReady, , DisabledByUseroder NotSupportedOnCurrentSystem. Der Aufruf von ensureReadyAsync() veranlasst das System, das Modell herunterzuladen bzw. zu initialisieren, falls es noch nicht bereit ist.

Schritt 3: Ausführen

npm start

Überprüfen Sie die Konsolenausgabe – Sie sollten die Phi-Silica-Zusammenfassung sehen!

Wenn das Modell auf dem Gerät nicht verfügbar ist, protokolliert die Funktion "Summary: Model is not available". Stellen Sie sicher, dass Sie unterstützte Hardware (Copilot+ PC) verwenden und dass das Manifest systemAIModels enthält.

Von hier aus können Sie die Zusammenfassungsfunktion ganz nach Ihren Wünschen in Ihre App integrieren – indem Sie sie über ein Preload-Skript dem Renderer zur Verfügung stellen, mit IPC-Handlern verbinden oder direkt im Hauptprozess aufrufen.

Nächste Schritte

Herzlichen Glückwunsch! Sie können Phi Silica jetzt direkt aus JavaScript aufrufen – ohne C#-Addon, ohne node-gyp Build-Schritt. 🎉

Jetzt sind Sie bereit für:

Oder erkunden Sie andere Guides:

Zusätzliche Ressourcen