events
.NET を使用して AI モデルに接続してプロンプトを表示する
このクイック スタートでは、OpenAI または Azure OpenAI モデルに接続してプロンプトを表示する .NET コンソール チャット アプリを作成する方法について説明します。 アプリは Microsoft.Extensions.AI ライブラリを使用するため、特定の SDK ではなく AI 抽象化を使用してコードを記述できます。 AI 抽象化を使用すると、最小限のコード変更で基になる AI モデルを変更できます。
注意
Microsoft.Extensions.AI
ライブラリは現在プレビュー段階です。
- .NET 8.0 SDK 以降 - .NET 8.0 SDKをインストールします。
- このサンプルを実行できるようにするための OpenAI の API キー。
- .NET 8.0 SDK 以降 - .NET 8 SDKをインストールします。
- Azure サブスクリプション。無料で作成できます。
- Azure OpenAI サービスにアクセスします。
- Azure Developer CLI (省略可能) - Azure Developer CLIをインストールまたは更新します。
注意
Semantic Kernel を使用して、この記事のタスクを実行することもできます。 セマンティック カーネルは、AI エージェントを構築し、最新の AI モデルを .NET アプリに統合できる軽量のオープンソース SDK です。
前のセクションの手順を使用して独自のアプリを作成することも、すべてのクイックスタートの完成したサンプル アプリを含む GitHub リポジトリを複製することもできます。 Azure OpenAI を使用する予定の場合、サンプル リポジトリは、Azure OpenAI リソースをプロビジョニングできる Azure Developer CLI テンプレートとしても構成されます。
git clone https://github.com/dotnet/ai-samples.git
AI モデルに接続する .NET コンソール アプリを作成するには、次の手順を実行します。
コンピューター上の空のディレクトリで、
dotnet new
コマンドを使用して新しいコンソール アプリを作成します。.NET CLIdotnet new console -o ExtensionsAI
ディレクトリをアプリ フォルダーに変更します。
.NET CLIcd ExtensionsAI
必要なパッケージをインストールします。
Bashdotnet add package Azure.Identity dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.AI.OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
Bashdotnet add package OpenAI dotnet add package Microsoft.Extensions.AI.OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
Visual Studio Code または任意のエディターでアプリを開く
Bashcode .
- Azure Developer CLI
- Azure CLI
- Azure Portal
サンプルの GitHub リポジトリは、Azure Developer CLI (azd
) テンプレートとして構成されています。azd
がこれを使用して、Azure OpenAI サービスとモデルをプロビジョニングできます。
ターミナルまたはコマンド プロンプトから、サンプル リポジトリの
src\quickstarts\azure-openai
ディレクトリに移動します。azd up
コマンドを実行して、Azure OpenAI リソースをプロビジョニングします。 Azure OpenAI サービスの作成とモデルのデプロイには数分かかる場合があります。Azure Developer CLIazd up
azd
また、Azure OpenAI エンドポイントやモデル名など、サンプル アプリに必要なユーザー シークレットも構成します。
ターミナルまたはコマンド プロンプトから .NET プロジェクトのルートに移動します。
次のコマンドを実行して、OpenAI API キーをサンプル アプリのシークレットとして構成します。
Bashdotnet user-secrets init dotnet user-secrets set OpenAIKey <your-openai-key> dotnet user-secrets set ModelName <your-openai-model-name>
アプリでは、 Microsoft.Extensions.AI
パッケージを使用して、AI モデルへの要求を送受信します。
Program.cs ファイルで、次のコードを追加して、AI モデルに接続して認証します。
C#using Microsoft.Extensions.Configuration; using Microsoft.Extensions.AI; using Azure.AI.OpenAI; using Azure.Identity; var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_GPT_NAME"]; IChatClient client = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .AsChatClient(deployment);
注意
DefaultAzureCredential は、ローカル ツールから認証資格情報を検索します。
azd
テンプレートを使用して Azure OpenAI リソースをプロビジョニングしない場合は、Visual Studio または Azure CLI へのサインインに使用したアカウントにAzure AI Developer
ロールを割り当てる必要があります。 詳細については、「 .NET を使用した Azure AI サービスへの認証を参照してください。C#using Microsoft.Extensions.AI; using Microsoft.Extensions.Configuration; using OpenAI; IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string? model = config["ModelName"]; string? key = config["OpenAIKey"]; // Create the IChatClient IChatClient client = new OpenAIClient(key).AsChatClient(model);
benefits.md ファイルの内容を読み取り、それを使用してモデルのプロンプトを作成します。 プロンプトは、ファイル テキストの内容を要約するようにモデルに指示します。
C#// Create and print out the prompt string prompt = $""" summarize the the following text in 20 words or less: {File.ReadAllText("benefits.md")} """; Console.WriteLine($"user >>> {prompt}");
InvokePromptAsync
関数を呼び出して、応答を生成するプロンプトをモデルに送信します。C#// Submit the prompt and print out the response ChatResponse response = await client.GetResponseAsync(prompt, new ChatOptions { MaxOutputTokens = 400 }); Console.WriteLine($"assistant >>> {response}");
dotnet run
コマンドを使用してアプリを実行します。.NET CLIdotnet run
アプリは、AI モデルから完了応答を出力します。
benefits.md
ファイルのテキスト コンテンツまたは概要の長さをカスタマイズして、応答の違いを確認します。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。
その他のリソース
トレーニング
モジュール
テキストと会話を .NET と Azure OpenAI Completions を使用して生成する - Training
.NET SDK で Azure OpenAI サービスを使用して、アプリケーションが自然言語でユーザーと会話できるようにする方法について説明します。
認定資格
Microsoft Certified: Azure AI Fundamentals - Certifications
AI ソリューションを作成するための Microsoft Azure のソフトウェアとサービスの開発に関連する基本的な AI の概念を示します。