Volání Phi Silica pomocí JavaScriptu (vazby pro JavaScript)

Tato příručka ukazuje, jak přímo z JavaScriptu v Electronu volat rozhraní API Phi Silica pro shrnutí textu v sadě Windows App SDK pomocí vygenerovaných vazeb JavaScriptu.

Předpoklady

Než začnete s touto příručkou, ujistěte se, že máte:

Krok 1: Přidání funkce AI

Phi Silica vyžaduje systemAIModels omezenou schopnost. Přidejte to do Package.appxmanifest uvnitř <Capabilities>:

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

Po změně manifestu aktualizujte identitu ladění:

npx winapp node add-electron-debug-identity

Krok 2: Volání Phi Silica z hlavního procesu Electron

Importujte vygenerované bindingy pomocí #winapp/bindings, vytvořte TextSummarizer a zavolejte ji na konci createWindow(), abyste ověřili, že všechno funguje:

Vyžaduje @microsoft/dynwinrt-codegen0.1.0-preview.8 – viz Začínáme s Elektronem , kde najdete náhradní řešení starších 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()vrátí jeden z Ready, , NotReadyDisabledByUsernebo NotSupportedOnCurrentSystem. Volání ensureReadyAsync() aktivuje systém ke stažení nebo inicializaci modelu, pokud ještě není připravený.

Krok 3: Spusťte to

npm start

Zkontrolujte výstup konzoly – měl by se zobrazit souhrn Phi Silica vytištěný!

Pokud model není v zařízení dostupný, funkce zaznamená do protokolu "Summary: Model is not available". Ujistěte se, že používáte podporovaný hardware (Copilot+ PC) a že manifest obsahuje systemAIModels.

Odtud můžete shrnovací nástroj integrovat do své aplikace jakkoli budete chtít — například ho zpřístupnit rendereru pomocí preload skriptu, připojit k obslužným funkcím IPC nebo ho volat přímo v hlavním procesu.

Další kroky

Gratulujeme! Teď voláte Phi Silica přímo z JavaScriptu – žádný doplněk jazyka C#, žádný node-gyp krok sestavení. 🎉

Teď jste připraveni:

  • Zabalte aplikaci pro distribuci – vytvořte balíček MSIX, který můžete distribuovat (běhové prostředí @microsoft/dynwinrt je už součástí vašeho dependencies).

Nebo prozkoumejte další příručky:

Další zdroje