응답 데이터 처리
이 페이지에서는 4ALL API가 반환하는 응답 데이터를 올바르게 파싱하는 방법을 설명하며, Chat Completions를 통해 호출되는 모든 모델에 적용됩니다.
비스트리밍 응답 구조
{ "id": "chatcmpl-xxx", "object": "chat.completion", "model": "gpt-5.5", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "……" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 12, "completion_tokens": 46, "total_tokens": 58 }}finish_reason 처리
| 값 | 의미 | 권장 처리 방법 |
|---|---|---|
stop | 정상 종료 | 그대로 사용 |
length | max_tokens 한도에 도달하여 잘림 | max_tokens를 높이거나 분할하여 이어쓰기 |
tool_calls | 모델이 함수 호출을 요청함 | 함수 실행 후 결과를 반환, FC 함수 호출 참조 |
content_filter | 업스트림 안전 정책에 의해 콘텐츠가 차단됨 | 프롬프트 수정 |
usage 사용량 필드
usage는 정산의 근거입니다: 요금은prompt_tokens/completion_tokens에 따라 각각 청구됩니다;- 스트리밍 호출의 마지막 데이터 청크에도 동일하게
usage가 포함됩니다(스트리밍 출력 참조); - 프롬프트 캐시가 적중된 경우,
prompt_tokens_details.cached_tokens에 캐시된 부분이 표시되며, 캐시 요율로 청구됩니다. 캐시 요금 참조.
파싱 권장 사항
- 항상
choices[0].message.content를 읽으며,choices의 길이가 1보다 크다고 가정하지 마십시오; - 추론 모델(
-thinking등급)은reasoning_content필드가 추가로 포함될 수 있으므로, 표시 시 본문과 구분하여 처리하십시오. 추론 모델 출력 참조; - 오류 발생 시 응답은
{"error": {...}}구조이며, 처리 방법은 오류 코드 및 재시도를 참조하십시오.