Přečtěte si o hardwarových požadavcích Windows AI API a o tom, jak nakonfigurovat vaše zařízení k úspěšnému vytváření aplikací pomocí Windows AI APIs.
Závislosti
Ujistěte se, že váš počítač podporuje AI APIs systému Windows a že jsou nainstalované všechny závislosti. Můžete to provést automaticky (doporučeno) nebo ručně.
Ověřte, že je vaše zařízení počítačem Copilot+ (doporučujeme zařízení uvedená v příručce pro vývojáře copilot+ počítačů).
V terminálu Windows spusťte následující příkaz.
winget configure https://raw.githubusercontent.com/microsoft/winget-dsc/refs/heads/main/samples/Configuration%20files/Learn%20tutorials/Windows%20AI/learn_wcr.winget
Spustí se konfigurační soubor WinGet , který provádí následující úlohy:
- Kontroluje minimální verzi operačního systému.
- Povolí vývojářský režim.
- Nainstaluje Visual Studio Community Edition s WinUI a dalšími požadovanými úlohami.
- Nainstaluje Windows App SDK.
Vytvoření nové aplikace
Následující kroky popisují, jak vytvořit aplikaci, která používá AI APIs pro Windows (vyberte kartu pro preferovanou architekturu uživatelského rozhraní).
V sadě Visual Studio vytvořte nový projekt WinUI výběrem šablony Prázdná aplikace, Zabalená (WinUI 3 v desktopové verzi).
V Průzkumníku řešení klikněte pravým tlačítkem na uzel projektu, vyberteObecné>> a ujistěte se, že je cílová architektura nastavená na .NET 8.0 a cílový operační systém je nastavený na 10.0.22621 nebo novější.
Upravte soubor Package.appxmanifest (klikněte pravým tlačítkem myši a vyberte Zobrazit kód) a přidejte následující fragmenty kódu.
Funkce systemAIModels<Capabilities> uzlu:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
Specifikátor systemai oboru názvů "IgnorableNamespaces" v <Package> uzlu:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Maximální verze testovaná v TargetDeviceFamily prvku <Dependencies> uzlu musí být alespoň 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Do souboru .waproj, .csproj nebo .vcxproj přidejte následující kód. Tento krok je nezbytný k tomu, aby visual Studio nepřepsal maximální testovanou verzi.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Klikněte pravým tlačítkem na uzel projektu a vyberte Spravovat balíčky NuGet....
Ve Správci balíčků NuGet zaškrtněte políčko Zahrnout předběžné verze a vyberte sadu Windows App SDK verze 1.8.250410001-experimental1. Klikněte na Nainstalovat nebo Aktualizovat.
Ujistěte se, že je vaše konfigurace sestavení nastavená na ARM64.
Sestavte a spusťte svou aplikaci.
Pokud se aplikace úspěšně spustí, pokračujte přidáním první umělé inteligence API. V opačném případě se podívejte na téma Řešení potíží.
V sadě Visual Studio vytvořte nový projekt WPF výběrem šablony aplikace WPF .
V Průzkumníku řešení klikněte pravým tlačítkem myši na uzel projektu a vyberte Upravit soubor projektu a otevřete ho jako XML. Nahraďte všechno uvnitř <PropertyGroup> následujícím kódem:
<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>
Upravte soubor Package.appxmanifest (klikněte pravým tlačítkem myši a vyberte Zobrazit kód) a přidejte následující fragmenty kódu.
Funkce systemAIModels<Capabilities> uzlu:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
Specifikátor systemai oboru názvů "IgnorableNamespaces" v <Package> uzlu:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Maximální verze testovaná v TargetDeviceFamily prvku <Dependencies> uzlu musí být alespoň 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Do souboru .waproj, .csproj nebo .vcxproj přidejte následující kód. Tento krok je nezbytný k tomu, aby visual Studio nepřepsal maximální testovanou verzi.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
V Průzkumníku řešení klikněte pravým tlačítkem na uzel Závislosti a vyberte Spravovat balíčky NuGet....
Ve Správci balíčků NuGet zaškrtněte políčko Zahrnout předběžné verze a vyberte sadu Windows App SDK verze 1.8.250410001-experimental1. Klikněte na Nainstalovat nebo Aktualizovat.
Sestavte a spusťte svou aplikaci.
Pokud se aplikace úspěšně spustí, pokračujte přidáním první umělé inteligence API. V opačném případě se podívejte na téma Řešení potíží.
Další informace najdete v tématu Konfigurace projektu WPF pro podporu sady Windows App SDK.
Vytvořte projekt MAUI podle pokynů v Vytvořte svou první aplikaci .NET MAUI.
V Průzkumníku řešení klikněte pravým tlačítkem myši na uzel > projektu Upravit soubor projektu a otevřete ho jako XML.
V dolní části souboru projektu přidejte tyto řádky pro odkaz na správnou verzi balíčku Microsoft.WindowsAppSDK (při kompilaci pro platformu Windows):
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.250410001-experimental1"/>
</ItemGroup>
Poznámka:
Když kliknete na uzel projektu a vyberete možnost Spravovat balíčky NuGet..., můžete přidat požadovaný balíček. Pokud se vaše aplikace také vytváří pro jiné platformy, jako je Android a iOS, musí být soubor projektu stále upraven, aby odkaz na balíček byl podmíněn pouze pro sestavení na Windows.
Do souboru .waproj, .csproj nebo .vcxproj přidejte následující kód. Tento krok je nezbytný k tomu, aby visual Studio nepřepsal maximální testovanou verzi.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
V Průzkumníku řešení klikněte pravým tlačítkem myši na uzel projektu, vyberte Vlastnosti a ujistěte se, že cílová architektura systému Windows Je nastavena na hodnotu 10.0.22621 nebo novější.
Upravte soubor Package.appxmanifest (klikněte pravým tlačítkem myši a vyberte Zobrazit kód) a přidejte následující fragmenty kódu.
Funkce systemAIModels<Capabilities> uzlu:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
Specifikátor systemai oboru názvů "IgnorableNamespaces" v <Package> uzlu:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Maximální verze testovaná v TargetDeviceFamily prvku <Dependencies> uzlu musí být alespoň 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Sestavte a spusťte svou aplikaci.
Pokud se aplikace úspěšně spustí, pokračujte přidáním první umělé inteligence API. V opačném případě se podívejte na téma Řešení potíží.
Přidání první umělé inteligence API
Při implementaci funkce pomocí Umělé inteligence APIssystému Windows by vaše aplikace měla nejprve zkontrolovat dostupnost modelu AI, který tuto funkci podporuje.
Následující fragment kódu ukazuje, jak zkontrolovat dostupnost modelu a vygenerovat odpověď.
V Souboru MainWindow.xaml přidejte objekt TextBlock pro zobrazení odpovědi LanguageModel .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
Na začátek MainWindow.xaml.cs přidejte následující using Microsoft.Windows.AI direktivu.
using Microsoft.Windows.AI;
V MainWindow.xaml.cs, nahraďte třídu MainWindow následujícím kódem, který potvrzuje, že LanguageModel je k dispozici, a pak odešle žádost pro model o odpověď s molekulárním vzorcem glukózy.
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;
}
}
Zkompilujte a spusťte aplikaci.
Vzorec pro glukózu by se měl objevit v bloku textu.
V Souboru MainWindow.xaml přidejte objekt TextBlock pro zobrazení odpovědi LanguageModel .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
Na začátek MainWindow.xaml.cs přidejte následující using Microsoft.Windows.AI direktivu.
using Microsoft.Windows.AI;
V MainWindow.xaml.cs nahraďte třídu MainWindow následujícím kódem, který potvrzuje, že LanguageModel je k dispozici, a pak odešle výzvu, aby model reagoval molekulárním vzorcem glukózy.
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;
}
}
Zkompilujte a spusťte aplikaci.
Vzorec pro glukózu by se měl objevit v bloku textu.
Podrobnosti o přidání kódu specifického pro platformu do aplikace MAUI najdete v tématu Vyvolání kódu platformy .
V tomto příkladu používáme částečný přístup tříd a částečných metod k vložení kódu Systému Windows do složky Platform\Windows.
V MainPage.xaml.cs přidejte částečnou definici metody jako partial void ChangeLanguageModelAvailability(); a tuto částečnou metodu zavolejte z obslužné rutiny OnCounterClicked pro tlačítko CounterBtn, které vytvořila šablona aplikace .NET MAUI.
V Průzkumníku řešení rozbalte položku Platformy, klikněte pravým tlačítkem na Windows, vyberte Přidat>třídu..., zadejte název MainPage.cs a klikněte na Přidat.
V okně editoru by se měl zobrazit nový MainPage.cs. Přepněte zpět na MainPage.xaml.cs a zkopírujte jeho řádek oboru názvů.
Přepněte zpět na nový MainPage.cs a nahraďte jeho řádek oboru názvů řádkem z MainPage.xaml.cs. Tím se vytvoří třída Platform\Windows částečné rozšíření základní třídy MainPage .
Chcete-li dokončit, učinit z MainPage.cs rozšíření, nahraďte internal v deklaraci třídy partial.
Do částečné metody ChangeLanguageModelAvailability definované v kroku 1 přidejte následující kód.
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}");
}
}
Spusťte aplikaci znovu, klikněte na tlačítko Klikni na mě a sledujte výstup v podokně ladicího výstupu Visual Studio.
Pokročilé kurzy a APIs
Teď, když jste úspěšně zkontrolovali dostupnost modelu, prozkoumejte APIs v různých kurzech Windows AI API.
Řešení problémů
Pokud dojde k nějakým chybám, důvodem je obvykle váš hardware nebo absence požadovaného modelu.
- Metoda GetReadyState zkontroluje, zda je model vyžadovaný funkcí AI k dispozici na zařízení uživatele. Tuto metodu je nutné volat před jakýmkoli voláním modelu.
- Pokud model není na zařízení uživatele dostupný, můžete volat metodu EnsureReadyAsync a nainstalovat požadovaný model. Instalace modelu běží na pozadí a uživatel může zkontrolovat průběh instalace na stránce Nastavení>windows Windows Update .
- Metoda EnsureReadyAsync má možnost stavu, která může zobrazit uživatelské rozhraní načítání. Pokud má uživatel nepodporovaný hardware, pak dojde k selhání funkce EnsureReadyAsync s chybou.
Další pomoc najdete v tématu Řešení potíží s AI API pro Windows a nejčastější dotazy .
Viz také