Skip to main content
Anthropic Claude는 매우 강력한 AI 대화 시스템으로, 입력한 프롬프트에 따라 몇 초 만에 유창하고 자연스러운 응답을 생성할 수 있습니다. Claude Messages API는 Anthropic 공식 원주율 API 형식으로, OpenAI와 호환되는 형식(채팅 완료)과는 달리, Anthropic 고유의 요청 및 응답 구조를 채택하여 Claude의 독특한 능력인 다중 모드 콘텐츠 입력, 도구 호출, 심층 사고(확장된 사고) 등의 고급 기능을 더 잘 활용할 수 있습니다. 이 문서는 Claude Messages API 작업의 사용 프로세스를 주로 설명하며, 이를 통해 우리는 Anthropic 공식과 일치하는 원주율 인터페이스를 사용하여 Claude의 대화 기능을 호출할 수 있습니다.

신청 프로세스

Claude Messages API를 사용하려면 먼저 Claude Messages API 페이지에서 “Acquire” 버튼을 클릭하여 요청에 필요한 자격 증명을 얻을 수 있습니다: 로그인 또는 등록하지 않은 경우 자동으로 로그인 페이지로 리디렉션되어 등록 및 로그인을 초대합니다. 로그인 및 등록 후에는 자동으로 현재 페이지로 돌아옵니다. 첫 신청 시 무료 한도가 제공되어 해당 API를 무료로 사용할 수 있습니다.

기본 사용

Claude Messages API의 요청 경로는 /v1/messages로, Anthropic 공식 API와 일치합니다. 우리는 최소한 세 가지 필수 매개변수를 제공해야 합니다:
  • model: 사용할 Claude 모델을 선택합니다. 예: claude-opus-4-20250514, claude-sonnet-4-20250514 등.
  • messages: 입력 메시지 배열로, 각 메시지는 role(역할)과 content(내용)를 포함합니다. 여기서 roleuserassistant를 지원합니다.
  • max_tokens: 최대 출력 토큰 수로, 단일 응답의 길이를 제한하는 데 사용됩니다.
자주 사용되는 선택적 매개변수:
  • system: 시스템 프롬프트로, 모델의 행동과 역할을 설정하는 데 사용됩니다.
  • temperature: 생성의 무작위성으로, 0-1 사이의 값이며 값이 클수록 응답이 더 분산됩니다.
  • stream: 스트리밍 응답 사용 여부로, true로 설정하면 글자 단위로 반환되는 효과를 얻을 수 있습니다.
  • stop_sequences: 사용자 정의 중지 시퀀스로, 모델이 이러한 텍스트를 만나면 생성을 중지합니다.
  • top_p: 핵 샘플링 매개변수로, temperature와 함께 생성의 무작위성을 제어합니다.
  • top_k: 확률이 가장 높은 K개의 옵션 중에서만 샘플링합니다.
  • tools: 도구 정의로, 모델이 외부 함수를 호출할 수 있도록 합니다.
  • tool_choice: 모델이 제공된 도구를 사용하는 방법을 제어합니다.

cURL 예시

Python 예시

호출 후 반환 결과는 다음과 같습니다:
반환 결과 필드 설명:
  • id: 이번 메시지의 고유 식별자입니다.
  • type: 항상 message입니다.
  • role: 항상 assistant입니다.
  • content: 응답 내용 배열로, 각 요소는 type(예: text)과 해당 내용을 포함합니다.
  • model: 요청을 처리한 모델 이름입니다.
  • stop_reason: 중지 이유로, 가능한 값은 end_turn(정상 종료), max_tokens(최대 길이에 도달), stop_sequence(중지 시퀀스에 도달), tool_use(도구 호출)입니다.
  • stop_sequence: 사용자 정의 중지 시퀀스에 의해 중지된 경우, 일치하는 중지 시퀀스 텍스트를 표시합니다.
  • usage: 토큰 사용 통계로, input_tokens(입력 토큰 수)와 output_tokens(출력 토큰 수)를 포함합니다.

시스템 프롬프트

Claude Messages API는 system 필드를 통해 시스템 프롬프트를 설정하여 모델의 행동, 역할 및 맥락을 정의할 수 있습니다.

Python 예시

system 프롬프트를 설정함으로써 Claude의 역할과 행동 방식을 정확하게 제어할 수 있습니다.

스트리밍 응답

