ストリーミング出力
Server-Sent Events (SSE) ストリーミング出力により、AI の応答をタイプライターのように一文字ずつ返し、ユーザー体験を向上させます。本ページでは、ストリーミング出力の有効化、SSE データチャンクの解析、ストリーミング接続の処理方法について説明します。チャット会話やコンテンツ生成などのシナリオに適しています。
ストリーミングを使用する理由
- 大規模モデルの応答には時間がかかるため、ユーザーはすぐにフィードバックを受け取る必要がある
- ChatGPT のようなタイプライター効果を実現できる
- ユーザー体験を向上できる
ストリーミング出力を有効にする
リクエストで "stream": true を設定します。
from openai import OpenAI
client = OpenAI(
api_key="sk-xxx",
base_url="https://api.onemux.net/v1"
)
response = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[{"role": "user", "content": "詩を書いて"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")SSE レスポンス形式
ストリーミングレスポンスは Server-Sent Events (SSE) 形式を使用し、各データチャンクは data: で始まります。
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"あなた"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"は"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"!"}}]}
data: [DONE]