Saiba mais sobre os requisitos de hardware do Windows AI API e como configurar seu dispositivo para criar aplicativos com êxito usando o Windows AI APIs.
Dependências
Certifique-se de que o seu PC suporta Windows AI APIs e que todas as dependências estão instaladas. Você pode optar por fazer isso automaticamente (recomendado) ou manualmente.
Confirme se o seu dispositivo é um PC Copilot+ (recomendamos os dispositivos listados no guia do desenvolvedor Copilot+ PCs).
Execute o seguinte comando no Terminal do Windows.
winget configure https://raw.githubusercontent.com/microsoft/winget-dsc/refs/heads/main/samples/Configuration%20files/Learn%20tutorials/Windows%20AI/learn_wcr.winget
Isso executa um arquivo de configuração do WinGet que executa as seguintes tarefas:
- Verifica a versão mínima do sistema operacional.
- Habilita o Modo de Desenvolvedor.
- Instala o Visual Studio Community Edition com WinUI e outras cargas de trabalho necessárias.
- Instala o SDK do Aplicativo Windows.
Criar um novo aplicativo
As etapas a seguir descrevem como criar um aplicativo que usa a IA APIs do Windows (selecione a guia para sua estrutura de interface do usuário preferida).
No Visual Studio, crie um novo projeto WinUI selecionando o modelo Aplicação em Branco, Empacotada (WinUI 3 in Desktop).
No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto, selecione Propriedades>do Aplicativo>Geral e verifique se a estrutura de destino está definida como .NET 8.0 e se o sistema operacional de destino está definido como 10.0.22621 ou posterior.
Edite o arquivo Package.appxmanifest (clique com o botão direito do mouse e selecione Exibir código) e adicione os seguintes trechos.
Capacidade do systemAIModels para o nó <Capabilities>.
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
O systemai especificador de namespace para "IgnorableNamespaces" no <Package> nó:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
A versão máxima testada no elemento TargetDeviceFamily do nó <Dependencies> precisa ser de pelo menos 10.0.26226.0.
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Adicione o seguinte ao seu arquivo .waproj, .csproj ou .vcxproj. Esta etapa é necessária para garantir que o visual studio não substitua a versão máxima testada.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Clique com o botão direito do mouse no nó do projeto e selecione Gerenciar pacotes NuGet....
No Gerenciador de Pacotes NuGet, marque a caixa de seleção Incluir pré-lançamento e selecione Windows App SDK versão 1.8.250410001-experimental1. Clique em Instalar ou Atualizar.
Certifique-se de que sua configuração de compilação esteja definida como ARM64.
Crie e execute seu aplicativo.
Se a aplicação for iniciada com sucesso, continue a Adicionar a sua primeira IA API. Caso contrário, consulte Solução de problemas.
No Visual Studio, crie um novo projeto WPF selecionando o modelo Aplicativo WPF .
No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto e selecione Editar Arquivo de Projeto para abrir como XML. Substitua tudo o que está dentro <PropertyGroup> pelo seguinte:
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
<WindowsPackageType>None</WindowsPackageType>
Edite o arquivo Package.appxmanifest (clique com o botão direito do mouse e selecione Exibir código) e adicione os seguintes trechos.
Capacidade do systemAIModels para o nó <Capabilities>.
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
O systemai especificador de namespace para "IgnorableNamespaces" no <Package> nó:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
A versão máxima testada no elemento TargetDeviceFamily do nó <Dependencies> precisa ser de pelo menos 10.0.26226.0.
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Adicione o seguinte ao seu arquivo .waproj, .csproj ou .vcxproj. Esta etapa é necessária para garantir que o visual studio não substitua a versão máxima testada.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
No Gerenciador de Soluções, clique com o botão direito do mouse no nó Dependências e selecione Gerenciar Pacotes Nuget....
No Gerenciador de Pacotes NuGet, marque a caixa de seleção Incluir pré-lançamento e selecione Windows App SDK versão 1.8.250410001-experimental1. Clique em Instalar ou Atualizar.
Crie e execute seu aplicativo.
Se a aplicação for iniciada com sucesso, continue a Adicionar a sua primeira IA API. Caso contrário, consulte Solução de problemas.
Para obter mais informações, consulte Configurar seu projeto WPF para suporte ao SDK de aplicativos Windows.
Crie um projeto MAUI seguindo as instruções em Crie seu primeiro aplicativo .NET MAUI.
No Explorador de Soluções, clique com o botão direito do rato no nó do projeto >Editar Ficheiro de Projeto para abrir como XML.
Na parte inferior do arquivo de projeto, adicione estas linhas para fazer referência à versão correta do pacote Microsoft.WindowsAppSDK (ao compilar para a plataforma Windows):
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.250410001-experimental1"/>
</ItemGroup>
Observação
Ao clicar no nó do projeto e selecionar a opção Gerenciar pacotes NuGet... pode ser usada para adicionar o pacote necessário, se seu aplicativo também estiver criando para outras plataformas, como Android e iOS, o arquivo de projeto ainda precisará ser editado para condicionar a referência de pacote para compilações somente do Windows.
Adicione o seguinte ao seu arquivo .waproj, .csproj ou .vcxproj. Esta etapa é necessária para garantir que o visual studio não substitua a versão máxima testada.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto, selecione Propriedades e verifique se a Estrutura do Windows de Destino está definida como 10.0.22621 ou posterior.
Edite o arquivo Package.appxmanifest (clique com o botão direito do mouse e selecione Exibir código) e adicione os seguintes trechos.
Capacidade do systemAIModels para o nó <Capabilities>.
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
O systemai especificador de namespace para "IgnorableNamespaces" no <Package> nó:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
A versão máxima testada no elemento TargetDeviceFamily do nó <Dependencies> precisa ser de pelo menos 10.0.26226.0.
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Crie e execute seu aplicativo.
Se a aplicação for iniciada com sucesso, continue a Adicionar a sua primeira IA API. Caso contrário, consulte Solução de problemas.
Adicione a sua primeira IA API
Ao implementar um recurso usando a IA APIsdo Windows, seu aplicativo deve primeiro verificar a disponibilidade do modelo de IA que suporta esse recurso.
O trecho a seguir mostra como verificar a disponibilidade do modelo e gerar uma resposta.
Em MainWindow.xaml, adicione um TextBlock para exibir a resposta LanguageModel .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
Na parte superior da MainWindow.xaml.cs, adicione a seguinte using Microsoft.Windows.AI diretiva.
using Microsoft.Windows.AI;
No MainWindow.xaml.cs, substitua a classe MainWindow pelo código a seguir, que confirma que o LanguageModel está disponível e, em seguida, envia um prompt solicitando que o modelo responda com a fórmula molecular da glicose.
public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
InitAI();
}
private async void InitAI()
{
OutputText.Text = "Loading..";
if (LanguageModel.GetReadyState() == AIFeatureReadyState.EnsureNeeded)
{
var result = await LanguageModel.EnsureReadyAsync();
if (result.Status != PackageDeploymentStatus.CompletedSuccess)
{
throw new Exception(result.ExtendedError().Message);
}
}
using LanguageModel languageModel =
await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula of glucose.";
var result = await languageModel.GenerateResponseAsync(prompt);
OutputText.Text = result.Response;
}
}
Compile e execute a aplicação.
A fórmula para glicose deve aparecer no bloco de texto.
Em MainWindow.xaml, adicione um TextBlock para exibir a resposta LanguageModel .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
Na parte superior da MainWindow.xaml.cs, adicione a seguinte using Microsoft.Windows.AI diretiva.
using Microsoft.Windows.AI;
No MainWindow.xaml.cs, substitua a classe MainWindow pelo código a seguir, que confirma que o LanguageModel está disponível e, em seguida, envia um prompt solicitando que o modelo responda com a fórmula molecular da glicose.
public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
InitAI();
}
private async void InitAI()
{
OutputText.Text = "Loading..";
if (LanguageModel.GetReadyState() == AIFeatureReadyState.EnsureNeeded)
{
var result = await LanguageModel.EnsureReadyAsync();
if (result.Status != PackageDeploymentStatus.CompletedSuccess)
{
throw new Exception(result.ExtendedError().Message);
}
}
using LanguageModel languageModel = await LanguageModel.CreateAsync();
string prompt = "Provide the molecular formula for glucose.";
var result = await languageModel.GenerateResponseAsync(prompt);
OutputText.Text = result.Response;
}
}
Compile e execute a aplicação.
A fórmula para glicose deve aparecer no bloco de texto.
Consulte Invocar código de plataforma para obter detalhes sobre como adicionar código específico da plataforma a um aplicativo MAUI.
Neste exemplo, usamos a abordagem de classes parciais e métodos parciais para colocar o código do Windows na pasta Platform\Windows.
No MainPage.xaml.cs, adicione uma definição de método parcial como partial void ChangeLanguageModelAvailability(); e chame esse método parcial do manipulador OnCounterClicked para o CounterBtn botão criado pelo modelo .NET MAUI App.
No Gerenciador de Soluções, expanda Plataformas, clique com o botão direito do mouse em Windows, selecione Adicionar>Classe..., digite o nome MainPage.cs e clique em Adicionar.
O novo MainPage.cs deve ser mostrado na janela do editor. Volte para MainPage.xaml.cs para copiar a linha do namespace.
Volte para o novo MainPage.cs e substitua sua linha de namespace pela linha de MainPage.xaml.cs. Isso é para tornar a classe Platform\Windows uma extensão parcial da classe MainPage base.
Para concluir em tornar MainPage.cs numa extensão, substitua na declaração de classe internal por partial.
Adicione o seguinte código ao método parcial ChangeLanguageModelAvailability definido na etapa 1.
partial void ChangeLanguageModelAvailability()
{
try
{
AIFeatureReadyState readyState = Microsoft.Windows.AI.LanguageModel.GetReadyState();
System.Diagnostics.Debug.WriteLine($"LanguageModel.GetReadyState: {readyState}");
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine($"LanguageModel is not available: {e}");
}
}
Execute a aplicação novamente, clique no botão Clique em mim e observe a saída no painel de depuração de saída do Visual Studio.
Tutoriais avançados e APIs
Agora que verificou com êxito a disponibilidade do modelo, explore mais aprofundadamente os vários tutoriais de IA APIs do Windows API.
Solução de problemas
Se você encontrar algum erro, geralmente é devido ao seu hardware ou à ausência de um modelo necessário.
- O método GetReadyState verifica se o modelo exigido por um recurso de IA está disponível no dispositivo do usuário. Você deve chamar este método antes de qualquer chamada ao modelo.
- Se o modelo não estiver disponível no dispositivo do usuário, você poderá chamar o método EnsureReadyAsync para instalar o modelo necessário. A instalação do modelo é executada em segundo plano e o usuário pode verificar o progresso da instalação na página Configurações> doWindows Update do Windows.
- O método EnsureReadyAsync tem uma opção de status que pode mostrar uma interface gráfica de carregamento. Se o usuário tiver hardware não suportado, EnsureReadyAsync falhará com um erro.
Consulte Solução de problemas e Perguntas frequentes sobre IA API do Windows para obter mais assistência.
Ver também