채팅 완성(LLM). stream: true 로 토큰 단위 SSE 스트리밍을 지원합니다.
본문
modelstring필수- 모델 ID (예:
everyais/claude-opus-5) messagesarray필수- 메시지 배열 1~1000개.
role은system/user/assistant/tool/developer(→ system 으로 정규화).content는 문자열·null·멀티모달 파트 배열(최대 1000) streamboolean선택- SSE 스트리밍 (기본
false) stream_optionsobject선택{"include_usage": true}면 마지막 청크에 usage 포함max_tokensinteger선택- 최대 출력 토큰 1~200000.
max_completion_tokens로 보내도 자동 정규화됩니다 temperaturenumber선택- 0~2
top_pnumber선택- 0~1
stopstring | string[]선택- 최대 4개
ninteger선택- 1 만 지원(기본 1). 2 이상은 400
presence_penalty/frequency_penaltynumber선택- -2~2
seedinteger선택- 재현성 힌트
toolsarray선택- function 도구 정의(최대 512개)와 서버 실행 웹 검색
{"type":"web_search"}(최대 1개 — 웹 검색 가이드 참고) tool_choicestring | object선택auto/none/required또는{"type":"function","function":{"name":"..."}}.none은 웹 검색도 비활성화합니다response_formatobject선택{"type":"text"}·{"type":"json_object"}·{"type":"json_schema","json_schema":{...}}reasoning_effortstring선택none/low/medium/highparallel_tool_callsboolean선택- 병렬 도구 호출 허용
logprobs/top_logprobsboolean / integer선택- 지원하는 Chat Completions 공급 경로에 전달합니다.
top_logprobs는 0~20. OpenAI/Mantle의 업스트림 Responses 경로는 명시하면 400 userstring선택- 최종 사용자 식별자
everyaisobject선택- 게이트웨이 옵션 —
{"cache":"on"|"off","cache_ttl":"5m"|"1h"}와provider providerobject선택- 라우팅 힌트 —
sort(price/latency/throughput) ·allow_fallbacks. 공급자 이름 지정은 지원하지 않습니다. modelsstring[]선택- 카탈로그 fallback. 최대 5개. 첫 모델이 호출 불가면 다음을 예약 전에만 시도합니다.
extra_bodyobject선택- 공급자별 확장 —
anthropic/google/openai/everyais키만 허용(그 외 키는 400).extra_body.provider는 거부.
모델 slug 끝에 :nitro(지연 우선) 또는 :floor(엔드포인트 원가 낮은 쪽)를 붙일 수 있습니다. 청구액은 바뀌지 않습니다.
정의되지 않은 OpenAI 파라미터(logit_bias, store 등)는 조용히 무시됩니다.
모델별 옵션 지원
위 표는 공통 입력 형식입니다. 모든 모델이 모든 값을 지원하지는 않습니다. GET /v1/models의 capabilities와 limits를 먼저 확인하세요. false는 미지원, 필드 생략은 지원 미확인입니다. 미지원 옵션·값·조합을 명시하면 400을 반환합니다.
| 모델·경로 | 지원값과 조합 |
|---|---|
| Claude Opus 5 등 최신 Claude / Bedrock | temperature·top_p·extra_body.anthropic.top_k를 생략하세요. 값을 지정하면 400입니다. reasoning_effort의 low·medium·high는 adaptive thinking과 effort로 전달되며 수동 budget_tokens로 바꾸지 않습니다 |
| Claude Opus 4.6 / Sonnet 4.6 | adaptive thinking과 수동 thinking을 모두 지원합니다. 수동 예산은 1024 ≤ budget_tokens < max_tokens여야 합니다 |
| Claude 3.7 Sonnet / Opus 4·4.1·4.5 / Sonnet 4·4.5 / Haiku 4.5 | 수동 thinking 지원 모델입니다. reasoning_effort는 low=2048, medium=8192, high=32768 thinking 토큰을 요청하며 max_tokens에 이 예산을 더해 공급자로 보냅니다 |
| Claude Fable / Mythos | 추론 비활성화(reasoning_effort: "none")는 400입니다 |
| Gemini 3.6·3.7·3.8 Flash / 3.5 Flash-Lite | temperature·top_p·extra_body.google.top_k를 명시하면 400입니다. 생략하면 공급자 기본값을 사용합니다 |
| Gemini 3.1 Flash Image / Flash-Lite Image (Chat) | 명시적인 reasoning_effort는 high만 지원합니다. 이미지 크기·품질은 이미지 엔드포인트 문서를 확인하세요 |
| Gemini 3 Pro | low·high만 지원합니다. medium·none은 400입니다 |
| Gemini 3.1 Pro / Gemini 3 Flash·3.1 Flash-Lite·3.5 Flash | low·medium·high 지원. none은 400이며 low로 바뀌지 않습니다 |
| Gemini 2.5 Pro | low=2048·medium=8192·high=32768 thinking 토큰. none은 400입니다 |
| Gemini 2.5 Flash / Flash-Lite | none=0·low=2048·medium=8192·high=24576 thinking 토큰 |
- Claude 4.6 이하의 thinking 활성화 시
temperature는 명시하면 1만,top_p는 0.95~1만 허용하고top_k는 400입니다. Opus/Sonnet 4.5·4.6 및 Haiku 4.5는temperature와top_p동시 지정도 400입니다. 수동 thinking과tool_choice: "required"/특정 함수 선택은 함께 쓸 수 없습니다. Fable/Mythos 5.1은 강제 도구 선택 자체가 미지원입니다. - Chat의
max_tokens는 모델 출력 한도로 제한될 수 있습니다.extra_body.anthropic.thinking으로 수동 예산을 직접 주면 예산을 더하지 않으며, 예산이max_tokens보다 작아야 합니다. - 공급자가 OpenAI 호환 형식을 사용해도 옵션 지원은 실제 호출 경로에 따라 다릅니다. OpenAI/Mantle의 업스트림 Responses 경로(GPT-6, Responses 전용 모델 등)는
stop·seed·presence_penalty·frequency_penalty·logprobs·top_logprobs를 명시하면 400입니다.logprobs: false도 생략과 다릅니다. 이 옵션들을 조용히 무시하지 않으며,user는 최종 사용자 식별자로 그대로 전달합니다. 이는 고객이/v1/chat/completions를 호출해도 적용되는 공급 경로의 제한입니다. capabilities.sampling은 샘플링 옵션 지원 여부,limits.reasoning_efforts는 해당 모델의 추론 단계 목록입니다. 생략은 모델 기본 동작이며none과 다릅니다.json_mode는 JSON 출력 요청,structured_outputs는 네이티브 strict 스키마 보장 지원입니다. Claude의json_object와strict생략/false인 JSON 스키마는 프롬프트 기반 최선 노력 방식이며 스키마 준수를 보장하지 않습니다.strict: true는 네이티브 지원 모델에서만 허용하며, 미지원이면 400입니다. Claude 도구의function.strict에도 네이티브 지원 제한이 적용됩니다.- strict 함수 도구 지원은 JSON 스키마 지원과 별개입니다. Gemini 3의
function.strict: true는 자동 도구 선택에서 공급자의VALIDATED모드로 전달됩니다. Gemini 2.5는 JSON 스키마를 지원해도 strict 함수 도구는 미지원이므로strict: true에 400을 반환합니다. - Claude 네이티브 strict 지원은 공급 경로에 따라 다릅니다. Bedrock에서는 Opus/Sonnet 4.5·4.6 및 Haiku 4.5를 지원하며 Opus 5에 자동 상속되지 않습니다. 공개 메타데이터가
true인 경우에만 지원을 전제로 사용하세요. - Claude의
parallel_tool_calls: false는 병렬 도구 호출을 비활성화합니다. Gemini는false를 지원하지 않아 400이며,true또는 생략은 공급자의 병렬 호출을 허용합니다. - Gemini 2.5는 JSON 출력(
json_object/json_schema)과 도구를 함께 지정하면 400입니다. 웹 검색과 함수 도구를 섞는 조합도 400입니다. 각 기능을 따로 사용하세요. Gemini 3은 이 조합을 지원합니다.capabilities.json_mode_with_tools·web_search_with_tools가false이면 해당 조합은 미지원이고, 생략이면 지원 미확인입니다. - 함수 도구 결과를 보내는 대화에서는 같은 모델에 원래 assistant 메시지의
tool_calls를 그대로 다시 보내고, 해당tool_call_id의 tool 결과를 이어 붙이세요. Gemini의tool_calls[].extra_content.google.thought_signature는 불투명한 공급자 값이므로 수정·삭제·다른 모델에 재사용하지 마세요. web_search는capabilities.web_search: true인 Chat 모델에서만 지원합니다. Gemini의tool_choice: "none"은 검색도 비활성화합니다. 검색 도구만 두고required또는 특정 함수를 강제하면 400입니다.
스트리밍
stream: true 면 data: {...} SSE 청크가 이어지고 data: [DONE] 으로 끝납니다.
stream_options.include_usage 를 켜면 마지막 usage 청크가 추가됩니다.
전체 스트리밍 예제와 종료·오류 처리는 스트리밍 가이드를 참고하세요.