본문으로 건너뛰기

Messages API

Anthropic Claude 모델 전용 API 형식입니다.
Extended Thinking 등 Claude 고유 기능을 사용할 때 권장합니다.

OpenAI SDK로도 Claude를 호출할 수 있습니다.
Claude 고유 기능이 필요 없다면 Chat Completions 형식을 사용하세요.

엔드포인트

POST https://ai-api.iwinv.kr/v1/messages

요청 파라미터

파라미터타입필수설명
modelstringClaude 모델 ID
messagesarray대화 메시지 배열
max_tokensinteger최대 생성 토큰 수
systemstring시스템 프롬프트
thinkingobjectExtended Thinking 설정
streamboolean스트리밍 여부

기본 요청

import anthropic
import os

client = anthropic.Anthropic(
api_key=os.environ["IWINV_API_KEY"],
base_url="https://ai-api.iwinv.kr"
)

response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="당신은 친절한 AI 어시스턴트입니다.",
messages=[
{"role": "user", "content": "안녕하세요!"}
]
)

print(response.content[0].text)

Extended Thinking

Claude Opus, Sonnet 계열에서 지원하는 심층 추론 기능입니다.
복잡한 문제일수록 더 정확하고 논리적인 답변을 생성합니다.

response = client.messages.create(
model="claude-opus-4-6",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000 # 추론에 사용할 최대 토큰
},
messages=[{
"role": "user",
"content": "RSA 암호화 알고리즘의 수학적 원리를 단계별로 설명해주세요."
}]
)

# 추론 과정과 최종 답변 분리
for block in response.content:
if block.type == "thinking":
print("=== 추론 과정 ===")
print(block.thinking)
elif block.type == "text":
print("=== 최종 답변 ===")
print(block.text)

멀티턴 대화

messages = []

# 1번째 대화
messages.append({"role": "user", "content": "파이썬으로 피보나치 함수를 작성해주세요."})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=messages
)
answer = response.content[0].text
messages.append({"role": "assistant", "content": answer})

# 2번째 대화
messages.append({"role": "user", "content": "이제 재귀 대신 반복문으로 바꿔주세요."})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=messages
)
print(response.content[0].text)