Windows AI API ハードウェア要件と、Windows AI APIsを使用してアプリを正常に構築するようにデバイスを構成する方法について説明します。
依存関係
PC で Windows AI APIs がサポートされていることと、すべての依存関係がインストールされていることを確認します。 これを自動的に行うか (推奨)、手動で行うかを選択できます。
使用する予定の Windows AI APIs のハードウェア要件をデバイスが満たしていることを確認します。 ほとんどのAPIsには、NPU を使用したCopilot+ PCが必要です (Copilot+ PCs 開発者ガイドに記載されているデバイスをお勧めします)。 一部のAPIsでは、Copilot+ ではないデバイスでの GPU または CPU での実行もサポートされています。詳細については、対応ハードウェア一覧を参照してください。
Windows ターミナルで次のコマンドを実行します。
winget configure https://raw.githubusercontent.com/microsoft/winget-dsc/refs/heads/main/samples/Configuration%20files/Learn%20tutorials/Windows%20AI/learn_wcr.winget
これにより、次のタスクを実行する WinGet 構成ファイル が実行されます。
- OS の最小バージョンを確認します。
- 開発者モードを有効にします。
- WinUI やその他の必要なワークロードを含む Visual Studio Community Edition をインストールします。
- Windows アプリ SDK をインストールします。
- 使用する予定の Windows AI APIs のハードウェア要件をデバイスが満たしていることを確認します。 ほとんどのAPIsには、NPU を使用したCopilot+ PCが必要です (Copilot+ PCs 開発者ガイドに記載されているデバイスをお勧めします)。 GPU または CPU の実行をサポートする APIs もあります。詳細については、 サポートされているハードウェア の表 を参照してください。
-
Windows 11 Insider Preview ビルド 26120.3073 (開発およびベータ チャネル) 以降をインストールします (OS のバージョンを確認するには、Windows Search から
winverを実行します)。
-
For Phi Silica on GPU: Windows Insider Experimental Channel ビルド 26300.8553 以降を使用します。
-
Settings>System>For developers>Developer Mode で開発者モードを有効にします。 これは GPU 上の Phi Silica に 必要 です。
- WinUI と Windows アプリ SDK を使用して開発するための特定のワークロードとコンポーネントを含む Visual Studio をインストールします。 詳細については、「 必要なワークロードとコンポーネント」を参照してください。
- GPU 上の Phi Silica には、Windows アプリ SDK バージョン 2.2.2-experimental9 (2026 年 6 月試験) 以降を使用します。
新しいアプリをビルドする
次の手順では、Windows AI APIs を使用するアプリを構築する方法について説明します (優先する UI フレームワークのタブを選択します)。
Visual Studio で、 空のアプリパッケージ (デスクトップの WinUI 3) テンプレートを選択して、新しい WinUI プロジェクトを作成します。
ソリューション エクスプローラーでプロジェクト ノードを右クリックし、プロパティ>Application>General を選択し、ターゲット フレームワークが .NET 8.0 に設定され、ターゲット OS が 10.0.22621 以降に設定されていることを確認します。
Package.appxmanifest ファイルを編集し (右クリックして [ コードの表示] を選択)、次のスニペットを追加します。
systemAIModels ノードに対する <Capabilities> 機能:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
systemai ノードの "IgnorableNamespaces" への<Package>名前空間指定子。
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
TargetDeviceFamily ノードの <Dependencies> 要素でテストされる最大バージョンは、少なくとも 10.0.26226.0 である必要があります。
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
次のファイルを .waproj、.csproj、または .vcxproj ファイルに追加します。 この手順は、Visual Studio がテストされた最大バージョンをオーバーライドしないようにするために必要です。
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
プロジェクト ノードを右クリックし、[ NuGet パッケージの管理...] を選択します。
NuGet パッケージ マネージャーで、[プレリリースを含める] チェック ボックスをオンにし、Windows アプリ SDK バージョン 1.8.250410001-experimental1 を選択します。 [ インストール ] または [ 更新] をクリックします。
ビルド構成がデバイスに適したアーキテクチャ ( ARM64 や x64 など) に設定されていることを確認します。
アプリをビルドして実行します。
アプリが正常に起動した場合は、最初の AI APIの追加に進みます。 それ以外の場合は、「 トラブルシューティング」を参照してください。
Visual Studio で、WPF アプリケーション テンプレートを選択して新しい WPF プロジェクトを作成します。
ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[プロジェクト ファイルの編集] を選択して XML として開きます。
<PropertyGroup>内のすべてを次のように置き換えます。
<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 ファイルを編集し (右クリックして [ コードの表示] を選択)、次のスニペットを追加します。
systemAIModels ノードに対する <Capabilities> 機能:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
systemai ノードの "IgnorableNamespaces" への<Package>名前空間指定子。
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
TargetDeviceFamily ノードの <Dependencies> 要素でテストされる最大バージョンは、少なくとも 10.0.26226.0 である必要があります。
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
次のファイルを .waproj、.csproj、または .vcxproj ファイルに追加します。 この手順は、Visual Studio がテストされた最大バージョンをオーバーライドしないようにするために必要です。
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
ソリューション エクスプローラーで、[依存関係] ノードを右クリックし、[Nuget パッケージの管理...] を選択します。
NuGet パッケージ マネージャーで、[プレリリースを含める] チェック ボックスをオンにし、Windows アプリ SDK バージョン 1.8.250410001-experimental1 を選択します。 [ インストール ] または [ 更新] をクリックします。
アプリをビルドして実行します。
アプリが正常に起動した場合は、最初の AI APIの追加に進みます。 それ以外の場合は、「 トラブルシューティング」を参照してください。
詳細については、「 Windows アプリ SDK サポート用に WPF プロジェクトを構成する」を参照してください。
「最初の .NET MAUI アプリをビルドする」の手順に従って、MAUI プロジェクトを作成します。
ソリューション エクスプローラーで、[プロジェクト >] プロジェクト ノードを右クリックし、XML として開きます。
プロジェクト ファイルの下部に、次の行を追加して、正しい Microsoft.WindowsAppSDK パッケージ バージョンを参照します (Windows プラットフォーム用にコンパイルする場合)。
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.250410001-experimental1"/>
</ItemGroup>
注
プロジェクト ノードをクリックして [ NuGet パッケージの管理...] オプションを選択して必要なパッケージを追加できますが、アプリが Android や iOS などの他のプラットフォーム向けにビルドされている場合は、Windows 専用ビルドのパッケージ参照を条件としてプロジェクト ファイルを編集する必要があります。
次のファイルを .waproj、.csproj、または .vcxproj ファイルに追加します。 この手順は、Visual Studio がテストされた最大バージョンをオーバーライドしないようにするために必要です。
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
ソリューション エクスプローラーでプロジェクト ノードを右クリックし、[プロパティ] を選択し、ターゲット Windows Framework が 10.0.22621 以降に設定されていることを確認します。
Package.appxmanifest ファイルを編集し (右クリックして [ コードの表示] を選択)、次のスニペットを追加します。
systemAIModels ノードに対する <Capabilities> 機能:
<Capabilities>
<systemai:Capability Name="systemAIModels"/>
</Capabilities>
systemai ノードの "IgnorableNamespaces" への<Package>名前空間指定子。
xmlns:systemai="http://schemas.microsoft.com/appx/manifest/systemai/windows10"
IgnorableNamespaces="uap rescap systemai"
TargetDeviceFamily ノードの <Dependencies> 要素でテストされる最大バージョンは、少なくとも 10.0.26226.0 である必要があります。
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
アプリをビルドして実行します。
アプリが正常に起動した場合は、最初の AI APIの追加に進みます。 それ以外の場合は、「 トラブルシューティング」を参照してください。
最初の AI を追加する API
Windows AI APIsを使用して機能を実装する場合、アプリではまず、その機能をサポートする AI モデルの可用性を確認する必要があります。
次のスニペットは、モデルの可用性を確認し、応答を生成する方法を示しています。
MainWindow.xaml で、 TextBlock を追加して LanguageModel 応答を表示します。
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
MainWindow.xaml.csの先頭に、次の using Microsoft.Windows.AI ディレクティブを追加します。
using Microsoft.Windows.AI;
MainWindow.xaml.csでは、MainWindow クラスを次のコードに置き換えます。これにより、LanguageModel が使用可能であることを確認し、モデルがグルコースの分子式で応答するように求めるプロンプトが送信されます。
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;
}
}
アプリケーションをビルドし、実行します。
グルコースの数式がテキスト ブロックに表示されます。
MainWindow.xaml で、 TextBlock を追加して LanguageModel 応答を表示します。
<TextBlock x:Name="OutputText" HorizontalAlignment="Center" VerticalAlignment="Center" />
MainWindow.xaml.csの先頭に、次の using Microsoft.Windows.AI ディレクティブを追加します。
using Microsoft.Windows.AI;
MainWindow.xaml.csでは、 MainWindow クラスを次のコードに置き換えます。これにより、 LanguageModel が使用可能であることが確認され、グルコースの分子式でモデルが応答するように求めるプロンプトが送信されます。
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;
}
}
アプリケーションをビルドし、実行します。
グルコースの数式がテキスト ブロックに表示されます。
プラットフォーム固有のコードを MAUI アプリに追加する方法の詳細については、プラットフォーム コードの 呼び出 しに関するページを参照してください。
この例では、部分クラスと部分メソッドのアプローチを使用して、Windows コードを Platform\Windows フォルダーに配置します。
MainPage.xaml.csで、部分メソッド定義をpartial void ChangeLanguageModelAvailability();として追加し、.NET MAUI アプリ テンプレートによって作成された ボタンの CounterBtn ハンドラーからその部分メソッドを呼び出します。
ソリューション エクスプローラーで、[プラットフォーム] を展開し、Windows を右クリックし、[追加>Class...] を選択し、MainPage.cs名前を入力して、[追加] をクリックします。
新しいMainPage.csがエディター ウィンドウに表示されます。 MainPage.xaml.csに戻って名前空間行をコピーします。
新しいMainPage.csに戻り、名前空間の行をMainPage.xaml.csの行に置き換えます。 これは、 Platform\Windows クラスを 基本 MainPage クラスの部分拡張にするためです。
MainPage.cs拡張機能の作成を完了するには、クラス宣言の internal を partialに置き換えます。
手順 1 で定義した ChangeLanguageModelAvailability 部分メソッドに次のコードを追加します。
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}");
}
}
アプリをもう一度実行し、[ クリック ] ボタンをクリックして、Visual Studio のデバッグ出力ウィンドウで出力を確認します。
高度なチュートリアルと APIs
モデルの可用性を正常に確認できたので、さまざまな Windows AI APIs チュートリアルでAPIをさらに詳しく調べてください。
トラブルシューティング
エラーが発生した場合は、通常、ハードウェアまたは必要なモデルがないためです。
-
GetReadyState メソッドは、AI 機能に必要なモデルがユーザーのデバイスで使用できるかどうかを確認します。 モデルを呼び出す前に、このメソッドを呼び出す必要があります。
- ユーザーのデバイスでモデルを使用できない場合は、 EnsureReadyAsync メソッドを呼び出して、必要なモデルをインストールできます。 モデルのインストールはバックグラウンドで実行され、ユーザーは Windows 設定>Windows 更新 設定ページでインストールの進行状況を確認できます。
-
EnsureReadyAsync メソッドには、読み込み UI を表示できる状態オプションがあります。 ユーザーがサポートされていないハードウェアを持っている場合、 EnsureReadyAsync はエラーで失敗します。
実行時にハードウェア サポートを検出する
Windows AI APIs は、さまざまなハードウェア (NPU、GPU、CPU) に付属しており、すべてのAPIがすべてのデバイスでサポートされているわけではありません。 アプリは、機能に依存する UI の表示など、作業を行う前に GetReadyState の結果で分岐する必要があります。
AIFeatureReadyState |
意味 |
アプリで実行する必要がある操作 |
Ready |
モデルがインストールされ、デバイスが APIをサポートします。 |
APIを呼び出します。 |
NotReady または EnsureNeeded |
デバイスは APIをサポートしていますが、モデルをダウンロードまたは準備する必要があります。 |
ダウンロード (サイズ、ネットワークの使用状況) を説明する同意ダイアログを表示し、 EnsureReadyAsync を呼び出して進行状況をユーザーに報告します。 |
NotSupportedOnCurrentSystem |
デバイスは、この API (互換性のないハードウェア、不足しているドライバー、またはポリシー) を実行できません。 |
EnsureReadyAsync を呼び出さないでください。 機能を非表示または無効にするか、代替実装 ( クラウド AI サービスなど) にフォールバックします。 |
3 つのブランチ (同意ダイアログ UX を含む) をすべて網羅したエンド ツー エンドの例については、「 Phi Silica → Recommended UX パターン」を参照してください。 同じパターンは、API を公開するすべてのWindows AI に適用されます。
注
APIs (VSR など) を持つの場合、GetReadyStateだけでは不十分です。
GetReadyState は、 API がサポートされているかどうかを示すだけです。CPU スペック チェックでは、UX に 十分 に動作するかどうかを示します。 両方を使用する: GetReadyStateでのゲート可用性、CPU チェックによるゲート品質の選択。
詳細については、 Windows AI API のトラブルシューティングと FAQ を参照してください。
こちらも参照ください