Anthropic SDK로 MiniMax 모델 호출하기
Anthropic SDK로 MiniMax 모델 호출하기
이미 Anthropic API 생태계에 익숙한 개발자라면, MiniMax도 같은 형식으로 바로 연결할 수 있어요. 별도의 새 SDK를 배우지 않아도 base_url과 API 키만 바꾸면 기존 Anthropic 코드를 그대로 MiniMax 모델에 쓸 수 있죠. 이 문서에서는 설치부터 실제 호출, 그리고 파라미터별 지원 여부까지 정리해 드릴게요.
빠른 시작
1. Anthropic SDK 설치
Python은 pip install anthropic, Node.js는 npm install @anthropic-ai/sdk로 설치하면 돼요.
2. 환경 변수 설정
export ANTHROPIC_BASE_URL=https://api.minimax.cn/anthropic
export ANTHROPIC_API_KEY=${YOUR_API_KEY}
3. API 호출
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="MiniMax-M3",
max_tokens=1000,
system="You are a helpful assistant.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Hi, how are you?"
}
]
}
]
)
for block in message.content:
if block.type == "thinking":
print(f"Thinking:\n{block.thinking}\n")
elif block.type == "text":
print(f"Text:\n{block.text}\n")
4. 주의할 점
다중 턴 Function Call 대화에서는 사고의 연속성을 지키려고 모델이 반환한 전체 응답(assistant 메시지)을 반드시 대화 이력에 그대로 추가해야 해요. response.content는 thinking/text/tool_use 같은 여러 타입의 콘텐츠 블록을 담은 리스트인데, 이걸 통째로 다시 보내는 게 핵심이에요.
지원 모델
Anthropic SDK를 쓸 때는 MiniMax-M3 MiniMax-M2.7 MiniMax-M2.7-highspeed MiniMax-M2.5 MiniMax-M2.5-highspeed MiniMax-M2.1 MiniMax-M2.1-highspeed MiniMax-M2 모델이 지원돼요. 컨텍스트 윈도우와 설명은 모델 호출 가이드와 동일하게, M3는 1,000,000, 나머지는 204,800입니다. 다른 모델을 쓰려면 표준 MiniMax API를 이용해야 해요.
호환성 설명
지원 파라미터
| 파라미터 | 지원 | 설명 |
|---|---|---|
model |
완전 지원 | M3·M2.x 시리즈 모델 지정 |
messages |
부분 지원 | M3는 텍스트·이미지·영상·도구 호출·도구 결과·thinking 블록 지원. M2.7·M2.5·M2.1·M2는 텍스트와 도구 호출 블록만 지원 |
max_tokens |
완전 지원 | 최대 생성 token 수 |
stream |
완전 지원 | 스트리밍 응답 |
system |
완전 지원 | 시스템 프롬프트 |
temperature |
완전 지원 | 범위 [0, 2], 출력 무작위성 제어, 권장값 1 |
tool_choice |
완전 지원 | 도구 선택 전략 |
tools |
완전 지원 | 도구 정의 |
top_p |
완전 지원 | 범위 [0, 1], M3 기본값 0.95, M2.x 기본값 0.9 |
thinking |
완전 지원 | M3는 기본 꺼짐, adaptive로 켬. M2.x는 끌 수 없음 |
metadata |
완전 지원 | 메타 정보 |
service_tier |
완전 지원 | standard와 priority, 기본 standard. priority는 가격 1.5배, 우선 처리 보장 |
top_k stop_sequences mcp_servers context_management container |
무시 | 해당 파라미터는 무시됨 |
Thinking 제어
MiniMax-M3의 thinking 파라미터는 모델이 thinking 콘텐츠 블록을 출력할지 제어해요.
thinking을 생략하면 기본 꺼짐, 응답에 thinking 블록이 없어요.thinking: {"type": "adaptive"}으로 명시적으로 켤 수 있어요. M3에서 adaptive는 thinking 켬과 같아요.thinking: {"type": "disabled"}으로 M3의 thinking 출력을 명시적으로 끌 수 있어요.- M2.x 모델은 thinking을 끌 수 없어서
disabled를 보내도 계속 켜져 있어요.
응답에 thinking 블록이 포함되면, 특히 도구 호출 대화에서는 다음 턴에 이 블록을 그대로 보존해서 보내야 해요.
Messages 필드 지원
| 필드 타입 | 지원 | 설명 |
|---|---|---|
type="text" |
완전 지원 | 텍스트 메시지 |
type="image" |
M3만 | URL 또는 base64로 이미지 입력, JPEG·PNG·GIF·WEBP |
type="video" |
M3만 | URL·base64·mm_file://{file_id}로 영상 입력, MP4·AVI·MOV·MKV |
type="tool_use" |
완전 지원 | 도구 호출 |
type="tool_result" |
완전 지원 | 도구 호출 결과 |
type="thinking" |
완전 지원 | 추론 내용. 다중 턴 thinking 대화는 원본 그대로 회신 |
M3 기준 URL·base64 영상은 최대 50MB, 이미지는 최대 10MB, 요청 본문은 최대 64MB예요. 더 큰 영상은 Files API로 올린 뒤 mm_file://{file_id}로 참조하고, Files API 영상 최대 512MB예요.
단일 이미지 token 사용량은 detail에 따라 달라져요. 정확한 값은 POST /anthropic/v1/messages/count_tokens 또는 응답의 usage로 확인하세요.
detail |
단일 이미지 대략 token 사용량 |
|---|---|
low |
보통 수백 token, 최대 약 600 |
default |
보통 1k-3k token, 최대 약 5k |
high |
보통 수천 token, 최대 15k+ |
Anthropic 호환 인터페이스는 POST /anthropic/v1/messages/count_tokens도 지원해서, M3 호출 전에 입력 token을 예측할 수 있어요. 이 호출은 모델 출력을 생성하지 않아요.
예시 코드: 스트리밍 응답
스크림 시작 후 thinking 과정과 텍스트 내용을 실시간으로 출력하는 예시예요.
import anthropic
client = anthropic.Anthropic()
stream = client.messages.create(
model="MiniMax-M3",
max_tokens=1000,
system="You are a helpful assistant.",
messages=[
{"role": "user", "content": [{"type": "text", "text": "Hi, how are you?"}]}
],
stream=True,
)
for chunk in stream:
if chunk.type == "content_block_delta":
if chunk.delta.type == "thinking_delta":
print(chunk.delta.thinking, end="", flush=True)
elif chunk.delta.type == "text_delta":
print(chunk.delta.text, end="", flush=True)
주의사항
temperature파라미터 범위는 [0, 2]이고 1.0을 권장해요. 범위를 벗어나면 오류가 나요.top_kstop_sequencesmcp_serverscontext_managementcontainer같은 일부 Anthropic 파라미터는 무시돼요.- M3는 이미지·영상을 Anthropic 호환 콘텐츠 블록으로 지원하지만, M2.7·M2.5·M2.1·M2는 텍스트와 도구 호출 블록만 지원해요.