Anthropic SDK와 Claude Code를 그대로 연결할 수 있습니다. Claude 외의 채팅 모델도 이 형식으로 호출합니다.
본문
modelstring필수- 모델 ID
messagesarray필수role은user/assistant. content는 문자열 또는 블록 배열(text·image·tool_use·tool_result·thinking·document)systemstring | array선택- 문자열 또는 text 블록 배열
temperaturenumber선택- 0–1
top_pnumber선택- 0–1
top_kinteger선택- 양의 정수
stop_sequencesstring[]선택- 최대 8개
streamboolean선택- 기본
false toolsarray선택{name, description, input_schema}tool_choiceobject선택{"type":"auto"|"any"|"none"}또는{"type":"tool","name":"..."}metadataobject선택{"user_id": "..."}thinkingobject선택{"type":"enabled","budget_tokens":N}(N은 1024 이상) ·{"type":"adaptive"}·{"type":"disabled"}output_configobject선택effort(low–max, adaptive이거나 thinking을 생략했을 때) ·format({"type":"json_schema","schema":{...}}, 구조화 출력을 지원하는 모델만)everyaisobject선택- everyais 옵션(
cache,cache_ttl,parameter_policy)
- 블록에 붙인
cache_control은 그대로 전달합니다(프롬프트 캐싱). document블록과 이미지가 든tool_result는 400입니다.- 이미지는
source.type: "base64"로 보내세요.url소스는 Chat의 https URL과 제한이 같습니다. 강제 도구 호출(any,tool) 제한도 Chat과 같습니다. - 도구를 이어 쓸 때는 응답
content블록을thinking까지 그대로 돌려보내세요. Gemini의 도구 서명이thinking블록의signature에 있습니다. stop_reason: "stop_sequence"와stop_sequence는 Claude와 vLLM 기반 모델만 채웁니다. Gemini와 GPT는end_turn을 돌려줍니다.- 웹 검색은 Chat에서만 지원합니다.
모델 옵션
모델별 지원값은 GET /v1/models의 capabilities, limits, parameter_constraints에 있습니다. 페이지 위쪽에서 모델을 고르면 표로 보입니다.
지원하지 않는 값은 조정되거나 400이 됩니다(파라미터 정책).
POST /v1/messages/count_tokens
입력 토큰 수를 무료로 셉니다. 요청 본문은 /v1/messages와 같고, 결과는 추정치라 실제 사용량과 다를 수 있습니다.
json
{
"input_tokens": 1234
}