Kom igång med att skapa en app med Windows AI APIs

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.

  1. 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.

  2. 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.winget
    

    Detta 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).

  1. I Visual Studio skapar du ett nytt WinUI-projekt genom att välja mallen Tom app, Paketerad (WinUI 3 i Desktop).

    En skärmbild av Visual Studio nya projektgränssnitt med WinUI-mallen vald.

  2. 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.

    En skärmbild av fönstret Egenskaper för Visual Studio-projekt

  3. Redigera filen Package.appxmanifest (högerklicka och välj Visa kod) och lägg till följande kodfragment.

    • Funktionen systemAIModels för <Capabilities> noden:

      <Capabilities>
         <systemai:Capability Name="systemAIModels"/>
      </Capabilities>
      
    • Namnområdesspecificeraren systemai till "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 TargetDeviceFamily nodens <Dependencies> element måste vara minst 10.0.26226.0:

      <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
      
  4. 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>
    
  5. Högerklicka på projektnoden och välj Hantera NuGet-paket....

  6. 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.

    En skärmbild av Visual Studio nuget-pakethanteraren med Microsoft.WindowsAppSDK 1.8.250410001-experimental1 valt.

  7. Kontrollera att byggkonfigurationen är inställd på rätt arkitektur för din enhet (till exempel ARM64 eller x64).

    En skärmbild av Visual Studio-byggkonfigurationen inställd på ARM64.

  8. Skapa och kör din app.

  9. 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.

  1. I MainWindow.xaml lägger du till en TextBlock för att visa LanguageModel-svaret .

    <TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
    
  2. Lägg till följande using Microsoft.Windows.AI och using Microsoft.Windows.AI.Text direktiv överst i MainWindow.xaml.cs.

    using Microsoft.Windows.AI;
    using Microsoft.Windows.AI.Text;
    
  3. 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;
        }
    }
    
  4. Skapa och kör appen.

  5. 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.

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.

Se även