Pelajari tentang persyaratan perangkat keras Windows AI API dan cara mengonfigurasi perangkat Anda agar berhasil membangun aplikasi menggunakan Windows AI APIs.
Dependensi
Pastikan PC Anda mendukung Windows AI APIs dan semua dependensi diinstal. Anda dapat memilih untuk melakukan ini secara otomatis (disarankan) atau secara manual.
Konfirmasikan bahwa perangkat Anda adalah PC Copilot+ (kami merekomendasikan perangkat yang tercantum dalam panduan pengembang Copilot+ PC).
Jalankan perintah berikut di Terminal Windows.
winget configure https://raw.githubusercontent.com/microsoft/winget-dsc/refs/heads/main/samples/Configuration%20files/Learn%20tutorials/Windows%20AI/learn_wcr.winget
Ini menjalankan file Konfigurasi WinGet yang melakukan tugas berikut:
- Memeriksa apakah versi OS memenuhi persyaratan minimum.
- Mengaktifkan Mode Pengembang.
- Menginstal Visual Studio Community Edition dengan WinUI dan beban kerja lain yang diperlukan.
- Menginstal Windows App SDK.
Membuat aplikasi baru
Langkah-langkah berikut menjelaskan cara membuat aplikasi yang menggunakan Windows AI APIs (pilih tab untuk kerangka kerja UI pilihan Anda).
Di Visual Studio, buat proyek WinUI baru dengan memilih templat Aplikasi Kosong, Dipaketkan (WinUI 3 di Desktop).
Di Penjelajah Solusi, klik kanan simpul proyek, pilih Properti>Umum Aplikasi>, dan pastikan bahwa kerangka kerja target diatur ke .NET 8.0, dan OS target diatur ke 10.0.22621 atau yang lebih baru.
Edit file Package.appxmanifest (klik kanan dan pilih Tampilkan kode) dan tambahkan cuplikan berikut.
Kemampuan systemAIModels untuk simpul <Capabilities> :
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
Spesifikator namespace systemai ke "IgnorableNamespaces" dalam simpul <Package> :
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Versi maksimum yang diuji pada elemen TargetDeviceFamily dari simpul <Dependencies> harus setidaknya 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Tambahkan yang berikut ini ke file .waproj, .csproj, atau .vcxproj Anda. Langkah ini diperlukan untuk memastikan Visual Studio tidak menggantikan versi maksimum yang diuji.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Klik kanan simpul proyek dan pilih Kelola Paket NuGet....
Di Pengelola Paket NuGet, centang kotak sertakan prarilis , dan pilih Windows App SDK versi 1.8.250410001-experimental1. Klik Instal atau Perbarui.
Pastikan konfigurasi build Anda diatur ke ARM64.
Buat dan jalankan aplikasi Anda.
Jika aplikasi berhasil diluncurkan, lanjutkan ke Tambahkan AI APIpertama Anda. Jika tidak, lihat Pemecahan Masalah.
Di Visual Studio, buat proyek WPF baru dengan memilih templat Aplikasi WPF .
Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Edit File Proyek untuk dibuka sebagai XML. Ganti semua yang ada di dalamnya <PropertyGroup> dengan yang berikut ini:
<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>
Edit file Package.appxmanifest (klik kanan dan pilih Tampilkan kode) dan tambahkan cuplikan berikut.
Kemampuan systemAIModels untuk simpul <Capabilities> :
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
Spesifikator namespace systemai ke "IgnorableNamespaces" dalam simpul <Package> :
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Versi maksimum yang diuji pada elemen TargetDeviceFamily dari simpul <Dependencies> harus setidaknya 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Tambahkan yang berikut ini ke file .waproj, .csproj, atau .vcxproj Anda. Langkah ini diperlukan untuk memastikan Visual Studio tidak menggantikan versi maksimum yang diuji.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Di Penjelajah Solusi, klik kanan simpul Dependensi dan pilih Kelola Paket Nuget....
Di Pengelola Paket NuGet, centang kotak sertakan prarilis , dan pilih Windows App SDK versi 1.8.250410001-experimental1. Klik Instal atau Perbarui.
Buat dan jalankan aplikasi Anda.
Jika aplikasi berhasil diluncurkan, lanjutkan ke Tambahkan AI APIpertama Anda. Jika tidak, lihat Pemecahan Masalah.
Untuk informasi selengkapnya, lihat Mengonfigurasi proyek WPF Anda untuk dukungan Windows App SDK.
Buat proyek MAUI dengan mengikuti instruksi di Membangun aplikasi MAUI .NET pertama Anda.
Di Penjelajah Solusi, klik kanan simpul > proyek Edit File Proyek untuk dibuka sebagai XML.
Di bagian bawah file proyek, tambahkan baris ini untuk mereferensikan versi paket Microsoft.WindowsAppSDK yang benar (saat mengkompilasi untuk platform Windows):
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.250410001-experimental1"/>
</ItemGroup>
Nota
Meskipun Anda dapat mengklik simpul proyek dan memilih opsi Kelola Paket NuGet... untuk menambahkan paket yang diperlukan, jika aplikasi Anda juga sedang membangun untuk platform lain, seperti Android dan iOS, Anda masih perlu mengedit file proyek untuk mengondisikan referensi paket untuk build khusus Windows.
Tambahkan yang berikut ini ke file .waproj, .csproj, atau .vcxproj Anda. Langkah ini diperlukan untuk memastikan Visual Studio tidak menggantikan versi maksimum yang diuji.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Di Penjelajah Solusi, klik kanan simpul proyek, pilih Properti, dan pastikan bahwa Kerangka Kerja Windows Target diatur ke 10.0.22621 atau yang lebih baru.
Edit file Package.appxmanifest (klik kanan dan pilih Tampilkan kode) dan tambahkan cuplikan berikut.
Kemampuan systemAIModels untuk simpul <Capabilities> :
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
Spesifikator namespace systemai ke "IgnorableNamespaces" dalam simpul <Package> :
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Versi maksimum yang diuji pada elemen TargetDeviceFamily dari simpul <Dependencies> harus setidaknya 10.0.26226.0:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Buat dan jalankan aplikasi Anda.
Jika aplikasi berhasil diluncurkan, lanjutkan ke Tambahkan AI APIpertama Anda. Jika tidak, lihat Pemecahan Masalah.
Tambahkan AI pertama Anda API
Saat menerapkan fitur menggunakan Windows AI APIs, aplikasi Anda harus terlebih dahulu memeriksa ketersediaan model AI yang mendukung fitur tersebut.
Cuplikan berikut menunjukkan cara memeriksa ketersediaan model dan menghasilkan respons.
Di MainWindow.xaml, tambahkan TextBlock untuk menampilkan respons LanguageModel .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
Di bagian atas MainWindow.xaml.cs, tambahkan arahan berikut using Microsoft.Windows.AI .
using Microsoft.Windows.AI;
Di MainWindow.xaml.cs, ganti kelas MainWindow dengan kode berikut, yang mengonfirmasi LanguageModel tersedia dan kemudian mengirimkan permintaan yang meminta model untuk merespons dengan rumus molekul glukosa.
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;
}
}
Buat dan jalankan aplikasi.
Rumus untuk glukosa akan muncul di blok teks.
Di MainWindow.xaml, tambahkan TextBlock untuk menampilkan respons LanguageModel .
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
Di bagian atas MainWindow.xaml.cs, tambahkan arahan berikut using Microsoft.Windows.AI .
using Microsoft.Windows.AI;
Dalam MainWindow.xaml.cs, ganti kelas MainWindow dengan kode berikut, yang mengonfirmasi LanguageModel tersedia dan kemudian mengirimkan permintaan yang meminta model untuk merespons dengan rumus molekul glukosa.
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;
}
}
Buat dan jalankan aplikasi.
Rumus untuk glukosa akan muncul di blok teks.
Lihat Memanggil kode platform untuk detail tentang menambahkan kode khusus platform ke aplikasi MAUI.
Untuk contoh ini, kami menggunakan kelas parsial dan pendekatan metode parsial untuk menempatkan kode Windows di folder Platform\Windows.
Dalam MainPage.xaml.cs, tambahkan definisi metode parsial sebagai partial void ChangeLanguageModelAvailability(); dan panggil metode parsial tersebut dari handler OnCounterClicked untuk tombol yang CounterBtn dibuat oleh templat Aplikasi .NET MAUI.
Di Penjelajah Solusi, perluas Platform, klik kanan pada Windows, pilih Tambahkan>Kelas... , ketik nama MainPage.cs, dan klik Tambahkan.
MainPage.cs baru harus ditampilkan di jendela editor. Beralih kembali ke MainPage.xaml.cs untuk menyalin baris namespace-nya.
Beralih kembali ke file MainPage.cs baru dan gantikan baris namespace-nya dengan baris dari MainPage.xaml.cs. Ini untuk menjadikan kelas Platform\Windows sebagai ekstensi parsial dari kelas MainPage dasar.
Untuk menyelesaikan pembuatan MainPage.cs ekstensi, ganti internal pada deklarasi kelas dengan partial.
Tambahkan kode berikut ke metode parsial ChangeLanguageModelAvailability yang ditentukan di langkah 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}");
}
}
Jalankan aplikasi lagi, klik tombol Klik saya , dan amati output di panel output debug Visual Studio.
Tutorial tingkat lanjut dan APIs
Sekarang setelah Anda berhasil memeriksa ketersediaan model, pelajari APIs lebih dalam melalui berbagai tutorial Windows AI API.
Penyelesaian Masalah
Jika Anda mengalami kesalahan, biasanya karena perangkat keras Anda atau tidak adanya model yang diperlukan.
- Metode GetReadyState memeriksa apakah model yang diperlukan oleh fitur AI tersedia di perangkat pengguna. Anda harus memanggil metode ini sebelum melakukan panggilan apa pun ke model.
- Jika model tidak tersedia di perangkat pengguna, maka Anda dapat memanggil metode EnsureReadyAsync untuk menginstal model yang diperlukan. Penginstalan model berjalan di latar belakang, dan pengguna dapat memeriksa kemajuan penginstalan pada halaman Pengaturan Windows>Windows Update.
- Metode EnsureReadyAsync memiliki opsi status yang dapat menampilkan antarmuka pengguna pemuatan. Jika pengguna memiliki perangkat keras yang tidak didukung, maka EnsureReadyAsync akan gagal dengan kesalahan.
Lihat Pemecahan masalah dan FAQ Windows AI API untuk bantuan selengkapnya.
Lihat juga