OneMux/ドキュメント/ストリーミング出力

ストリーミング出力

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]