ChatGPT APIを使用すると、返答が返ってくるまで数十秒待たされることがあります。
Web版のChatGPTでも返答の全文が返ってくるまでには時間がかかりますが、数文字ずつ逐次表示されるため、待たされる感覚は少なくて済みます。
ChatGPT APIでも返答を逐次受け取ることができます。この記事では、その方法について説明します。
なお、本記事では、Pythonを使用してOpenAIが提供するライブラリを使用する前提で解説します。
また、APIキーの取得方法などは省略します。
返答を逐次受け取るには
返答を逐次受け取るには、パラメータに「stream=True」を追加します。
プログラム全体は以下のようになります。
import openai
openai.api_key = "sk-************************************************" # API Key
text = "ぴよ将棋について教えて"
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
stream=True, # 逐次受け取る
messages=[
{"role": "user", "content": text},
]
)
response_text = ""
for chunk in response:
if chunk is not None:
content = chunk['choices'][0]['delta'].get('content')
if content is not None:
response_text += content
print(content, end='', flush=True)
print("\n\n全文:" + response_text)
下図のように返答を逐次受け取ることができました!