ChatGPTのレスポンスを返すプログラムを作成する。
今回はRubyプログラミングでChatGPTから応答を返すプログラムを作っていきます。
今回の対象モデルは【chatgpt3.5-turbo】です。
環境はVisual Studio Codeを使用しています。
ChatGPTのアカウントは既に生成したことが前提です。
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
ChatGPTAPIキーの発行手順
まずは、ChatGPTのAPIキーを発行する必要があります。
step
1https://openai.com/api/にアクセスします。
step
2「GET STARTED」をクリックします。
step
3アカウントは既に作成したと思うので、「Continue」をクリックします。
step
4メールアドレスとパスワードを入力し、Continueボタンを押下します。
step
5OpenAIの利用方法について質問に対し、個人利用として「I’m exploring personal use」を選択します。画像がなくてすみません。
以上でAPIキーを発行するまでのアカウント登録まで完了します。
step
6メニュー画面の右上の「Personal」アイコンをクリックし、「View API Keys」をクリックします。
step
7「Create new secret key」を押下すると、APIキーを発行することができます。
発行したAPIキーをコピーし、プログラム上で指定すると使うことができます。
APIキーの発行手順については以上です。
OPENAIのライブラリをインストール
続けて、OPENAIの便利なライブラリをVisual Studio Codeからインストールします。
step
1メニューの「ターミナル」⇒「新しいターミナル」をクリックします。
step
2「gem install "ruby-openai"」とコマンドを打ちます。
以上で、RubyからChatGPTを使用する準備が整いました!
RubyからChatGPTを使用する(モデル:chatgpt3.5-turbo)
chatgpt3.5-turboにリクエストするソースコードを見ていきます。
chatgpt3.5-turboから会話履歴も一緒にリクエストを送ることができるようになりました。
ソースコードをみていきましょう。
発行したAPIキーを入力し、下記のソースコードを実行してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
require "openai" def get_openai_response(message_array) client = OpenAI::Client.new(access_token: "") #発行したAPIキーを入力 response = client.chat( parameters:{ model: "gpt-3.5-turbo", messages: message_array, }) response_message = response.dig("choices", 0, "message", "content") return response_message end #質問用のハッシュを格納した配列 content_array = [{role: "system", content: "消費税"}, {role: "user", content: "タイトルを1つ考えてください。"}] response = get_openai_response(content_array) puts(response) |
出力結果
「消費税について知っておきたいこと」
上記のように応答が返ってきました!
会話履歴を一緒に送れるようにする仕様のため、String型でなく
配列型で要素がハッシュ型で送るようになっています。下記の部分です。
1 |
content_array = [{role: "system", content: "消費税"}, {role: "user", content: "タイトルを1つ考えてください。"}] |
ロールのuserは現在のリクエストを表しています。
role |
内容 |
user |
今回のリクエスト |
system |
過去のリクエスト |
assistant |
過去のレスポンス |
各ロールは上記の表のような意味を持っています。
そのため、下記のようにsystemの部分を削除してリクエストを送ると、
1 |
content_array = [{role: "user", content: "タイトルを1つ考えてください。"}] |
出力結果
「熱中する趣味の見つけ方」
消費税とは全く関係ないブログタイトルが返ってきますね。
このように、会話履歴を考慮した応答が可能となります。
chatgpt3.5-turboの解説は以上です。
まとめ
今回はRubyでChatGPTを使用する方法を解説していきました。
細かいソースコードの説明はしておりませんが、Chatgptとの連携方法は分かって頂けたと思います。
上記のプログラムを使えば、ChatGPTと連携するプログラムはすぐに作れると思います!ぜひご活用ください!
最後まで読んで頂き、ありがとうございました!