Introdução ao Phi Silica no SDK do Aplicativo Windows
Importante
Esta funcionalidade ainda não está disponível. Espera-se que seja lançado numa próxima versão do canal experimental do SDK de Aplicações do Windows.
O SDK de Aplicativos Windows canal experimental inclui APIs e recursos em estágios iniciais de desenvolvimento. Todas as APIs no canal experimental estão sujeitas a extensas revisões e alterações significativas e podem ser removidas em versões futuras a qualquer momento. Eles não são suportados para uso em ambientes de produção e os aplicativos que usam recursos experimentais não podem ser publicados na Microsoft Store.
Phi Silica é um modelo de idioma local que você poderá integrar em seus aplicativos do Windows usando o SDK de Aplicativo Windows.
Como o modelo de linguagem local otimizado para NPU mais poderoso da Microsoft, o Phi Silica é otimizado para eficiência e desempenho em dispositivos com Windows Copilot+, além de oferecer muitos dos recursos encontrados nos Modelos de Linguagem de Grande Escala (LLMs).
Esse nível de otimização é exclusivo para o modelo dentro do SDK do Aplicativo Windows e não está disponível em outras versões do Phi.
Para obter detalhes da API, consulte a referência da API para Phi Silica no SDK do Windows App.
Dica
Forneça feedback sobre estas APIs e suas funcionalidades criando um novo Problema no repositório GitHub do Windows App SDK. (Certifique-se de incluir Phi Silica no título!)
Pré-requisitos
- CoPilot+ PCs contendo um processador Qualcomm Snapdragon® X Elite.
Use o SDK do Aplicativo Windows para integrar o Phi Silica ao seu aplicativo do Windows
Com um modelo de idioma Phi Silica local e o SDK do Aplicativo Windows, você pode gerar respostas de texto para solicitações do usuário.
Gerar uma resposta completa
Este exemplo mostra como gerar uma resposta a um prompt Q&A onde a resposta completa é gerada antes que o resultado seja retornado.
- Primeiro, garantimos que o modelo de idioma esteja disponível chamando o método
IsAvailable e aguardando que o método MakeAvailableAsync retorne com êxito. - Uma vez que o modelo de linguagem esteja disponível, criamos um objeto LanguageModel para fazer referência a ele.
- Finalmente, enviamos um prompt de cadeia de caracteres para o modelo usando o método GenerateResponseAsync, que retorna o resultado completo.
using Microsoft.Windows.AI.Generative;
if (!LanguageModel.IsAvailable())
{
var op = await LanguageModel.MakeAvailableAsync();
}
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
var result = await languageModel.GenerateResponseAsync(prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
if (!LanguageModel::IsAvailable())
{
auto op = LanguageModel::MakeAvailableAsync().get();
}
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
auto result = languageModel.GenerateResponseAsync(prompt).get();
std::cout << result.Response << std::endl;
A resposta gerada por este exemplo é:
The molecular formula for glucose is C6H12O6.
Gerar um fluxo de respostas parciais
Este exemplo mostra como gerar uma resposta a um prompt Q&A onde a resposta é retornada como um fluxo de resultados parciais.
- Primeiro, criamos um objeto LanguageModel para fazer referência ao modelo de idioma local (já verificamos a presença do modelo de idioma no trecho anterior).
- Em seguida, recuperamos de forma assíncrona o LanguageModelResponse numa chamada para GenerateResponseWithProgressAsync e escrevemo-lo no console à medida que a resposta é gerada.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
AsyncOperationProgressHandler<LanguageModelResponse, string>
progressHandler = (asyncInfo, delta) =>
{
Console.WriteLine($"Progress: {delta}");
Console.WriteLine($"Response so far: {asyncInfo.GetResults().Response()}");
};
var asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);
asyncOp.Progress = progressHandler;
var result = await asyncOp;
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "Provide the molecular formula for glucose.";
AsyncOperationProgressHandler<LanguageModelResponse, std::string> progressHandler =
[](const IAsyncOperationWithProgress<LanguageModelResponse, std::string>& asyncInfo, const std::string& delta)
{
std::cout << "Progress: " << delta << std::endl;
std::cout << "Response so far: " << asyncInfo.GetResults().Response() << std::endl;
};
auto asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);
asyncOp.Progress(progressHandler);
auto result = asyncOp.get();
std::cout << result.Response() << std::endl;
IA responsável
O Phi Silica fornece aos desenvolvedores um modelo poderoso e confiável para criar aplicativos com experiências de IA seguras e protegidas. As etapas a seguir foram tomadas para garantir que a Phi Silica seja confiável, segura e construída de forma responsável (também recomendamos a revisão das práticas recomendadas descritas em Responsible Generative AI Development on Windows).
- Testes e avaliação minuciosos da qualidade do modelo para identificar e mitigar riscos potenciais.
- Criação de um modelo de cartão Phi Silica que descreve os pontos fortes e as limitações do modelo e fornece clareza sobre os usos pretendidos.
- Lançamento incremental de versões experimentais de Phi Silica. Após a versão experimental final do Phi Silica, a implantação se expandirá para aplicativos assinados para garantir que as verificações de malware tenham sido aplicadas a aplicativos com recursos de modelo local.
- Forneça controles de cliente por meio do Gerenciador de Acesso a Recursos em Configurações para que os usuários possam desativar o modelo no dispositivo para o sistema, usuário ou aplicativo.
- Forneça um modelo de IA local para moderação de conteúdo que identifique e filtre conteúdo prejudicial na entrada e na saída gerada por IA da Phi Silica. Este modelo de moderação de conteúdo local baseia-se no modelo de Segurança de Conteúdo do Azure AI para moderação de texto e oferece um desempenho semelhante.
Importante
Nenhum sistema de segurança de conteúdo é infalível e erros ocasionais podem ocorrer, por isso recomendamos a integração de ferramentas e práticas suplementares de IA Responsável (RAI). Para obter mais detalhes, consulte Desenvolvimento Responsável da IA Generativa no Windows.
Recursos adicionais
acessar arquivos e pastas com o SDK do Windows App e APIs do WinRT