첫 요청 설명
Messages 호출 하나를 줄별로 살펴보며 각 필드의 역할과 반환되는 내용을 설명합니다.
빠른 시작을 따라 하면 응답을 받을 수 있습니다. 이 페이지에서는 각 부분의 의미를 설명하므로, 다음 요청은 직접 작성할 수 있습니다.
요청
curl https://aiprimetech.io/v1/messages \
-H "x-api-key: $CLAUDEAPIKEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
| 항목 | 필수 여부 | 역할 |
|---|---|---|
model | 예 | 실행할 모델입니다. 다음에 있는 ID와 일치해야 합니다: /v1/models 정확히 일치해야 합니다. |
max_tokens | 예 | 다음에 적용되는 엄격한 상한: 출력. 모델은 문장 중간이라도 이 한도에 도달하면 멈춥니다. 이는 목표치가 아니라 비용 제어 수단입니다. |
messages | 예 | 지금까지의 대화이며, 오래된 항목부터 정렬됩니다. 각 항목에는 다음이 있습니다: role (user 또는 assistant) 및 content. |
system | 아니요 | 전체 대화에 적용되는 지침입니다. 다음을 포함하는 메시지가 아니라 최상위 필드입니다: role: system. |
temperature | 아니요 | 0–1. 값이 낮을수록 결과가 더 결정적입니다. 특별한 이유가 없다면 설정하지 마세요. |
stream | 아니요 | true 은 단일 JSON 본문 대신 서버 전송 이벤트를 반환합니다. 다음을 참조하세요: 스트리밍. |
응답
{
"id": "msg_01ABC...",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [{"type": "text", "text": "Hello! How can I help?"}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 9, "output_tokens": 12}
}
content은 배열입니다, 문자열이 아닙니다. 텍스트는 다음 위치에 있습니다:content[0].text. 이를 문자열로 취급하는 것이 가장 흔한 클라이언트 버그입니다.stop_reason은 생성이 종료된 이유를 알려줍니다:end_turn(완료),max_tokens(설정한 상한에 도달하여 응답이 잘림),stop_sequence, 또는tool_use.usage은 요금 청구의 기준입니다. 로그에 기록하세요. 비용을 귀속하는 데 신뢰할 수 있는 유일한 기준입니다.
만약
stop_reason 은 max_tokens, 응답이 잘린 것입니다. 다음 값을 높이세요: max_tokens 또는 더 짧은 응답을 요청하세요. 무작정 재시도하지 마세요. 잘린 출력에도 요금이 부과됩니다.여러 턴의 대화
API는 상태를 저장하지 않습니다. 대화를 이어가려면 모델의 이전 응답을 포함한 전체 기록을 다시 전송해야 합니다:
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the capital of France?"},
{"role": "assistant", "content": "Paris."},
{"role": "user", "content": "And its population?"}
]
}