chat-gpt’s diary

ChatGPTでAIと会話した結果を残してます。

chatGPTのAPIをc#で実行するサンプルを教えてください。

OpenAIのGPT APIを使用するために、c#で以下のステップを実行する必要があります。

  1. HttpClientを使用して、APIエンドポイントにPOSTリクエストを送信します。
  2. JSON形式のリクエストボディを作成して、リクエストに含めます。
  3. APIからの応答を受信し、JSON応答ボディを解析します。

以下は、上記の手順に基づいたサンプルコードです。

using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        var prompt = "Hello, how are you today?";
        var model = "text-davinci-002";
        var apiKey = "<YOUR_API_KEY_HERE>";

        // 1. APIエンドポイントにPOSTリクエストを送信する
        using var client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", apiKey);
        var response = await client.PostAsync($"https://api.openai.com/v1/engine/{model}/completions", CreateRequestContent(prompt));

        // 2. JSON形式のリクエストボディを作成して、リクエストに含める
        static StringContent CreateRequestContent(string prompt)
        {
            var requestBody = new
            {
                prompt = prompt,
                temperature = 0.5,
                max_tokens = 60
            };
            var json = JsonSerializer.Serialize(requestBody);
            return new StringContent(json, Encoding.UTF8, "application/json");
        }

        // 3. APIからの応答を受信し、JSON応答ボディを解析する
        var responseContent = await response.Content.ReadAsStringAsync();
        var result = JsonSerializer.Deserialize<CompletionResponse>(responseContent);

        Console.WriteLine(result.choices[0].text);
    }
}

public class Choice
{
    public string text { get; set; }
}

public class CompletionResponse
{
    public Choice[] choices { get; set; }
}

このサンプルコードは、指定されたpromptを使用して、OpenAIのAPIから応答を取得し、取得した応答の最初のテキストチョイスをコンソールに出力します。必要に応じて、prompt、model、およびapiKeyの値を更新して、APIエンドポイントに送信するリクエストをカスタマイズすることができます。