Skip to main content
OpenAI 호환 텍스트 생성에는 /v1/chat/completions를 사용하세요.

스트리밍

stream: true로 설정하면 SSE(server-sent events)로 응답을 받습니다. 각 이벤트는 OpenAI chat.completion.chunk이며, 스트림은 data: [DONE]으로 끝납니다.

파라미터

temperature, top_p, max_tokens, stop, n, frequency_penalty, presence_penalty, seed, response_format, tools, tool_choice, logprobs, top_logprobs, logit_bias, user, stream 등 OpenAI 표준 파라미터를 지원합니다.

추론 강도

추론 강도를 설정할 수 있는 모델은 최상위 reasoning_effort를 사용합니다. Responses 형식인 reasoning.effort도 허용됩니다. 두 형식을 함께 지정하면 값이 같아야 하며, 충돌 시 400을 반환합니다.
지원 값은 모델마다 다릅니다. 생략하면 기존 기본 동작을 유지합니다. 모델별 추론 제어를 참고하세요. 각 모델이 허용하는 effort, 기본값, 그리고 추론을 끌 수 있는지 여부는 GET /v1/models의 capability_metadata.reasoning에 공개되므로, 클라이언트는 표를 하드코딩하지 않고 모델을 설정할 수 있습니다. max_completion_tokens, max_output_tokens 및 네이티브 대응 필드는 추론과 최종 답변 토큰의 합계를 제한합니다. effort 자체는 출력 토큰 상한이 아닙니다. 예산이 소진되면(Chat Completions의 finish_reason: "length") 최종 답변이 불완전하거나 비어 있을 수 있습니다.

Kimi K3 호환성

kimi-k3는 동일한 OpenAI 호환 엔드포인트를 사용하지만, 네이티브 계약에 모델 고유 규칙이 있습니다:
  • K3는 항상 추론하며 끌 수 없습니다. low, high, max를 받고 기본값은 max이며, effort가 낮을수록 추론 깊이를 응답 지연과 맞바꿉니다. K2.x의 thinking 객체는 활성화된 호환 별칭으로만 허용됩니다.
  • max_completion_tokens 사용을 권장합니다. APIAny는 사용 중단된 max_tokens도 허용하며 Kimi K3에는 max_completion_tokens를 사용합니다. 한도를 지정하지 않으면 모델 기본값이 적용됩니다. 명시적 최대값은 1,048,576 토큰입니다.
  • K3의 샘플링 설정은 고정입니다. APIAny는 K3에 대해서만 temperature, top_p, frequency_penalty, presence_penalty를 제거하며, n은 1이어야 합니다.
  • reasoning_content는 추론 과정이고 content는 최종 답변입니다. 스트리밍에서는 두 값이 서로 다른 델타로 반환됩니다. 추론 과정을 최종 답변에 합치지 마세요.
  • 멀티턴 및 도구 호출 요청에서는 reasoning_content와 tool_calls를 포함한 전체 assistant 메시지를 다시 전송하세요.
  • 마지막 assistant 메시지는 partial: true를 사용할 수 있습니다. content가 없는 system 메시지에 tools를 담아 K3 도구를 동적으로 로드할 수 있습니다.
  • K3의 이미지/동영상 콘텐츠 블록은 Base64 data: URL 또는 ms:// 파일 ID를 사용해야 합니다. 공개 HTTP 미디어 URL은 모델 요청이 전송되기 전에 거부됩니다.
finish_reason이 length이면 출력 예산이 소진된 것입니다. 응답은 여전히 OpenAI 호환이지만 최종 답변이 없거나 불완전할 수 있습니다. 재시도하기 전에 max_completion_tokens를 늘리거나 입력을 줄이세요.

참고

  • model은 APIAny.AI의 공개 모델 ID입니다.
  • 사용량 데이터가 있는 경우 토큰 사용량은 OpenAI 스타일의 usage 객체로 정규화됩니다.

GPT-6 출력 및 스트림 종료

gpt-6-astra는 식별 가능한 앞부분의 사고 블록을 최종 답변과 분리합니다. 답변은 content / output_text, 사고 내용은 별도의 reasoning 필드 또는 summary 이벤트에서 읽으세요. 명시적인 태그 예제와 모호한 표기는 그대로 유지합니다. 추론 강도나 출력 토큰 한도는 변경하지 않습니다. 스트림의 HTTP 200만으로 생성 성공을 판단할 수 없습니다. 오류 이벤트를 처리하고 부분 답변은 미완료로 표시하세요. Chat에서는 [DONE] 이전의 마지막 usage를 읽고, Responses에서는 response.completed, response.incomplete, response.failed / error를 구분하세요. GPT-6 Chat의 [DONE]은 스트림 종료를 뜻하며, 앞선 오류를 무효화하거나 답변의 완전성을 보장하지 않습니다. finish_reason도 확인하세요. length는 출력 한도 도달, content_filter는 콘텐츠 필터링을 의미하며 둘 다 stop으로 바뀌지 않습니다. 완료 전에 연결이 닫히거나 오류 이벤트를 받으면 부분 텍스트를 완전한 답변으로 취급하지 마세요.