Partilhar via


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.

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

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