본문으로 건너뛰기
GetAPI
대시보드
한국어
화면 모드
알림
알림
불러오는 중…
메뉴

GetAPI.ONE Responses 스트리밍

서버 전송 이벤트 스트림을 소비하고 텍스트 델타만 추가하며 completed, failed, incomplete를 서로 다른 종료 결과로 취급합니다.

호환 경로 선택

  • Responses 엔드포인트를 명시하는 현재 카탈로그 모델을 사용하세요.
  • API 키를 신뢰할 수 있는 서버 또는 로컬 프로세스에 보관하세요.
  • 호출자가 부분 텍스트를 표시하고 중단된 스트림을 복구하는 방법을 정하세요.
text
POST https://www.getapi.one/v1/responses
Accept: text/event-stream
Authorization: Bearer $GETAPI_ONE_API_KEY

이벤트 생명주기 이해

  1. 첫 통제된 요청에는 자동 재시도를 끄고 서버 SDK 또는 HTTP 클라이언트로 stream=true를 보내세요.
  2. 화면 텍스트에 response.output_text.delta 페이로드만 추가하세요.
  3. response.completed에서 멈추고 애플리케이션에 필요한 최종 응답 메타데이터를 보관하세요.
  4. response.failed와 response.incomplete를 성공이 아닌 결과로 표시하고 부분 텍스트를 완료로 표시하지 마세요.
  5. 오류 이벤트, 전송 예외, 완료 전 EOF, 로컬 취소를 성공이 아닌 것으로 취급하고 스트림을 닫으세요.
python
import os
from openai import OpenAI

terminal_event = None
try:
    with OpenAI(
        api_key=os.environ["GETAPI_ONE_API_KEY"],
        base_url="https://www.getapi.one/v1",
        timeout=30.0,
        max_retries=0,
    ) as client:
        with client.responses.create(
            model="<RESPONSES_MODEL_ID_FROM_CURRENT_CATALOG>",
            input="Give three concise deployment checks.",
            stream=True,
        ) as stream:
            for event in stream:
                if event.type == "response.output_text.delta":
                    print(event.delta, end="", flush=True)
                elif event.type == "response.completed":
                    terminal_event = event.type
                    print("\ncompleted")
                    break
                elif event.type in {"response.failed", "response.incomplete", "error"}:
                    terminal_event = event.type
                    raise RuntimeError(f"stream ended with {event.type}: {event}")
except KeyboardInterrupt:
    raise SystemExit("cancelled locally; the stream and client were closed")

if terminal_event != "response.completed":
    raise RuntimeError("stream ended before response.completed")

이벤트와 화면 상태 연결

이벤트애플리케이션 작업
response.output_text.deltaevent.delta를 추가하고 이미 표시한 텍스트를 바꾸지 마세요.
response.completed성공을 표시하고 로딩을 종료하세요.
response.failed구조화된 오류와 안전한 재시도 작업을 표시하세요.
response.incomplete부분 출력을 미완료로 표시하고 미완료 상세를 확인하세요.

예상 결과 확인

  • 델타 중복 없이 텍스트가 점진적으로 나타납니다.
  • 종료 이벤트 또는 전송 오류 이후에만 로딩이 끝납니다.
  • 연결이 중단되어도 거짓 성공 상태를 표시하지 않습니다.

전송 및 프로토콜 오류 처리

  • 이벤트가 오지 않으면 정확한 /v1/responses 경로, stream=true, 프록시 버퍼링, 모델의 엔드포인트 명시를 확인하세요.
  • 출력이 반복되면 각 델타를 한 번만 추가하고 SDK 누적 출력과 원시 이벤트를 합치지 마세요.
  • 보이는 부작용이 발생하기 전이나 애플리케이션 수준 멱등성이 있을 때만 재시도하세요. 연결 종료는 업스트림 요청이 아무것도 하지 않았다는 증거가 아닙니다.

스트리밍을 서버에 유지

text
Browser → your authenticated backend → GetAPI.ONE
                 server-held key only

다음 단계