Introdução ao Phi Silica no SDK do Aplicativo Windows
Importante
Disponível na versão de lançamento mais recente do canal experimental do SDK do Aplicativo do Windows.
O canal experimental do SDK do Aplicativo do 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. Não há suporte para recursos experimentais para uso em ambientes de produção e aplicativos que os usam não podem ser publicados na Microsoft Store.
- Phi Silica não está disponível na China continental.
- Não há suporte para aplicativos independentes.
O Phi Silica é um modelo de linguagem local que você pode integrar aos seus aplicativos do Windows usando o Windows App SDK.
Sendo o modelo de linguagem local ajustado para NPU mais poderoso da Microsoft, o Phi Silica é otimizado para eficiência e desempenho em dispositivos PCs Windows Copilot+, ao mesmo tempo em que oferece muitos dos recursos encontrados em LLMs (Modelos de Linguagem Grande).
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 de API para Phi Silica no SDK de Aplicativo do Windows.
Para obter detalhes de moderação de conteúdo, consulte Segurança de conteúdo com APIs de IA generativa.
Dica
Forneça feedback sobre essas APIs e suas funcionalidades criando um novo problema no repositório GitHub do SDK do Aplicativo Windows (inclua Phi Silica no título) ou respondendo a um problema existente.
Pré-requisitos
- Um PC Copilot+ contendo um processador Qualcomm Snapdragon® X.
- No momento, não há suporte para Arm64EC (Compatível com Emulação).
- Windows 11 Insider Preview Build 26120.3073 (Canais de Desenvolvimento e Beta) ou posterior deve estar instalado em seu dispositivo.
Usar o SDK do Aplicativo Windows para integrar o Phi Silica ao seu 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.
Gerar uma resposta completa
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.
Verifique se o modelo de idioma está disponível chamando o método
IsAvailable
e aguardando que o métodoMakeAvailableAsync
retorne com êxito.Depois que o modelo de idioma estiver disponível, crie um objeto
LanguageModel
para referenciá-lo.Envie 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 uma resposta completa
Nossa API tem moderação de conteúdo interna, que é personalizável. Este exemplo mostra como especificar seus próprios limites para a moderação de conteúdo interno. Saiba mais sobre Moderação de Conteúdo com o Windows Copilot Runtime.
- Crie um objeto
LanguageModel
para fazer referência ao modelo de idioma local. *Uma verificação já foi executada para garantir que o modelo de linguagem Phi Silica esteja disponível no dispositivo do usuário no snippet anterior. - Crie um objeto
ContentFilterOptions
e especifique seus valores preferenciais. - Envie um prompt de cadeia de caracteres para o modelo usando o método
GenerateResponseAsync
com oContentFilterOptions
como um dos parâmetros.
using Microsoft.Windows.AI.Generative;
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
ContentFilterOptions filterOptions = new ContentFilterOptions();
filterOptions.PromptMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
filterOptions.ResponseMinSeverityLevelToBlock.ViolentContentSeverity = SeverityLevel.Medium;
// var result = await languageModel.GenerateResponseAsync(null, prompt, filterOptions);
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.";
ContentFilterOptions contentFilter = ContentFilterOptions();
contentFilter.PromptMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
contentFilter.ResponseMinSeverityLevelToBlock().ViolentContentSeverity(SeverityLevel::Medium);
// auto result = languageModel.GenerateResponseAsync(nullptr, prompt, filterOptions).get();
std::cout << result.Response() << std::endl;
Gerar um fluxo de respostas parciais
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.
Crie um objeto
LanguageModel
para fazer referência ao modelo de idioma local. *Uma verificação já foi executada para garantir que o modelo de linguagem Phi Silica esteja disponível no dispositivo do usuário no snippet anterior.Recupere de forma assíncrona o
LanguageModelResponse
em uma chamada paraGenerateResponseWithProgressAsync
. Escreva-o 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;
Aplicar formatos de texto predefinidos para respostas mais consistentes em seu aplicativo
O Phi Silica inclui a capacidade de predefine formatos de resposta de texto para uso em seu aplicativo. A predefinição de um formato de texto pode fornecer resultados de resposta mais consistentes com as seguintes opções:
- Texto para Tabela: converta a resposta da solicitação em formato de tabela.
- Resumir: retorne um resumo com base no texto da solicitação.
- Reescrever: reformular o texto do prompt para adicionar clareza e expressar a resposta de uma maneira mais fácil de entender.
Crie um objeto
LanguageModel
para fazer referência ao modelo de idioma local. *Uma verificação já foi executada para garantir que o modelo de linguagem Phi Silica esteja disponível no dispositivo do usuário no snippet anterior.Crie um objeto
LanguageModelOptions
e especifique o formato de texto predefinido a ser usado atribuindo uma enumLanguageModelSkill
ao campo Skill do objetoLanguageModelOptions
. Os valores a seguir estão disponíveis para a enumeraçãoLanguageModelSkill
.Enum Descrição LanguageModelSkill.General
Valor padrão, sem formatação predefinida aplicada. LanguageModelSkill.TextToTable
Converta o texto do prompt em uma tabela, se aplicável. LanguageModelSkill.Summarize
Retorne um resumo com base no texto do prompt. LanguageModelSkill.Rewrite
Reescreva a resposta de texto do prompt para melhorar a clareza e a compreensão. 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 = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = new LanguageModelOptions {
Skill = LanguageModelSkill.Summarize
};
var result = await languageModel.GenerateResponseAsync(options, prompt);
Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;
auto languageModel = LanguageModel::CreateAsync().get();
std::string prompt = "This is a large amount of text I want to have summarized.";
LanguageModelOptions options = LanguageModelOptions();
options.Skill = LanguageModelSkill.Summarize;
auto result = languageModel.GenerateResponseAsync(options, prompt).get();
std::cout << result.Response() << std::endl;
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 etapas a seguir foram tomadas para garantir que a Phi Silica seja confiável, segura e construída de forma responsável. Recomendamos revisar as práticas recomendadas descritas em Desenvolvimento de IA Generativa Responsável no Windows ao implementar recursos de IA em seu aplicativo.
- Testes e avaliação minuciosos da qualidade do modelo para identificar e mitigar potenciais riscos.
- 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.
- O Phi Silica fornece um modelo de IA localizado que inclui uma API de Moderação de Conteúdo de Texto. Essa API identifica e filtra conteúdo potencialmente prejudicial na entrada e na saída gerada por IA. O modelo local de moderação de conteúdo de texto baseia-se no modelo de Segurança de Conteúdo de IA do Azure para moderação de conteúdo e fornece desempenho semelhante. Consulte Moderação de Conteúdo de Texto com o Windows Copilot Runtime para obter uma descrição das opções de filtro de nível de severidade e um exemplo de código que demonstra como implementar essas opções.
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 mais detalhes, consulte Desenvolvimento responsável de IA generativa no Windows.
Conteúdo relacionado
- Moderação de Conteúdo com o Windows Copilot Runtime
- Acessar arquivos e pastas com APIs do WinRT e o SDK do Aplicativo Windows
- Desenvolvendo Aplicações e Recursos de IA Generativos Responsáveis no Windows
- Referência de API para APIs Phi Silica no SDK do Aplicativo Windows
- SDK do Aplicativo do Windows
- Notas de versão mais recentes para o SDK do Aplicativo Windows