Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как вызвать API сводных данных Windows App SDK Phi Silica непосредственно из Electron JavaScript с помощью созданных привязок JS.
Prerequisites
Перед началом работы с этим руководством убедитесь, что вы:
- Завершил настройку среды разработки.
- Протестировано на Copilot+ PC. Для Phi Silica требуется оборудование, поддерживающее локальную языковую модель.
Шаг 1. Добавление возможности ИИ
Phi Silica требует наличия возможности systemAIModels с ограниченным доступом. Добавьте его в Package.appxmanifest внутри <Capabilities>:
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="systemAIModels" />
</Capabilities>
После изменения манифеста обновите идентификатор отладки:
npx winapp node add-electron-debug-identity
Шаг 2: Вызов Phi Silica из основного процесса Electron
Импортируйте созданные привязки с помощью #winapp/bindings, создайте TextSummarizerи вызовите его в конце createWindow() , чтобы убедиться, что все работает:
Требуется
@microsoft/dynwinrt-codegen≥0.1.0-preview.8— см. Начало работы с Electron, чтобы узнать об альтернативных вариантах для старых проектов.
// 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() возвращает один из Ready, NotReady, DisabledByUser или NotSupportedOnCurrentSystem. Вызов ensureReadyAsync() вызывает систему для скачивания и инициализации модели, если она еще не готова.
Шаг 3. Запуск
npm start
Проверьте выходные данные консоли— вы увидите сводку phi Silica, напечатанную!
Если модель недоступна на устройстве, функция записывает в журнал "Summary: Model is not available". Убедитесь, что вы используете поддерживаемое оборудование (Copilot+ PC) и что манифест включает systemAIModels.
Отсюда вы можете интегрировать модуль суммаризации в своё приложение любым удобным для вас способом — предоставив к нему доступ из процесса рендеринга через preload-скрипт, подключив его к обработчикам IPC или вызывая его напрямую в основном процессе.
Дальнейшие шаги
Поздравляем! Теперь можно вызывать Phi Silica напрямую из JavaScript — без дополнения на C# и без этапа сборки node-gyp. 🎉
Теперь вы готовы:
-
Упакуйте приложение для распространения — создайте MSIX-пакет, готовый к распространению (
@microsoft/dynwinrtсреда выполнения уже включена в вашdependencies).
Или ознакомьтесь с другими руководствами:
- Отображение уведомления из JavaScript — отображение уведомления Windows App SDK с помощью привязок JS.
- Вызывать API Windows из JavaScript — выберите файл и считайте размеры изображения с помощью JS-привязок.
-
Запуск WinML из JavaScript — используйте обнаружение ML-поставщиков в Windows App SDK с помощью
onnxruntime-node. - Создание надстройки Phi Silica — нативный аналог надстройки на C#.
- Общие сведения о начале работы — вернитесь к основному руководству.
Дополнительные ресурсы
-
Документация по интерфейсу командной строки winapp — полный справочник по CLI (
init,restore,node generate-bindings). - Пример приложения Electron — полный рабочий пример, включая привязки JS.
- @microsoft/dynwinrt — среда выполнения, которая управляет созданными привязками.
- @microsoft/dynwinrt-codegen — генератор кода.
Windows developer