Windows AI donanım gereksinimlerini ve cihazınızı Windows AI APIAPIs kullanarak başarıyla uygulama geliştirmek için nasıl yapılandıracağınızı öğrenin.
Bağımlılıklar
Bilgisayarınızın Windows AI'yi APIs desteklediğini ve tüm bağımlılıkların yüklü olduğundan emin olun. Bunu otomatik olarak (önerilen) veya el ile yapmayı seçebilirsiniz.
Cihazınızın bir Copilot+ bilgisayar olduğunu onaylayın ( Copilot+ bilgisayarlar geliştirici kılavuzunda listelenen cihazları öneririz).
Windows Terminali'nde aşağıdaki komutu çalıştırın.
winget configure https://raw.githubusercontent.com/microsoft/winget-dsc/refs/heads/main/samples/Configuration%20files/Learn%20tutorials/Windows%20AI/learn_wcr.winget
Bu, aşağıdaki görevleri gerçekleştiren bir WinGet Yapılandırma dosyası çalıştırır:
- En düşük işletim sistemi sürümünü denetler.
- Geliştirici Modunu etkinleştirir.
- Visual Studio Community Edition'ı WinUI ve diğer gerekli iş yükleriyle yükler.
- Windows Uygulama SDK'sını yükler.
Yeni uygulama oluşturma
Aşağıdaki adımlar, Windows AI APIs kullanan bir uygulamanın nasıl derlendiğini açıklar (tercih ettiğiniz UI çerçevesi için sekmeyi seçin).
Visual Studio'da Boş Uygulama, Paketlenmiş (Masaüstünde WinUI 3) şablonunu seçerek yeni bir WinUI projesi oluşturun.
Çözüm Gezgini'nde proje düğümüne sağ tıklayın, Özellikler>Uygulama>Genel'i seçin ve hedef çerçevenin .NET 8.0 olarak ayarlandığından ve hedef işletim sisteminin 10.0.22621 veya sonraki bir sürüme ayarlandığından emin olun.
Package.appxmanifest dosyasını düzenleyin (sağ tıklayın ve Kodu görüntüle'yi seçin) ve aşağıdaki kod parçacıklarını ekleyin.
systemAIModels
Düğümün <Capabilities>
özelliği:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
systemai
ad alanı belirticisini <Package>
düğümde "IgnorableNamespaces" olarak tanımlama:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Düğümün TargetDeviceFamily
<Dependencies>
öğesinde test edilen en yüksek sürüm en az 10.0.26226.0 olmalıdır:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
.waproj, .csproj veya .vcxproj dosyanıza aşağıdakileri ekleyin. Visual Studio'nun test edilen en yüksek sürümü geçersiz kılmadığından emin olmak için bu adım gereklidir.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Proje düğümüne sağ tıklayın ve NuGet Paketlerini Yönet...'i seçin.
NuGet Paket Yöneticisi'ndeÖn sürümü dahil et onay kutusunu işaretleyin ve Windows Uygulama SDK'sı sürüm 1.8.250410001-experimental1'i seçin.
Yükle veya Güncelleştir'e tıklayın.
Derleme yapılandırmanızın ARM64 olarak ayarlandığından emin olun.
Uygulamanızı derleyin ve çalıştırın.
Uygulama başarıyla başlatılırsa İlk yapay zekanızı APIekleme bölümüne geçin. Aksi takdirde sorun giderme bölümüne bakın.
Visual Studio'da WPF Uygulaması şablonunu seçerek yeni bir WPF projesi oluşturun.
Çözüm Gezgini'nde proje düğümüne sağ tıklayın ve Proje Dosyasını Düzenle'yi seçerek XML olarak açın. içindeki <PropertyGroup>
her şeyi aşağıdakilerle değiştirin:
<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>
Package.appxmanifest dosyasını düzenleyin (sağ tıklayın ve Kodu görüntüle'yi seçin) ve aşağıdaki kod parçacıklarını ekleyin.
systemAIModels
Düğümün <Capabilities>
özelliği:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
"IgnorableNamespaces" tanımlayıcı ad alanında systemai
<Package>
düğümünde:
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Düğümün TargetDeviceFamily
<Dependencies>
öğesinde test edilen en yüksek sürüm en az 10.0.26226.0 olmalıdır:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
.waproj, .csproj veya .vcxproj dosyanıza aşağıdakileri ekleyin. Visual Studio'nun test edilen en yüksek sürümü geçersiz kılmadığından emin olmak için bu adım gereklidir.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Çözüm Gezgini'ndeBağımlılıklar düğümüne sağ tıklayın ve Nuget Paketlerini Yönet... öğesini seçin.
NuGet Paket Yöneticisi'ndeÖn sürümü dahil et onay kutusunu işaretleyin ve Windows Uygulama SDK'sı sürüm 1.8.250410001-experimental1'i seçin.
Yükle veya Güncelleştir'e tıklayın.
Uygulamanızı derleyin ve çalıştırın.
Uygulama başarıyla başlatılırsa İlk yapay zekanızı APIekleme bölümüne geçin. Aksi takdirde sorun giderme bölümüne bakın.
Daha fazla bilgi için bkz . Wpf projenizi Windows Uygulama SDK'sı desteği için yapılandırma.
İlk .NET MAUI uygulamanızı derleme başlığındaki yönergeleri izleyerek bir MAUI projesi oluşturun.
Çözüm Gezgini'nde Proje > proje düğümüne sağ tıklayarak XML olarak açın.
Proje dosyasının en altına doğru Microsoft.WindowsAppSDK paket sürümüne başvurmak için şu satırları ekleyin (Windows platformu için derleme yaparken):
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.250410001-experimental1"/>
</ItemGroup>
Uyarı
Proje düğümüne tıklayıp NuGet Paketlerini Yönet... seçeneği seçildiğinde gerekli paketi eklemek için kullanılabilir. Uygulamanız Android ve iOS gibi diğer platformlar için de derleniyorsa, proje dosyasının yalnızca Windows derlemeleri için paket başvurusunu koşullandıracak şekilde düzenlenmesi gerekir.
.waproj, .csproj veya .vcxproj dosyanıza aşağıdakileri ekleyin. Visual Studio'nun test edilen en yüksek sürümü geçersiz kılmadığından emin olmak için bu adım gereklidir.
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
Çözüm Gezgini'nde proje düğümüne sağ tıklayın, Özellikler'i seçin ve Hedef Windows Çerçevesi'nin 10.0.22621 veya sonraki bir sürüme ayarlandığından emin olun.
Package.appxmanifest dosyasını düzenleyin (sağ tıklayın ve Kodu görüntüle'yi seçin) ve aşağıdaki kod parçacıklarını ekleyin.
systemAIModels
Düğümün <Capabilities>
özelliği:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
systemai
ad alanı tanımlayıcıyı "IgnorableNamespaces" olarak <Package>
düğümünde belirleyin.
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
Düğümün TargetDeviceFamily
<Dependencies>
öğesinde test edilen en yüksek sürüm en az 10.0.26226.0 olmalıdır:
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
Uygulamanızı derleyin ve çalıştırın.
Uygulama başarıyla başlatılırsa İlk yapay zekanızı APIekleme bölümüne geçin. Aksi takdirde sorun giderme bölümüne bakın.
İlk yapay zekanızı ekleme API
Windows AI APIskullanarak bir özellik uygularken uygulamanız önce bu özelliği destekleyen yapay zeka modelinin kullanılabilirliğini denetlemelidir.
Aşağıdaki kod parçacığında model kullanılabilirliğini denetleme ve yanıt oluşturma işlemi gösterilmektedir.
MainWindow.xaml'de LanguageModel yanıtını görüntülemek için bir TextBlock ekleyin.
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
MainWindow.xaml.cs en üstüne aşağıdaki using Microsoft.Windows.AI
yönergeyi ekleyin.
using Microsoft.Windows.AI;
içinde MainWindow.xaml.cs
MainWindow sınıfını, LanguageModel'in kullanılabilir olduğunu onaylayan ve ardından modelin glikoz moleküler formülüyle yanıt vermesini isteyen bir istem gönderen aşağıdaki kodla değiştirin.
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;
}
}
Uygulamayı derleyin ve çalıştırın.
Glikoz formülü metin bloğunda görünmelidir.
MainWindow.xaml'de LanguageModel yanıtını görüntülemek için bir TextBlock ekleyin.
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
MainWindow.xaml.cs en üstüne aşağıdaki using Microsoft.Windows.AI
yönergeyi ekleyin.
using Microsoft.Windows.AI;
MainWindow.xaml.cs mainWindow sınıfını aşağıdaki kodla değiştirin. Bu kod LanguageModel'in kullanılabilir olduğunu onaylar ve ardından modelin glukoz moleküler formülüyle yanıt vermesini isteyen bir istem gönderir.
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;
}
}
Uygulamayı derleyin ve çalıştırın.
Glikoz formülü metin bloğunda görünmelidir.
MauI uygulamasına platforma özgü kod ekleme hakkında ayrıntılı bilgi için bkz. Platform kodunu çağırma.
Bu örnekte, Windows kodunu Platform\Windows klasörüne yerleştirmek için kısmi sınıflar ve kısmi yöntemler yaklaşımını kullanırız.
MainPage.xaml.cs dosyasında partial void ChangeLanguageModelAvailability();
kısmi bir yöntem tanımlaması ekleyin ve .NET MAUI Uygulama şablonuyla oluşturulan düğmesinin CounterBtn
işleyicisinden bu kısmi yöntemi çağırın.
Çözüm Gezgini'ndePlatformlar'ı genişletin, Windows'a sağ tıklayın, Sınıf Ekle>... öğesini seçin, MainPage.cs adını yazın ve Ekle'ye tıklayın.
Yeni MainPage.cs düzenleyici penceresinde gösterilmelidir. Ad alanı satırını kopyalamak için MainPage.xaml.cs dosyasına geri dönün.
Yeni MainPage.cs dosyasına geri dönün ve ad alanı satırını MainPage.xaml.cs dosyasındaki satırla değiştirin. Bu, Platform\Windows sınıfını temel MainPage sınıfının kısmi bir uzantısı yapmaktır.
MainPage.cs'yi bir uzantı haline getirme işlemini tamamlamak için, sınıf bildiriminde internal
'ü partial
ile değiştirin.
1. adımda tanımlanan ChangeLanguageModelAvailability kısmi yöntemine aşağıdaki kodu ekleyin.
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}");
}
}
Uygulamayı yeniden çalıştırın, Bana tıklayın düğmesine tıklayın ve Visual Studio hata ayıklama çıkış bölmesindeki çıkışı gözlemleyin.
Gelişmiş eğitimler ve APIs
Model kullanılabilirliğini başarıyla denetlediğinize göre, çeşitli Windows AI APIs öğreticilerinde daha fazla bilgi edininAPI.
Sorun giderme
Herhangi bir hatayla karşılaşırsanız, bunun nedeni genellikle donanımınız veya gerekli bir modelin olmamasıdır.
-
GetReadyState yöntemi, bir yapay zeka özelliği için gereken modelin kullanıcının cihazında kullanılabilir olup olmadığını denetler. Modele herhangi bir çağrı yapmadan önce bu yöntemi çağırmanız gerekir.
- Model kullanıcının cihazında kullanılamıyorsa, gerekli modeli yüklemek için EnsureReadyAsync yöntemini çağırabilirsiniz. Model yüklemesi arka planda çalışır ve kullanıcı Windows Ayarları Windows Update Ayarları> sayfasında yükleme ilerleme durumunu denetleyebilir.
-
EnsureReadyAsync yönteminin yükleme kullanıcı arabirimini gösterebilen bir durum seçeneği vardır. Kullanıcının desteklenmeyen donanımı varsa EnsureReadyAsync bir hatayla başarısız olur.
Daha fazla yardım için bkz. Windows AI API sorun giderme ve SSS .
Ayrıca bakınız