Saiba mais sobre os requisitos de hardware de IA API do Windows e como configurar seu dispositivo para criar aplicativos com êxito usando a IA APIsdo Windows.
Dependências
Verifique se o computador dá suporte à IA APIs do Windows e se todas as dependências estão instaladas. Você pode optar por fazer isso automaticamente (recomendado) ou manualmente.
Confirme se seu dispositivo é um pc Copilot+ (recomendamos os dispositivos listados no guia do desenvolvedor de PCs Copilot+).
Execute o comando a seguir 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 do 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 Aplicativo em branco, empacotado (WinUI 3 na Área de trabalho).
No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto, selecione Propriedades>Aplicativo>Geral e verifique se o framework de destino está definido como .NET 8.0 e 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 snippets a seguir.
A systemAIModels capacidade do nó <Capabilities>:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
O especificador de namespace systemai para "IgnorableNamespaces" no nó <Package>:
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, no mínimo, 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Adicione o seguinte ao 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 o SDK do Aplicativo do Windows versão 1.8.250410001-experimental1. Clique em Instalar ou Atualizar.
Verifique se a configuração de build está definida como ARM64.
Crie e execute seu aplicativo.
Se o aplicativo for iniciado com sucesso, continue para Adicionar sua primeira IA API. Caso contrário, consulte solução de problemas.
No Visual Studio, crie um novo projeto do WPF selecionando o modelo de 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 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 snippets a seguir.
A systemAIModels capacidade do nó <Capabilities>:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
O especificador de namespace systemai para "IgnorableNamespaces" no nó <Package>:
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, no mínimo, 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Adicione o seguinte ao 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 o SDK do Aplicativo do Windows versão 1.8.250410001-experimental1. Clique em Instalar ou Atualizar.
Crie e execute seu aplicativo.
Se o aplicativo for iniciado com sucesso, continue para Adicionar sua primeira IA API. Caso contrário, consulte solução de problemas.
Para obter mais informações, consulte Configurar seu projeto do WPF para suporte ao SDK do Aplicativo do Windows.
Crie um projeto MAUI seguindo as instruções em Criar seu primeiro aplicativo MAUI do .NET.
No Gerenciador de Soluções, clique com o botão direito do mouse no nó >do projeto Editar Arquivo 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 o aplicativo também estiver sendo criado para outras plataformas, como Android e iOS, o arquivo de projeto ainda precisará ser editado para condicioná-lo à referência de pacote para builds somente do Windows.
Adicione o seguinte ao 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 o Windows Framework 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 snippets a seguir.
A systemAIModels capacidade do nó <Capabilities>:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
O especificador de namespace systemai para "IgnorableNamespaces" no nó <Package>:
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, no mínimo, 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Crie e execute seu aplicativo.
Se o aplicativo for iniciado com sucesso, continue para Adicionar sua primeira IA API. Caso contrário, consulte solução de problemas.
Adicionar 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 dá suporte a esse recurso.
O snippet 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 do MainWindow.xaml.cs, adicione a diretiva a seguir using Microsoft.Windows.AI .
using Microsoft.Windows.AI;
Em 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 de 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 o aplicativo.
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 do MainWindow.xaml.cs, adicione a diretiva a seguir using Microsoft.Windows.AI .
using Microsoft.Windows.AI;
Em MainWindow.xaml.cs, substitua a classe MainWindow pelo código a seguir, que confirma que o LanguageModel está disponível e envia um prompt solicitando que o modelo responda com a fórmula molecular de 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 o aplicativo.
A fórmula para glicose deve aparecer no bloco de texto.
Consulte o código da plataforma Invoke para obter detalhes sobre como adicionar código específico da plataforma a um aplicativo MAUI.
Para este exemplo, usamos as classes parciais e a abordagem de métodos parciais para colocar o código do Windows na pasta Platform\Windows.
Em MainPage.xaml.cs, adicione uma definição de método parcial como partial void ChangeLanguageModelAvailability(); e chame esse método parcial a partir do manipulador OnCounterClicked para o botão CounterBtn criado pelo modelo de aplicativo .NET MAUI.
No Gerenciador de Soluções, expanda Plataformas, clique com o botão direito do mouse no Windows, selecione Adicionar>Classe..., digite o nome MainPage.cs e clique em Adicionar.
O novo MainPage.cs deve ser mostrado na janela do editor. Retorne 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 Base MainPage .
Para concluir a criação MainPage.cs uma extensão, substitua internal na declaração de classe por partial.
Adicione o código a seguir 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 o aplicativo novamente, clique no botão Clique aqui e observe a saída no painel de saída de depuração do Visual Studio.
Tutoriais avançados e APIs
Agora que você verificou com êxito a disponibilidade do modelo, explore mais a fundo o APIs nos vários tutoriais de IA do Windows API.
Resolução de problemas
Se você encontrar erros, normalmente é devido ao 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 esse 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 andamento da instalação na página Configurações do Windows>Windows Update Configurações.
- O método EnsureReadyAsync tem uma opção de status que pode mostrar uma UI de carregamento. Se o usuário tiver hardware sem suporte, o EnsureReadyAsync falhará com um erro.
Consulte a solução de problemas de IA API do Windows e perguntas frequentes para obter mais assistência.
Consulte também