📮

【FDO43】【会話文章生成 その1】ChatGPTのAPIを利用したアプリケーションの実装

2023/08/02に公開

この記事は「おしゃべりクマちゃん🧸」シリーズの記事になります。インデックスはコチラ

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への指示を与えます。初めにrolesystemにてプロンプトを設定しています。ここでは、上述の例の「しりとり」のプロンプトを与えています。それ以降は、ユーザーとChatGPTとの会話の履歴を追加していきます。roleuserがユーザーの発言、roleassistantが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つで良いので、を指定しています。

APIからの応答は、response["choices"][0]["message"]["content"]に入れられています。n1なので、choicesの長さは1で取得されます。

実行結果

上記のソースを実行すると、最後のprintにて

まりも

が表示されます。

このように、ChatGPTのAPIは非常に簡単に利用することができます。

次回は、発言生成機能を作成するために記述したプロンプトについて、具体的に紹介します。

続きはコチラ

脚注
  1. APIの利用は有料になります。 ↩︎

永和システムマネジメント Techブログ

Discussion