Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lär dig mer om maskinvarukraven för Windows AI API och hur du konfigurerar enheten för att framgångsrikt bygga appar med hjälp av Windows AI APIs.
Beroenden
Se till att datorn har stöd för Windows AI APIs och att alla beroenden är installerade. Du kan välja att göra detta automatiskt (rekommenderas) eller manuellt.
Kontrollera att din enhet uppfyller de maskinvarukrav som gäller för den Windows AI APIs-funktion som du planerar att använda. De flesta APIs kräver en Copilot+ PC med en NPU (vi rekommenderar de enheter som anges i utvecklarguiden Copilot+ PCs). Vissa APIs stöder även GPU- eller CPU-körning på enheter utan Copilot+ – se tabellen över maskinvara som stöds för mer information.
Kör följande kommando i Windows-terminalen.
winget configure https://raw.githubusercontent.com/microsoft/winget-dsc/refs/heads/main/samples/Configuration%20files/Learn%20tutorials/Windows%20AI/learn_wcr.wingetDetta kör en WinGet-konfigurationsfil som utför följande uppgifter:
- Söker efter lägsta operativsystemversion.
- Aktiverar utvecklarläge.
- Installerar Visual Studio Community Edition med WinUI och andra nödvändiga arbetsbelastningar.
- Installerar Windows App SDK.
Skapa en ny app
Följande steg beskriver hur du skapar en app som använder Windows AI APIs (välj fliken för ditt önskade gränssnittsramverk).
I Visual Studio skapar du ett nytt WinUI-projekt genom att välja mallen Tom app, Paketerad (WinUI 3 i Desktop).
Högerklicka på projektnoden i Prieskumník riešení, välj Egenskaper>Program>allmänt och kontrollera att målramverket är inställt på .NET 8.0 och att måloperativsystemet är inställt på 10.0.22621 eller senare.
Redigera filen Package.appxmanifest (högerklicka och välj Visa kod) och lägg till följande kodfragment.
Funktionen
systemAIModelsför<Capabilities>noden:<Capabilities> <systemai:Capability Name="systemAIModels"/> </Capabilities>Namnområdesspecificeraren
systemaitill "IgnorableNamespaces" i<Package>noden:xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10" IgnorableNamespaces="uap rescap systemai"Den högsta version som testas i
TargetDeviceFamilynodens<Dependencies>element måste vara minst 10.0.26226.0:<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Lägg till följande i filen .waproj, .csproj eller .vcxproj. Det här steget är nödvändigt för att säkerställa att Visual Studio inte åsidosätter den maxversion som testats.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion> <AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>Högerklicka på projektnoden och välj Hantera NuGet-paket....
I NuGet Správca balíkov markerar du kryssrutan Inkludera förhandsversion och väljer Windows App SDK version 1.8.250410001-experimental1. Klicka på Installera eller uppdatera.
Kontrollera att byggkonfigurationen är inställd på rätt arkitektur för din enhet (till exempel ARM64 eller x64).
Skapa och kör din app.
Om appen startas framgångsrikt fortsätter du att lägga till din första AI API. Annars kan du läsa Felsökning.
Lägg till din första AI API
När du implementerar en funktion med hjälp av Windows AI APIs bör din app först kontrollera tillgängligheten för den AI-modell som stöder funktionen.
Följande kodfragment visar hur du söker efter modelltillgänglighet och genererar ett svar.
I MainWindow.xaml lägger du till en TextBlock för att visa LanguageModel-svaret .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />Lägg till följande
using Microsoft.Windows.AIochusing Microsoft.Windows.AI.Textdirektiv överst i MainWindow.xaml.cs.using Microsoft.Windows.AI; using Microsoft.Windows.AI.Text;I
MainWindow.xaml.csersätter du klassen MainWindow med följande kod, som bekräftar att LanguageModel är tillgänglig och sedan skickar en uppmaning om att modellen ska svara med den molekylära formeln glukos.public sealed partial class MainWindow : Window { public MainWindow() { this.InitializeComponent(); InitAI(); } private async void InitAI() { OutputText.Text = "Loading.."; var readyState = LanguageModel.GetReadyState(); if (readyState == AIFeatureReadyState.NotReady) { var ensureResult = await LanguageModel.EnsureReadyAsync(); if (ensureResult.Status != AIFeatureReadyResultState.Success) { throw ensureResult.ExtendedError; } readyState = LanguageModel.GetReadyState(); } if (readyState != AIFeatureReadyState.Ready) { throw new Exception($"LanguageModel is unavailable: {readyState}"); } using LanguageModel languageModel = await LanguageModel.CreateAsync(); string prompt = "Provide the molecular formula of glucose."; var result = await languageModel.GenerateResponseAsync(prompt); OutputText.Text = result.Text; } }Skapa och kör appen.
Formeln för glukos bör visas i textblocket.
Avancerade handledningar och APIs
Nu när du har kontrollerat modelltillgänglighet kan du utforska närmare APIs i de olika Windows AI-guiderna API.
- Läs mer om tillgänglig Windows AI APIs
- Genomgång av Phi Silica API
- Genomgång av textigenkänning API
- Avbildningsgenomgång API
Felsökning
Om det uppstår fel beror det vanligtvis på maskinvaran eller avsaknaden av en nödvändig modell.
- Metoden GetReadyState kontrollerar om den modell som krävs av en AI-funktion är tillgänglig på användarens enhet. Du måste anropa den här metoden innan något anrop till modellen.
- Om modellen inte är tillgänglig på användarens enhet kan du anropa metoden EnsureReadyAsync för att installera den modell som krävs. Modellinstallationen körs i bakgrunden och användaren kan kontrollera installationsstatusen på sidan Windows-inställningar> förWindows-uppdateringsinställningar.
- Metoden EnsureReadyAsync har ett statusalternativ som kan visa ett inläsningsgränssnitt. Om användaren inte har maskinvara som stöds misslyckas EnsureReadyAsync med ett fel.
Identifiera maskinvarustöd vid körning
Windows AI APIs levereras över en mängd olika typer av maskinvara (NPU, GPU, CPU) och inte alla API stöds på varje enhet. Din app bör förgrena sig på resultatet av GetReadyState innan du utför något arbete, inklusive att visa användargränssnitt som är beroende av funktionen:
AIFeatureReadyState |
Vad det innebär | Vad din app ska göra |
|---|---|---|
Ready |
Modellen är installerad och enheten stöder API. | Anropa API. |
NotReady |
Enheten stöder API, men modellen måste laddas ned eller förberedas. | Visa en dialogruta med medgivande som förklarar nedladdningen (storlek, nätverksanvändning) och anropa sedan EnsureReadyAsync och rapportera förloppet till användaren. |
DisabledByUser |
Användaren inaktiverade den nödvändiga AI-komponenten. | Be användaren att aktivera komponenten i Windows Inställningar, eller dölja eller inaktivera funktionen. |
NotSupportedOnCurrentSystem |
Enheten kan inte köra detta API (inkompatibel maskinvara, saknade drivrutiner eller princip). | Anropa inte EnsureReadyAsync. Dölj eller inaktivera funktionen eller återgå till en alternativ implementering (till exempel en MOLN-AI-tjänst). |
Ett exempel från slutpunkt till slutpunkt som täcker alla tre grenarna (inklusive medgivandedialogrutan UX) finns i Phi Silica → rekommenderat UX-mönster. Samma mönster gäller för varje Windows AI API som exponerar GetReadyState.
Anmärkning
För APIs som har rekommenderade CPU-specifikationer (till exempel VSR) GetReadyState räcker det inte på egen hand.
GetReadyState anger bara om API stöds. Kontrollen av CPU-specifikationen anger om den kommer att köras tillräckligt bra för ditt UX. Använd båda: grindtillgänglighet med GetReadyState, kvalitetsval för grindar via CPU-kontrollen.
Mer hjälp finns i Felsökning och vanliga frågor och svar om Windows AIAPI.