Chat Completions 가 의미를 직접 조립해야 하는 raw delta 를 준다면, Responses 는 type 이 붙은 semantic event 를 줘. response.output_text.delta, response.output_text.done, response.tool_call.created, response.error 처럼 event.type 을 기준으로 처리할 수 있어.
type 이 있으면 분기하기 쉬워
raw delta 는 client 가 여러 필드를 보고 텍스트인지 도구 호출인지 오류인지 판단해야 해. semantic event 는 의미를 type 에 드러내므로 처리 코드가 짧고 안전해져.
대표적인 event
response.created— response 가 시작됐어.response.output_text.delta— 새 텍스트 fragment 가 도착했어.response.output_text.done— 텍스트 출력이 끝났어.response.tool_call.created/...arguments.delta— 도구 호출이 만들어지고 arguments 가 들어와.response.error— 처리 중 실패했어.response.completed— response 전체가 끝났어.
event.type 으로 걸러
async for event in stream: if event.type.endswith('.delta'): ... 처럼 prefix 나 suffix 로 묶어 처리할 수 있어. 완성된 문자열을 다시 분석해 의미를 추측할 필요가 없어.