การส่งเอาต์พุตแบบสตรีม
การส่งเอาต์พุตแบบสตรีมด้วย 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]