次の方法で共有


AI モデルに接続してプロンプトを表示する

このクイック スタートでは、OpenAI または Azure OpenAI モデルに接続してプロンプトを表示する .NET コンソール チャット アプリを作成する方法について説明します。 アプリは Microsoft.Extensions.AI ライブラリを使用するため、特定の SDK ではなく AI 抽象化を使用してコードを記述できます。 AI 抽象化を使用すると、最小限のコード変更で基になる AI モデルを変更できます。

[前提条件]

  • .NET 8.0 SDK 以降 - .NET 8.0 SDKをインストールします。
  • このサンプルを実行できるように、OpenAI API キー。

[前提条件]

セマンティック カーネルを使用して、この記事のタスクを実行することもできます。 セマンティック カーネルは、AI エージェントを構築し、最新の AI モデルを .NET アプリに統合できる軽量のオープンソース SDK です。

アプリを作成する

AI モデルに接続する .NET コンソール アプリを作成するには、次の手順を実行します。

  1. コンピューター上の空のディレクトリで、dotnet new コマンドを使用して新しいコンソール アプリを作成します。

    dotnet new console -o ExtensionsAI
    
  2. ディレクトリをアプリ フォルダーに変更します。

    cd ExtensionsAI
    
  3. 必要なパッケージをインストールします。

    dotnet add package Azure.AI.OpenAI
    dotnet add package Azure.Identity
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
    dotnet add package OpenAI
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
  4. Visual Studio Code または任意のエディターでアプリを開きます。

AI サービスを作成する

  1. Azure OpenAI サービスとモデルをプロビジョニングするには、 Azure OpenAI サービス リソースの作成とデプロイ に関する記事の手順を完了します。

  2. ターミナルまたはコマンド プロンプトから、プロジェクト ディレクトリのルートに移動します。

  3. 次のコマンドを実行して、サンプル アプリの Azure OpenAI エンドポイントとモデル名を構成します。

    dotnet user-secrets init
    dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint>
    dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name>
    

アプリを設定する

  1. ターミナルまたはコマンド プロンプトから .NET プロジェクトのルートに移動します。

  2. 次のコマンドを実行して、OpenAI API キーをサンプル アプリのシークレットとして構成します。

    dotnet user-secrets init
    dotnet user-secrets set OpenAIKey <your-OpenAI-key>
    dotnet user-secrets set ModelName <your-OpenAI-model-name>
    

アプリ コードを追加する

アプリは、Microsoft.Extensions.AI パッケージを使用して、AI モデルへの要求を送受信します。

  1. benefits.md ファイルをプロジェクト ディレクトリにコピーします。 このファイルを出力ディレクトリにコピーするようにプロジェクトを構成します。 Visual Studio を使用している場合は、ソリューション エクスプローラーでファイルを右クリックし、[ プロパティ] を選択し、[ 出力ディレクトリにコピー ] を [新しい場合はコピー] に設定します。

  2. Program.cs ファイルに、AI モデルに接続して認証するための次のコードを追加します。

    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())
            .GetChatClient(deployment)
            .AsIChatClient();
    

    DefaultAzureCredential は、ローカル ツールから認証資格情報を検索します。 azd テンプレートを使用して Azure OpenAI リソースをプロビジョニングしない場合は、Visual Studio または Azure CLI へのサインインに使用したアカウントに、Azure AI Developer ロールを割り当てる必要があります。 詳細については、「.NET を使用して Azure AI サービスに対する認証をする」を参照してください。

    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"];
    
    IChatClient client =
        new OpenAIClient(key).GetChatClient(model).AsIChatClient();
    
  3. benefits.md ファイルの内容を読み取るコードを追加し、モデルのプロンプトを作成します。 プロンプトは、ファイルのテキスト コンテンツを 20 語以下で要約するようにモデルに指示します。

    string text = File.ReadAllText("benefits.md");
    string prompt = $"""
        Summarize the the following text in 20 words or less:
        {text}
        """;
    
  4. GetResponseAsync メソッドを呼び出して、応答を生成するプロンプトをモデルに送信します。

    // Submit the prompt and print out the response.
    ChatResponse response = await client.GetResponseAsync(
        prompt,
        new ChatOptions { MaxOutputTokens = 400 });
    Console.WriteLine(response);
    
  5. アプリを実行します。

    dotnet run
    

    アプリはAIモデルからの完了応答を出力します。 benefits.md ファイルのテキスト コンテンツまたは概要の長さをカスタマイズして、応答の違いを確認します。

リソースをクリーンアップする

不要になった場合は、Azure OpenAI リソースと GPT-4 モデルのデプロイを削除します。

  1. Azure Portalで、Azure OpenAI リソースに移動します。
  2. Azure OpenAI リソースを選択し、[削除] を選択します。

次のステップ