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]