AI アプリ テンプレート拡張機能を使用してカスタム データとチャットする .NET AI アプリを作成する
このクイック スタートでは、.NET AI アプリ テンプレートを使用してカスタム データとチャットする .NET AI アプリを作成する方法について説明します。 このテンプレートは、一般的なセットアップ タスクと構成を処理することで、.NET で AI アプリを構築するための作業の開始エクスペリエンスを効率化するように設計されています。
前提 条件
- .NET 9.0 SDK - .NET 9.0 SDK をインストールする
- Visual Studio 2022 - Visual Studio 2022 のインストール (省略可能)、または
- Visual Studio Code - Visual Studio Code をインストールする (省略可能)
- C# DevKit - C# Dev Kit 拡張機能をインストール
.NET AI アプリ テンプレートをインストールする
AI Chat Web App テンプレートは、NuGet を通じてテンプレート パッケージとして使用できます。 dotnet new install
コマンドを使用してパッケージをインストールします。
dotnet new install Microsoft.Extensions.AI.Templates
.NET AI アプリを作成する
AI アプリ テンプレートをインストールしたら、それらを使用して、Visual Studio UI、Visual Studio Code、または .NET CLI を使用してスターター アプリを作成できます。
- Visual Studio で、[ファイル] > [新しい > プロジェクト] に移動します。
- [新しいプロジェクト の作成] 画面で、AI チャット Web アプリのを検索します。 一致する結果を選択し、次に [次へ]を押します。
- [新しいプロジェクト の構成] 画面で、プロジェクトの目的の名前と場所を入力し、[次へ] 選択します。
- 追加情報 画面で、次の手順を実行します。
- [フレームワーク] オプションで [.NET 9.0] を選択します。
- [AI サービス プロバイダー] オプションで [GitHub モデル] を選択します。
- [ベクトル ストア] オプションで [ローカル オンディスク (プロトタイプ作成用)] を選択します。
- [作成] を選択してプロセスを完了します。
サンプル アプリを調べる
作成したサンプル アプリは、一般的な AI およびデータ サービスで事前構成された Blazor Interactive Server Web アプリです。 アプリは、次の懸念事項を処理します。
- AI の使用を開始するのに役立つ、
csproj
ファイルに不可欠なMicrosoft.Extensions.AI
パッケージとその他の依存関係が含まれています。 - さまざまな AI サービスを作成し、
Program.cs
ファイルに依存関係の挿入に登録します。- 生成 AI モデルとやり取りする
IChatClient
サービス - ベクター検索機能に不可欠な埋め込みの生成に使用される
IEmbeddingGenerator
サービス - インメモリ ベクトル ストアとして機能する
JsonVectorStore
- 生成 AI モデルとやり取りする
- SQLite データベース コンテキスト サービスを登録して、ドキュメントの取り込み処理を行います。 アプリは、指定されたサンプル ファイルを含め、プロジェクトの
Data
フォルダーに追加したドキュメントを取り込むよう事前構成されています。 - Blazor コンポーネントを使用して完全なチャット UI を提供します。 UI は、AI 応答の豊富な書式設定を処理し、応答データの引用などの機能を提供します。
GitHub モデルへのアクセスを構成する
コードから GitHub モデルに対して認証を行うには、GitHub 個人用アクセス トークンを作成する必要があります。
- GitHub アカウント設定の 個人用アクセス トークン ページに移動します。
- [新しいトークンの生成] を選択します。
- トークン名 を入力し、ページの下部にある [トークン生成] を選択します。
- 前の手順で使用するトークンをコピーします。
アプリを構成する
AI Chat Web App アプリは、作成されるとほとんどすぐに使用できます。 ただし、GitHub Modelsfor 用に設定した個人用アクセス トークンを使用するようにアプリを構成する必要があります。 既定では、アプリ テンプレートはプロジェクトのローカル .NET ユーザー シークレットでこの値を検索します。 Visual Studio UI または .NET CLI を使用して、ユーザー シークレットを管理できます。
Visual Studio で、ソリューション エクスプローラーでプロジェクトを右クリックし、[ユーザー シークレットの管理] を選択します。 これにより、ソース管理で追跡されずに API キーを格納できる
secrets.json
ファイルが開きます。次のキーと値を追加します。
{ "GitHubModels:Token": "<your-personal-access-token>" }
既定では、アプリ テンプレートは gpt-4o-mini
モデルと text-embedding-3-small
モデルを使用します。 他のモデルを試すには、Program.cs
の名前パラメーターを更新します。
var chatClient = ghModelsClient.AsChatClient("gpt-4o-mini");
var embeddingGenerator = ghModelsClient.AsEmbeddingGenerator("text-embedding-3-small");
前提 条件
- .NET 9.0 SDK - .NET 9.0 SDK をインストールする
- Visual Studio 2022 - Visual Studio 2022 のインストール (省略可能)、または
- Visual Studio Code - Visual Studio Code をインストールする (省略可能)
- C# DevKit - C# Dev Kit 拡張機能をインストール
.NET AI アプリ テンプレートをインストールする
AI Chat Web App テンプレートは、NuGet を通じてテンプレート パッケージとして使用できます。 dotnet new install
コマンドを使用してパッケージをインストールします。
dotnet new install Microsoft.Extensions.AI.Templates
.NET AI アプリを作成する
AI アプリ テンプレートをインストールしたら、それらを使用して、Visual Studio UI、Visual Studio Code、または .NET CLI を使用してスターター アプリを作成できます。
- Visual Studio で、[ファイル] > [新しい > プロジェクト] に移動します。
- [新しいプロジェクト の作成] 画面で、AI チャット Web アプリのを検索します。 一致する結果を選択してから、[次へ]を選択します。
- [新しいプロジェクト の構成] 画面で、プロジェクトの目的の名前と場所を入力し、[次へ] 選択します。
- 追加情報 画面で、次の手順を実行します。
- Framework オプションでは、の .NET 9.0を選択します。
- [AI サービス プロバイダー] オプションで [Azure OpenAI] を選択します。
- [Azure サービスにキーレス認証を使用する] チェック ボックスがオンになっていることを確認します。
- [ベクトル ストア] オプションで [ローカル オンディスク (プロトタイプ作成用)] を選択します。
- 「作成」を選択してプロセスを完了します。
サンプル アプリを調べる
作成したサンプル アプリは、一般的な AI およびデータ サービスで事前構成された Blazor Interactive Server Web アプリです。 アプリは、次の懸念事項を処理します。
- AI の使用を開始するのに役立つ、
csproj
ファイルに不可欠なMicrosoft.Extensions.AI
パッケージとその他の依存関係が含まれています。 - さまざまな AI サービスを作成し、
Program.cs
ファイルに依存関係の挿入に登録します。- 生成 AI モデルとやり取りする
IChatClient
サービス - ベクター検索機能に不可欠な埋め込みの生成に使用される
IEmbeddingGenerator
サービス - インメモリ ベクトル ストアとして機能する
JsonVectorStore
- 生成 AI モデルとやり取りする
- SQLite データベース コンテキスト サービスを登録して、ドキュメントの取り込み処理を行います。 アプリは、指定されたサンプル ファイルを含め、プロジェクトの
Data
フォルダーに追加したドキュメントを取り込むよう事前構成されています。 - Blazor コンポーネントを使用して完全なチャット UI を提供します。 UI は、AI 応答の豊富な書式設定を処理し、応答データの引用などの機能を提供します。
Azure OpenAI リソースを作成して構成する
.NET AI テンプレートを使用するには、Azure OpenAI サービスを作成して認証する必要があります。
Azure OpenAI サービス リソース をまだ作成していない場合は作成します。
gpt-4o-mini
モデルとtext-embedding-3-small
モデルを Azure OpenAI サービス リソースにデプロイします。 これらのデプロイを作成するときは、モデル (gpt-4o-mini
とtext-embedding-3-small
) と同じ名前を付けます。 モデルをデプロイする方法については、「Azure OpenAI ドキュメント リソース を作成する」を参照してください。AI テンプレートは、キーレス認証に Microsoft Entra ID を使用するように構成されています。 キーレス認証用に Azure OpenAI リソースを構成します。
- Azure Portal で、Azure OpenAI リソースの概要ページに移動します。
- 左側のナビゲーションから アクセス制御 (IAM) を選択します。
- Azure アカウントに
Azure AI Developer
ロールの のロール割り当てを追加します。
アプリを構成する
AI Chat Web App アプリは、作成されるとすぐにほぼ準備が整います。 ただし、アプリの接続先となる Azure OpenAI サービスのエンドポイントを指定する必要があります。 既定では、アプリ テンプレートはプロジェクトのローカル .NET ユーザー シークレットでこの値を検索します。 Visual Studio UI または .NET CLI を使用して、ユーザー シークレットを管理できます。
手記
認証エラーを回避するには、Azure OpenAI リソースで azure AI Developer ロール 割り当てられているユーザーを使用して、Visual Studio または Azure CLI にサインインしていることを確認します。
Visual Studio で、ソリューション エクスプローラーでプロジェクトを右クリックし、[ユーザー シークレットの管理] を選択します。 これにより、ソース管理で追跡されずに API キーを格納できる
secrets.json
ファイルが開きます。次のキーと値を追加します。
{ "AzureOpenAi:Endpoint": "<your-endpoint>" }
既定では、アプリ テンプレートは、AI モデルのデプロイ名が基になるモデルと同じであることを前提としています。 必要に応じて、gpt-4o-mini
と text-embedding-3-small
のデプロイ名と一致するようにデプロイ名パラメーターを更新します。
// Update these parameter values to match your Azure OpenAI model deployment names
var chatClient = azureOpenAi.AsChatClient("gpt-4o-mini");
var embeddingGenerator = azureOpenAi.AsEmbeddingGenerator("text-embedding-3-small");
前提 条件
- .NET 9.0 SDK - .NET 9.0 SDK をインストールする
- Visual Studio 2022 - Visual Studio 2022 のインストール (省略可能)、または
- Visual Studio Code - Visual Studio Code をインストールする (省略可能)
- C# DevKit - C# Dev Kit 拡張機能をインストール
- OpenAI サービス および対応する API キーへのアクセス。
.NET AI アプリ テンプレートをインストールする
AI Chat Web App テンプレートは、NuGet を通じてテンプレート パッケージとして使用できます。 dotnet new install
コマンドを使用してパッケージをインストールします。
dotnet new install Microsoft.Extensions.AI.Templates
.NET AI アプリを作成する
AI アプリ テンプレートをインストールしたら、それらを使用して、Visual Studio UI、Visual Studio Code、または .NET CLI を使用してスターター アプリを作成できます。
- Visual Studio で、[ファイル] > [新しい > プロジェクト] に移動します。
- [新しいプロジェクト の作成] 画面で、AI チャット Web アプリのを検索します。 一致する結果を選択してからをクリックし、[次へ]を選択します。
- [新しいプロジェクト の構成] 画面で、プロジェクトの目的の名前と場所を入力し、[次へ] 選択します。
- 追加情報 画面で、次の手順を実行します。
- [フレームワーク] オプションで [.NET 9.0] を選択します。
- オプションで AI サービス プロバイダーとして、[OpenAI] を選択します。
- [ベクトル ストア] オプションで [ローカル オンディスク (プロトタイプ作成用)] を選択します。
- [作成] を選択してプロセスを完了します。
サンプル アプリを調べる
作成したサンプル アプリは、一般的な AI およびデータ サービスで事前構成された Blazor Interactive Server Web アプリです。 アプリは、次の懸念事項を処理します。
- AI の使用を開始するのに役立つ、
csproj
ファイルに不可欠なMicrosoft.Extensions.AI
パッケージとその他の依存関係が含まれています。 - さまざまな AI サービスを作成し、
Program.cs
ファイルに依存関係の挿入に登録します。- 生成 AI モデルとやり取りする
IChatClient
サービス - ベクター検索機能に不可欠な埋め込みの生成に使用される
IEmbeddingGenerator
サービス JsonVectorStore
はインメモリベクターストアとして機能する
- 生成 AI モデルとやり取りする
- SQLite データベース コンテキスト サービスを登録して、ドキュメントの取り込み処理を行います。 アプリは、指定されたサンプル ファイルを含め、プロジェクトの
Data
フォルダーに追加したドキュメントを取り込むよう事前構成されています。 - Blazor コンポーネントを使用して完全なチャット UI を提供します。 UI は、AI 応答の豊富な書式設定を処理し、応答データの引用などの機能を提供します。
アプリを構成する
AI Chat Web App アプリは、作成されるとすぐに使用できます。 ただし、アプリが接続と認証に使用する OpenAI サービスのキーを指定する必要があります。 既定では、アプリ テンプレートはプロジェクトのローカル .NET ユーザー シークレットでこの値を検索します。 Visual Studio UI または .NET CLI を使用して、ユーザー シークレットを管理できます。
Visual Studio で、ソリューション エクスプローラーでプロジェクトを右クリックし、[ユーザー シークレットの管理] を選択します。 これにより、ソース管理で追跡されずに API キーを格納できる
secrets.json
ファイルが開きます。次のキーと値を追加します。
{ "OpenAi:Key": "<your-openai-key>" }
既定では、アプリ テンプレートは特定の AI モデルを使用することを前提としています。 必要に応じて、対象とするモデルと一致するようにモデル名パラメーターを更新します。
// Update these parameter values to match your preferred OpenAI models
var chatClient = openAIClient.AsChatClient("gpt-4o-mini");
var embeddingGenerator = openAIClient.AsEmbeddingGenerator("text-embedding-3-small");
前提 条件
- .NET 9.0 SDK - .NET 9.0 SDK をインストールする
- Visual Studio 2022 - Visual Studio 2022 のインストール (省略可能)、または
- Visual Studio Code - Visual Studio Code をインストールする (省略可能)
- C# DevKit - C# Dev Kit 拡張機能をインストール
- Ollama がローカルにインストールされている - デバイスに Ollama をローカルにインストールする
.NET AI アプリ テンプレートをインストールする
AI Chat Web App テンプレートは、NuGet を通じてテンプレート パッケージとして使用できます。 dotnet new install
コマンドを使用してパッケージをインストールします。
dotnet new install Microsoft.Extensions.AI.Templates
.NET AI アプリを作成する
AI アプリ テンプレートをインストールしたら、それらを使用して、Visual Studio UI、Visual Studio Code、または .NET CLI を使用してスターター アプリを作成できます。
- Visual Studio で、[ファイル] > [新しい > プロジェクト] に移動します。
- [新しいプロジェクト の作成] 画面で、AI チャット Web アプリのを検索します。 一致する結果を選択し、次に [次へ]を選択します。
- [新しいプロジェクト の構成] 画面で、プロジェクトの目的の名前と場所を入力し、[次へ] 選択します。
- 追加情報 画面で、次の手順を実行します。
- [フレームワーク] オプションで [.NET 9.0] を選択します。
- [AI サービス プロバイダー] オプションで [Ollama] を選択します。
- Vector store オプションで、ローカルオンディスク(プロトタイプ用)を選択します。
- [作成] を選択してプロセスを完了します。
サンプル アプリを調べる
作成したサンプル アプリは、一般的な AI およびデータ サービスで事前構成された Blazor Interactive Server Web アプリです。 アプリは、次の懸念事項を処理します。
- AI の使用を開始するのに役立つ、
csproj
ファイルに不可欠なMicrosoft.Extensions.AI
パッケージとその他の依存関係が含まれています。 - さまざまな AI サービスを作成し、
Program.cs
ファイルに依存関係の挿入に登録します。- 生成 AI モデルとやり取りする
IChatClient
サービス - ベクター検索機能に不可欠な埋め込みの生成に使用される
IEmbeddingGenerator
サービス - インメモリ ベクター ストアとして機能する
JsonVectorStore
。
- 生成 AI モデルとやり取りする
- SQLite データベース コンテキスト サービスを登録して、ドキュメントの取り込み処理を行います。 アプリは、指定されたサンプル ファイルを含め、プロジェクトの
Data
フォルダーに追加したドキュメントを取り込むよう事前構成されています。 - Blazor コンポーネントを使用して完全なチャット UI を提供します。 UI は、AI 応答の豊富な書式設定を処理し、応答データの引用などの機能を提供します。
アプリを構成する
AI Chat Web App アプリは、作成されるとすぐに利用可能になります。 ただし、アプリを実行する前に、特定の構成がニーズと一致することを確認する必要があります。
ローカル ターミナル ウィンドウで、
ollama serve
コマンドを使用して Ollama がコンピューター上で実行されていることを確認します。ollama serve
既定では、アプリ テンプレートは既定の Ollama ホスト アドレス (
http://localhost:11434
) を対象とし、llama3.2
とall-minilm
AI モデルの使用を想定しています。 次のコマンドを使用して、これらのモデルをデバイスにプルします。ollama pull llama3.2 ollama pull all-minilm
代替モデルを使用する場合は、同じ
ollama pull
コマンドを使用してこれらのモデルをプルダウンします。クライアント構成コードのパラメーターが、お好みのモデルと一致するかどうかを確認します。
// Update these parameter values to match your preferred OpenAI models IChatClient chatClient = new OllamaApiClient( new Uri("http://localhost:11434"), "llama3.2"); IEmbeddingGenerator<string, Embedding<float>> embeddingGenerator = new OllamaApiClient( new Uri("http://localhost:11434"), "all-minilm");
アプリを実行してテストする
Visual Studio の上部にある実行ボタンを選択して、アプリを起動します。 しばらくすると、ブラウザーに次の UI 読み込みが表示されます。
「生存キットの重要なツールは何ですか」などの入力ボックスにプロンプトを入力、サンプル ファイルから取り込まれたデータに関する質問を AI モデルに問い合わせてください。
アプリは質問に対する回答を返し、データが見つかった場所の引用を提供します。 引用文献の 1 つをクリックすると、サンプル ファイルの関連セクションに移動できます。
次の手順
.NET