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. Bekräfta att enheten är en Copilot+ PC (vi rekommenderar de enheter som anges i utvecklarguiden för Copilot+-datorer).

  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 Solution Explorer, 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 Package Manager 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å ARM64.

    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 direktiv överst i MainWindow.xaml.cs.

    using Microsoft.Windows.AI; 
    
  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..";
    
            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;
        }
    }
    
  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.

Mer hjälp finns i Felsökning och vanliga frågor och svar om Windows AIAPI.

Se även