Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este guia mostra como invocar diretamente do JavaScript do Electron a API Phi Silica de resumo de texto do SDK de Aplicações Windows, utilizando bindings JavaScript gerados.
Pré-requisitos
Antes de começar este guia, certifique-se de que:
- Concluí a configuração do ambiente de desenvolvimento.
- Testado num Copilot+ PC. A Phi Silica requer hardware que suporte o modelo de linguagem local.
Passo 1: Adicionar a capacidade de IA
A Phi Silica requer essa systemAIModels capacidade limitada. Adicione-o ao Package.appxmanifest dentro de <Capabilities>:
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="systemAIModels" />
</Capabilities>
Após alterar o manifesto, atualize a identidade de depuração:
npx winapp node add-electron-debug-identity
Passo 2: Invocar o Phi Silica a partir do processo principal do Electron
Importe os bindings gerados através de #winapp/bindings, crie um TextSummarizer e chame-o no final de createWindow() para verificar se tudo funciona:
Requer
@microsoft/dynwinrt-codegen≥0.1.0-preview.8— veja Comece com o Electron para alternativas de projetos mais antigos.
// 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() devolve um de Ready, NotReady, DisabledByUser, ou NotSupportedOnCurrentSystem. A chamada ensureReadyAsync() faz com que o sistema descarregue/inicialize o modelo caso ainda não esteja pronto.
Passo 3: Executa
npm start
Consulta a saída da consola — deves ver o resumo da Phi Silica impresso!
Se o modelo não estiver disponível no dispositivo, a função regista "Summary: Model is not available". Certifique-se de que está a correr em hardware suportado (Copilot+ PC) e que o manifesto inclui systemAIModels.
A partir daqui, pode integrar o resumidor na sua aplicação como quiser — expondo-o através de um script de pré-carregamento no processo de renderização, ligando-o a manipuladores de IPC ou chamando-o diretamente no processo principal.
Próximas Etapas
Parabéns! Agora estás a chamar Phi Silica diretamente a partir do JavaScript — sem addon C#, sem node-gyp passo de compilação. 🎉
Agora está pronto para:
-
Empacote a sua aplicação para distribuição — produza um MSIX que possa distribuir (o
@microsoft/dynwinrtruntime já está no seudependencies).
Ou explore outros guias:
- Mostrar uma Notificação de JavaScript — mostrar uma notificação do SDK de Aplicações Windows através de ligações JS.
- Chame APIs do Windows a partir de JavaScript — escolha um ficheiro e leia as suas dimensões de imagem usando bindings JS.
-
Executar o WinML a partir de JavaScript — use a deteção de fornecedores de ML do SDK de Aplicações Windows com
onnxruntime-node. - Criar uma extensão Phi Silica — contraparte de extensão nativa em C#.
- Visão Geral do Início — voltar ao guia principal.
Recursos adicionais
-
Documentação do CLI winapp — referência completa do CLI (
init,restore,node generate-bindings). - Aplicação Electron de exemplo — exemplo completo e funcional, incluindo associações em JS.
- @microsoft/dynwinrt — o tempo de execução que alimenta as ligações geradas.
- @microsoft/dynwinrt-codegen — o gerador de código.
Windows developer