이 인터페이스는 스트리밍 응답도 지원하며, stream 매개변수를 true로 설정하면 단계적으로 반환되는 효과를 얻을 수 있어 웹 페이지에서 글자 단위로 표시하는 데 매우 적합합니다.

Python 예시

스트리밍 응답은 Server-Sent Events (SSE) 형식으로 반환되며, 각 행은 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 배열에 userassistant 역할의 메시지를 번갈아 배치하고 이전 대화 기록을 함께 전달해야 합니다.

Python 예제

반환 결과는 다음과 같습니다:
messages에 전체 대화 기록을 전달함으로써, 클로드는 맥락을 결합하여 정확한 답변을 할 수 있습니다.

심층 사고 모델

클로드는 Extended Thinking(심층 사고) 기능을 지원하여 모델이 응답하기 전에 내부 추론을 수행하여 복잡한 문제 처리의 정확성을 높일 수 있습니다. 이 기능을 사용할 때는 thinking 매개변수를 전달해야 합니다.

Python 예제

반환 결과는 다음과 같습니다:
볼 수 있듯이, content 배열에는 두 개의 내용 블록이 포함되어 있습니다:
  • type: "thinking": 모델의 내부 사고 과정으로, 추론 단계를 보여줍니다.
  • type: "text": 최종 답변 결과입니다.
주의 사항:
  • thinking을 사용할 때, max_tokensbudget_tokens보다 커야 합니다. 왜냐하면 budget_tokens는 사고 과정에 할당된 토큰 예산이기 때문입니다.
  • budget_tokens가 클수록 모델이 더 깊이 있는 추론을 할 수 있는 공간이 커지며, 복잡한 문제를 처리하는 데 적합합니다.

시각 모델

클로드는 다중 모달 입력을 지원하여 텍스트와 이미지를 동시에 처리할 수 있습니다. Messages API에서 content를 배열 형식으로 설정하고 이미지 내용 블록을 전달하면 시각적 기능을 사용할 수 있습니다.

Base64 인코딩 이미지를 사용하기

URL 이미지를 사용하기

cURL 예시

지원되는 이미지 형식에는 image/jpeg, image/png, image/gif, image/webp가 포함됩니다. 반환 결과 예시:

도구 호출 (Tool Use)

Claude Messages API는 도구 호출 기능을 원래 지원하며, 모델이 필요할 때 미리 정의된 도구/함수를 호출할 수 있습니다.

Python 예시

모델이 도구를 호출하기로 결정하면, 반환 결과의 content에는 tool_use 유형의 내용 블록이 포함됩니다:
stop_reasontool_use인 경우, 모델이 도구를 호출해야 함을 나타냅니다. 이 결과를 받은 후, 도구 함수를 실행하고 결과를 tool_result 형식으로 모델에 다시 전달해야 합니다:
모델은 도구에서 반환된 결과를 기반으로 최종 자연어 응답을 생성합니다.

Chat Completion API와의 차이점

Ace Data Cloud는 두 가지 Claude API 형식을 제공하며, 두 형식의 주요 차이점은 다음과 같습니다: 시스템이 이미 OpenAI 형식의 API에 연결되어 있다면, Chat Completion API를 사용하여 원활하게 전환할 수 있습니다. Claude의 모든 원래 기능을 사용해야 하는 경우 Messages API를 사용하는 것이 좋습니다.

오류 처리

API를 호출할 때 오류가 발생하면, API는 해당 오류 코드와 정보를 반환합니다. 예를 들어:
  • 400 token_mismatched: 잘못된 요청, 누락되거나 잘못된 매개변수 때문일 수 있습니다.
  • 400 api_not_implemented: 잘못된 요청, 누락되거나 잘못된 매개변수 때문일 수 있습니다.
  • 401 invalid_token: 인증되지 않음, 잘못되었거나 누락된 인증 토큰.
  • 429 too_many_requests: 너무 많은 요청, 비율 제한을 초과했습니다.
  • 500 api_error: 내부 서버 오류, 서버에서 문제가 발생했습니다.

오류 응답 예시

결론

이 문서를 통해 Claude Messages API를 사용하여 Anthropic 원본 형식으로 Claude의 대화 기능을 호출하는 방법을 이해하셨습니다. Messages API는 기본 대화, 시스템 프롬프트, 스트리밍 응답, 다중 회차 대화, 심층 사고, 시각적 이해 및 도구 호출 등 다양한 기능을 지원합니다. 질문이 있으시면 언제든지 기술 지원 팀에 문의해 주시기 바랍니다.