【FDO43】【会話文章生成 その1】ChatGPTのAPIを利用したアプリケーションの実装
この記事は「おしゃべりクマちゃん🧸」シリーズの記事になります。インデックスはコチラ。
ChatGPTのAPIを利用して、おしゃべりクマちゃんの心臓部、雑談会話の文章を生成する機能(以降、発言生成機能と呼称)を作成しました。
その機能についての紹介を、何回かに分けて行なっていきます。
今回は、ChatGPTのAPIの使い方の解説になります😀
ChatGPTのAPIについて
ChatGPTのAPIは、引数にプロンプト(と必要なら会話の履歴)を与えて呼び出すことで、そのプロンプトに対する回答を生成させることができます。
プロンプトとはChatGPTに与える指示のようなもので、日本語や英語などの自然言語で記述します。プロンプトを記述してChatGPTに渡してあげることで、ChatGPTはその内容に応じた振る舞いを行い、回答を生成します。
例えば、プロンプトとして「しりとり」をしてください
と与えたとします。すると、ユーザーからの会話としてくま
を与えると、APIの回答として例えばまりも
が得られる、というような形になります。
ChatGPTのAPIを呼び出す準備をする
実装は今回はPythonにて行います。
初めにpip
を使用して、openapi
のライブラリをインストールします。
pip install openapi
ChatGPTのAPIの呼び出し方
インストールしたライブラリを利用して、ChatGPTのAPIを呼び出します。
import openai
openai.api_key = "xxxx"
response = openai.ChatCompletion.create(
model='gpt-4',
messages=[
{"role": "system", "content": "しりとりをしてください"},
{"role":"user", "content":"くま"}
],
n=1,
)
content = response["choices"][0]["message"]["content"]
print(content)
openai.api_key
には、OpenAIのAPIキーを指定します。APIキーはOpenAIのWebサイトにて生成することができます。[1]
create関数の引数に指定しているmodel
には、使用するChatGPTのモデルのバージョンを与えます。
- gpt-3.5-turbo
- gpt-4
などを指定することができ、それぞれ性能や利用料金が異なります。ここではgpt-4
を指定しています。
messages
には配列で、ChatGPTへの指示を与えます。初めにrole
のsystem
にてプロンプトを設定しています。ここでは、上述の例の「しりとり」のプロンプトを与えています。それ以降は、ユーザーとChatGPTとの会話の履歴を追加していきます。role
のuser
がユーザーの発言、role
のassistant
がChatGPTの発言です。ここでは、初めのユーザーの発言として「くま」を与えています。ChatGPTは、ここで与えた指示の文章に続くべき文章を回答として生成します。
何度か会話を続けた後のAPI呼び出しの例を記述するとすれば、
response = openai.ChatCompletion.create(
model='gpt-4',
messages=[
{"role": "system", "content": "しりとりをしてください"},
{"role":"user", "content":"くま"}],
{"role":"assistant", "content":"まりも"}],
{"role":"user", "content":"もり"}
],
n=1,
)
のようになります。
n
には、生成させる返答の数を指定します。n
に1以上を指定することで、1度のAPI呼び出しで同じmessages
に対して複数の異なる回答を生成させることができます。ここでは「しりとり」の回答は1つで良いので、1
を指定しています。
APIからの応答は、response["choices"][0]["message"]["content"]
に入れられています。n
が1
なので、choices
の長さは1
で取得されます。
実行結果
上記のソースを実行すると、最後のprint
にて
まりも
が表示されます。
このように、ChatGPTのAPIは非常に簡単に利用することができます。
次回は、発言生成機能を作成するために記述したプロンプトについて、具体的に紹介します。
続きはコチラ。
-
APIの利用は有料になります。 ↩︎
Discussion