Compartilhar via


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.

  1. 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.
  2. Quando o modelo de linguagem estiver disponível, criamos um objeto LanguageModel para fazer referência a ele.
  3. 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.

  1. 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).
  2. 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