신청 흐름
Claude Messages API를 사용하려면 먼저 Ace Data Cloud 콘솔에서 API 토큰을 받아야 하며, 이를 백업용으로 보관합니다.
로그인 또는 등록이 되어 있지 않은 경우 자동으로 로그인 페이지로 리디렉션되어 등록 및 로그인을 초대하며, 완료 후 현재 페이지로 자동으로 돌아옵니다.
하나의 API 토큰으로 플랫폼의 모든 서비스를 호출할 수 있으며, 각 서비스에 대해 별도로 신청할 필요가 없습니다. 최초 신청 시 무료 한도가 제공되어 무료로 체험할 수 있으며; 한도가 부족할 경우 콘솔에서 일반 잔액을 충전할 수 있습니다.
📘 전체 문서: Claude Messages API →
기본 사용
Claude Messages API의 요청 경로는/v1/messages로, Anthropic 공식 API와 일치합니다. 우리는 최소한 세 가지 필수 매개변수를 제공해야 합니다:
model: 사용할 Claude 모델을 선택합니다. 최신 플래그십 모델은claude-fable-5-1(100만 토큰 컨텍스트, 최대 출력 128K 토큰)이며; 기존claude-fable-5는 여전히 호환성을 유지합니다.messages: 입력 메시지 배열로, 각 메시지는role(역할)과content(내용)를 포함하며,role은user와assistant를 지원합니다.max_tokens: 최대 출력 토큰 수로, 단일 응답의 길이를 제한하는 데 사용됩니다.
system: 시스템 프롬프트로, 모델의 행동과 역할을 설정하는 데 사용됩니다.temperature: 생성의 무작위성으로, 0-1 사이의 값이며, 값이 클수록 응답이 더 분산됩니다.stream: 스트리밍 응답 사용 여부로,true로 설정하면 글자 단위로 반환되는 효과를 얻을 수 있습니다.stop_sequences: 사용자 정의 중지 시퀀스로, 모델이 이러한 텍스트를 만나면 생성을 중지합니다.top_p: 핵 샘플링 매개변수로, temperature와 함께 생성의 무작위성을 제어합니다.top_k: 확률이 가장 높은 K개의 옵션 중에서만 샘플링합니다.tools: 도구 정의로, 모델이 외부 함수를 호출할 수 있도록 합니다.tool_choice: 모델이 제공된 도구를 사용하는 방법을 제어합니다.cache_control: 요청의 마지막 캐시 가능한 콘텐츠 블록에서 자동으로 캐시 중단점을 생성하며; 특정 콘텐츠 블록에 작성할 수도 있습니다.
cURL 예시
Python 예시
id: 이번 메시지의 고유 식별자입니다.type: 항상message입니다.role: 항상assistant입니다.content: 응답 내용 배열로, 각 요소는type(예:text)와 해당 내용을 포함합니다.model: 요청을 처리한 모델 이름입니다.stop_reason: 중지 이유입니다. 안정적인 값으로는end_turn,max_tokens,stop_sequence,tool_use,pause_turn(현재 assistant 내용을 그대로 반환하여 계속 진행 가능),refusal및model_context_window_exceeded가 있습니다.stop_sequence: 사용자 정의 중지 시퀀스로 인해 중지된 경우, 일치하는 중지 시퀀스 텍스트가 표시됩니다.stop_details:stop_reason이refusal인 경우, 거부 범주 및 설명이 포함될 수 있습니다.usage: 토큰 사용 통계입니다.input_tokens는 캐시되지 않은 입력이며;cache_creation_input_tokens및cache_read_input_tokens는 각각 캐시 쓰기 및 읽기;output_tokens는 출력 토큰 수입니다. Fable 5.1의 공식 캐시 읽기 기준가는 12.50 및 $20/백만 토큰입니다; 플랫폼 실제 가격은 패키지 할인에 따라 계산됩니다. 비스트리밍 응답은 Ace Data Cloud에서 기록한cost를 포함할 수 있습니다.
시스템 프롬프트
Claude Messages API는system 필드를 통해 시스템 프롬프트를 설정하여 모델의 행동, 역할 및 맥락을 정의할 수 있습니다.
Python 예시
system 프롬프트를 설정함으로써 Claude의 역할과 행동 방식을 정확하게 제어할 수 있습니다.
스트리밍 응답
이 인터페이스는 스트리밍 응답도 지원하며,stream 매개변수를 true로 설정하면 단계적으로 반환되는 효과를 얻을 수 있어 웹 페이지에서 글자 단위로 표시하는 데 매우 적합합니다.
Python 예시
event: 및 data:로 시작합니다. 스트리밍 이벤트 유형은 다음과 같습니다:
message_start: 메시지 시작, 메시지의 기본 정보와 모델 이름을 포함합니다.content_block_start: 콘텐츠 블록 시작.content_block_delta: 콘텐츠 블록 증분 업데이트, 새로 생성된 텍스트 조각을 포함합니다.content_block_stop: 콘텐츠 블록 종료.message_delta: 메시지 수준의 증분 업데이트,stop_reason및 최종usage정보를 포함합니다.message_stop: 메시지 종료.
content_block_delta 이벤트는 단계적으로 생성된 텍스트 내용을 포함하며, 모든 text_delta를 연결하여 전체 응답을 얻을 수 있습니다.
JavaScript 예제
다중 회화
다중 회화 기능을 연결하려면messages 배열에 user와 assistant 역할의 메시지를 번갈아 배치하고 이전 대화 기록을 함께 전달해야 합니다.
Python 예제
messages에 전체 대화 기록을 전달함으로써 Claude는 맥락을 결합하여 정확한 답변을 할 수 있습니다.
심층 사고 모델
Claude의 사고와 사고 요약은 두 가지 다른 개념입니다: 모델은 내부 추론을 수행할 수 있지만, API는 원래의 사고 체인을 반환하지 않습니다. 추론 과정을 보여줘야 할 때, API는 처리된 요약을 반환합니다. 현재 모델은 적응형 사고를 사용하는 것이 좋으며,output_config.effort를 통해 전체 추론 투입을 제어합니다:
display: "summarized"는 읽기 쉬운 사고 요약을 반환합니다; 이는 원래 사고 체인이 아닙니다.display: "omitted"는thinking: ""을 반환하지만, 후속 대화를 지원하기 위해 불투명한signature는 유지합니다.- Fable 5.1, Fable 5, Opus 5, Sonnet 5, Opus 4.8 및 Opus 4.7의 display 기본값은
omitted입니다; Opus 4.6, Sonnet 4.6 및 그 이전의 사고를 지원하는 모델은 기본적으로summarized를 사용합니다. - Display는 반환 내용과 스트리밍 지연에만 영향을 미치며, 추론을 종료하거나 사고 토큰의 청구를 줄이지 않습니다.
- 사고의 기본 활성화 여부와 display 기본값은 두 개의 독립적인 문제입니다. Opus 5, Sonnet 5는 기본적으로 적응형 사고를 활성화합니다; Opus 4.8, 4.7 및 4.6은 명시적으로 활성화해야 합니다.
budget_tokens는 여전히 고정 사고 예산을 지원하는 구형 모델에만 사용됩니다. 새로운 모델은thinking.type=adaptive및output_config.effort를 사용해야 하며, Fable 5.1의 사고는 항상 활성화되어 있으며 명시적으로 비활성화할 수 없습니다.- 다중 회화 및 도구 호출 시, assistant가 반환한 전체 사고 블록 및 signature를 그대로 반환해야 하며, 수정하거나 임의로 signature를 생성하지 않아야 합니다.
- 일부 호환 경로는
redacted_thinking을 무손실로 처리할 수 없거나 사고를 명시적으로 비활성화할 수 없으며, 이 경우 매개변수 오류가 반환되며 요청 의미가 조용히 삭제되거나 변경되지 않습니다.
summarized는 thinking_delta를 생성하며; omitted는 thinking_delta를 생성하지 않고, 사고 블록 생애 주기와 signature_delta만 유지합니다.
시각 모델
URL로 이미지 사용
cURL 예시
image/jpeg, image/png, image/gif, image/webp입니다.
문서 및 PDF
PDF는document 콘텐츠 블록을 사용하며, Base64 및 URL 두 가지 안정적인 출처를 지원합니다. Base64 출처는 application/pdf를 사용해야 합니다:
{"type":"url","url":"https://example.com/report.pdf"}로 작성합니다. document는 text/plain 및 text/image 블록으로 구성된 content 출처도 지원합니다; 선택적 필드는 title, context 및 citations가 포함됩니다. Files API의 file_id 출처는 독립적인 베타 기능으로, 본 인터페이스의 안정적인 계약에 포함되지 않습니다.
캐시 제어
최상위cache_control은 자동으로 캐시 중단점을 마지막으로 캐시 가능한 블록에 배치합니다:
cache_control을 text, image, document, tool_use, tool_result 콘텐츠 블록 또는 도구 정의에 작성할 수 있습니다. ttl은 5m(기본값) 및 1h를 지원하며, usage.cache_creation_input_tokens 및 usage.cache_read_input_tokens를 통해 캐시 작성 및 적중을 판단할 수 있습니다.
반환 결과 예시:
도구 호출 (Tool Use)
Claude Messages API는 도구 호출 기능을 기본적으로 지원하며, 모델이 필요할 때 미리 정의된 도구/함수를 호출할 수 있습니다.Python 예시
content에는 tool_use 유형의 콘텐츠 블록이 포함됩니다:
stop_reason이 tool_use로 설정되어 있어 모델이 도구를 호출해야 함을 나타냅니다. 이 결과를 받은 후, 도구 함수를 실행하고 결과를 tool_result 형식으로 모델에 다시 전달해야 합니다.
Chat Completion API와의 차이점
Ace Data Cloud는 두 가지 Claude API 형식을 동시에 제공하며, 두 가지의 주요 차이점은 다음과 같습니다: Messages API의usage.input_tokens는 캐시되지 않은 입력만 나타내며, cache_read_input_tokens와 cache_creation_input_tokens는 독립적으로 과금됩니다; 세 가지는 각각 해당 가격에 따라 계산됩니다.
귀하의 시스템이 이미 OpenAI 형식의 API에 연결되어 있다면, Chat Completion API를 사용하여 원활하게 전환할 수 있습니다. Claude의 모든 원본 기능을 사용해야 하는 경우 Messages API를 사용하는 것이 좋습니다.
오류 처리
공개 인터페이스의 오류 응답은 Ace Data Cloud 플랫폼 envelope를 사용합니다:error.code는 안정적인 오류 코드이며, error.message는 설명이고, trace_id는 요청을 조사하는 데 사용됩니다. 일반적인 HTTP 상태는 다음과 같습니다:
400: 요청 매개변수 또는 프로토콜 내용이 유효하지 않음.401: 인증 토큰이 유효하지 않거나, 누락되었거나, 만료됨.403: 접근 금지, 잔액 부족 또는 할당량 제한.404: API 또는 모델이 존재하지 않음.413: 요청 본문이 너무 큼.429: 요청이 너무 많음.500/503/504: 서비스 오류, 일시적으로 사용 불가 또는 처리 시간 초과.
오류 응답 예시
error.code에 따라 처리하십시오.

