Phi Silica no SDK do Aplicativo Windows
Use o SDK do Aplicativo Windows para conectar o aplicativo do Windows a modelos de linguagem no dispositivo, incluindo o Phi Silica, nosso modelo de linguagem local ajustado para NPU mais poderoso até agora.
O SDK do Aplicativo Windows é fornecido com várias APIs de inteligência artificial (IA) para acessar esses modelos e fornecer processamento local e a geração de conversas, resolução de problemas matemáticos, geração de código, raciocínio sobre texto e muito mais.
Importante
O canal experimental do SDK do Aplicativo Windows 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 interruptivas, podendo ser removidas de versões subsequentes a qualquer momento. Elas não são compatíveis com o uso em ambientes de produção e os aplicativos que usam os recursos experimentais não podem ser publicados na Microsoft Store.
Pré-requisitos
IA responsável
A Phi Silica fornece aos desenvolvedores um modelo poderoso e confiável para criar aplicativos com experiências de IA seguras e protegidas. As seguintes medidas foram tomadas para garantir que a Phi Silica seja confiável, segura e construída de forma responsável.
- Testes e avaliação minuciosos da qualidade do modelo para identificar e mitigar potenciais riscos.
- Criação de um cartão modelo Phi Silica que descreve os pontos fortes e limitações do modelo e fornece clareza sobre os usos pretendidos.
- Implantação incremental de lançamentos experimentais do Phi Silica. Após o lançamento experimental final do Phi Silica, o lançamento será expandido para aplicativos assinados para garantir que as varreduras de malware tenham sido aplicadas a aplicativos com recursos de modelo local.
- Forneça controles de cliente por meio do Gerenciador de Acesso de Capacidade em Configurações para que os usuários possam desativar o modelo no dispositivo para o sistema, usuário ou aplicativo.
Observação
A moderação de conteúdo está atualmente em desenvolvimento.
Além disso, recomendamos revisar as práticas recomendadas descritas em Desenvolvimento de IA generativa responsável no Windows.
O que posso fazer com o Phi Silica e o SDK do Aplicativo Windows?
Com um modelo de linguagem Phi Silica local e o SDK do Aplicativo Windows, você pode gerar respostas de texto para solicitações do usuário.
Obter uma resposta única e completa com base em uma string de solicitação
Este exemplo mostra como gerar uma resposta a uma solicitação de P e R em que a resposta completa é gerada antes que o resultado seja retornado.
- Primeiro, garantimos que o modelo de linguagem esteja disponível chamando o método IsAvailable e aguardando que o método MakeAvailableAsync seja devolvido com êxito.
- Quando o modelo de linguagem estiver disponível, criamos um objeto LanguageModel para fazer referência a ele.
- Por fim, enviamos uma solicitação de sequência ao 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.
Obter um stream de resultados parciais com base em uma string de solicitação
Este exemplo mostra como gerar uma resposta a uma solicitação P e R em que a resposta é retornada como um stream de resultados parciais.
- Primeiro, criamos um objeto LanguageModel para fazer referência ao modelo de linguagem local (já verificamos a presença do modelo de linguagem no trecho anterior).
- Em seguida, recuperamos de forma assíncrona o LanguageModelResponse em uma chamada para GenerateResponseWithProgressAsync e o escrevemos 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;
Recursos adicionais
Acessar arquivos e pastas com APIs do WinRT e o SDK do Aplicativo Windows