C#でChatGPTのAPIを叩いて会話してみる

めっっっっっっちゃ久しぶりに記事書きますね。最近多忙でなかなか時間が取れなかったですのよ。

最近、ChatGPTが盛り上がりを見せているので私もやってみようと思ったんですね。C#で。(なぜ?)

準備

まずはOpenAIのサイトへ遊びにいって、アカウントをつくります。

platform.openai.com

アカウント作れたら画面右上のアイコンから "View API keys" を選択して、APIキーを作ります。

作ったAPIキーは二度と表示できないので、必ずメモっておくことをおすすめします。

コードを書く

エディタは何でもいいのですが、私はC#が好きなのでC#のコンソールアプリケーションのプロジェクトを作りました。

dotnet new console -o <hoge>

そしたら、NuGet から OpenAI パッケージを導入します。

dotnet add package OpenAI

ではコードを書いていきます。

using OpenAI_API;

var apiKey = "hogehoge";
var api = new OpenAIAPI(apiKey);
var chat = api.Chat.CreateConversation();

Console.Write("入力:");
var prompt = Console.ReadLine();

chat.AppendUserInput(prompt);
var result = await chat.GetResponseFromChatbotAsync();
Console.WriteLine("出力:" + result);

はい、たったのこれだけです!なんて簡単なんだ~。

試しに何かリクエストしてみましょうか。

ChatGPT優しいなぁw

ちなみに、レスポンスが長すぎると例外をスローしてくるのでうまく工夫してください。こんなエラー言われます。

Unhandled exception. System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.

参考

ありがとうございます。

qiita.com