ChatGPT APIで返答を逐次受け取る方法

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)

下図のように返答を逐次受け取ることができました!

本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です