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]