Introdução ao Phi Silica no SDK do Aplicativo Windows
Importante
Esse recurso ainda não está disponível. Espera-se que ele seja enviado em uma próxima versão de canal experimental do SDK do Aplicativo Windows.
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.
Phi Silica é um modelo de idioma local que você poderá integrar em seus aplicativos do Windows usando o SDK do Aplicativo Windows.
Como o modelo de idioma local ajustado para NPU mais poderoso da Microsoft, o Phi Silica é otimizado para eficiência e desempenho em dispositivos Windows Copilot+ PCs, ao mesmo tempo em que oferece muitos dos recursos encontrados em LLMs (Large Language Models).
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 Referência de API para Phi Silica no SDK do Aplicativo Windows.
Dica
Forneça comentários sobre essas APIs e sua funcionalidade criando um novo Problema no repositório GitHub SDK do Aplicativo Windows. (Certifique-se de incluir Phi Silica no título!)
- PCs CoPilot+ contendo um processador Qualcomm Snapdragon® X Elite.
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.
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.
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;
A 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 executadas para garantir que a Phi Silica seja confiável, segura e construída com responsabilidade (também recomendamos revisar as práticas recomendadas descritas em Desenvolvimento de IA generativa responsável no Windows).
- Testes e avaliação minuciosos da qualidade do modelo para identificar e mitigar potenciais riscos.
- Criação de um cartão de modelo Phi Silica que descreve os pontos fortes e as 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.
- 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. Esse modelo de moderação de conteúdo local é baseado no modelo de Segurança de Conteúdo de IA do Azure para moderação de texto e fornece 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 de IA generativa responsável no Windows.
Acessar arquivos e pastas com APIs do WinRT e o SDK do Aplicativo Windows