콘텐츠로 이동

API Stream 응답 처리

test.py

test.py
import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI()

input_message = "재밌는 이야기 해줘"
response = client.responses.create(
    input=input_message,
    stream=True,
    prompt = { 
        "id": os.environ["PROMPT_ID"]
    }
)

for event in response:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
test.py
import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI()

previous_response_id = None
while True:
    input_message = input("User: ")
    response = client.responses.create(
        input=input_message,
        previous_response_id=previous_response_id,
        stream=True,
        prompt = { 
            "id": os.environ["PROMPT_ID"]
        }
    )
    print("Assistant: ", end="", flush=True)
    for event in response:
        if event.type == "response.output_text.delta":
            print(event.delta, end="", flush=True)
        elif event.type == "response.completed":
            previous_response_id = event.response.id
    print()

event.type

  • response.output_text.delta

    • 텍스트 토큰
    • event.delta로 스트림 중인 텍스트 토큰 글자를 받아올 수 있다.
  • response.completed

    • 스트리밍이 완료되었다는 시그널
    • event.response.id로 response id를 받아올 수 있다.

Resources