MiniMax 시리즈
MiniMax의 텍스트 모델로 MiniMax M3, M2.7, M2.7 HighSpeed가 있습니다. OpenAI 호환 API로 호출하며 Anthropic 네이티브 API도 지원하므로 Claude Code에서 사용할 수 있습니다. MiniMax의 동영상 모델은 Hailuo(MiniMax)를 참고하십시오.
주요 작업
모델
전체 모델 목록과 실시간 가격은 모델 페이지 를 참고하십시오. 모델 ID의 접두사는 minimax/이며 생략할 수 있습니다. 공식 이름인 MiniMax-M3로 쓰면 404가 반환됩니다.
minimax/minimax-m3약 1.1M 컨텍스트, 이미지 입력 지원minimax/minimax-m2.7200K 컨텍스트, 텍스트 전용minimax/minimax-m2.7-highspeed200K 컨텍스트, 텍스트 전용위 모델은 MiniMax 공식(minimax)이 제공하며, Chat Completions, Responses, Anthropic 네이티브 API를 지원합니다.
호출 예시
Python
import os
import re
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
resp = client.chat.completions.create(
model="minimax/minimax-m3",
messages=[{"role": "user", "content": "멱등성이 무엇인지 한 문장으로 설명해 주세요."}],
)
content = resp.choices[0].message.content
answer = re.sub(r"<think>.*?</think>\s*", "", content, flags=re.S)
print(answer)사고 내용
MiniMax 모델은 기본적으로 사고가 켜져 있습니다. OpenAI 호환 API로 호출하면 message.content 앞부분에 <think>…</think>로 감싼 사고 내용이 오고 그 뒤에 답변이 이어지며, 스트리밍 응답도 마찬가지로 delta.content에 반환됩니다. 위 예시는 정규식으로 이 부분을 제거합니다.
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
resp = client.chat.completions.create(
model="minimax/minimax-m3",
messages=[{"role": "user", "content": "어떤 수에 그 수의 3배를 더하고 12를 빼면 36입니다. 이 수는 무엇입니까? 숫자로만 답하십시오."}],
extra_body={"thinking": {"type": "disabled"}},
)
print(resp.choices[0].message.content)- MiniMax M3의
thinking.type은adaptive와disabled만 허용하며,enabled를 전달하면 400이 반환됩니다. - 사고 토큰은
max_tokens에 포함됩니다. 상한을 너무 작게 설정하면 답변이 사고 내용 도중에 멈추고finish_reason이length가 될 수 있습니다. - 사고 토큰은 출력 단가로 과금되며, 수량은
usage.completion_tokens_details.reasoning_tokens에서 확인할 수 있습니다.
Claude Code에서 사용
MiniMax 모델은 Anthropic 네이티브 API를 지원하며, 주소는 https://api.ofox.io/anthropic입니다. 이 API로 호출하면 사고 내용은 독립된 thinking 블록으로, 답변은 text 블록으로 반환되므로 think 태그를 직접 제거할 필요가 없습니다.
https://api.ofox.io/anthropicminimax/minimax-m3import os
import anthropic
client = anthropic.Anthropic(base_url="https://api.ofox.io/anthropic", api_key=os.environ["OFOX_API_KEY"])
resp = client.messages.create(
model="minimax/minimax-m2.7",
max_tokens=4096,
messages=[{"role": "user", "content": "어떤 수에 그 수의 3배를 더하고 12를 빼면 36입니다. 이 수는 무엇입니까?"}],
)
for block in resp.content:
print(block.type, ":", getattr(block, "thinking", None) or block.text)- MiniMax M2.7, M2.7 HighSpeed는 항상
thinking블록을 반환합니다. - MiniMax M3는
"thinking": {"type": "adaptive"}또는{"type": "enabled", "budget_tokens": 2000}을 전달하면thinking블록을 반환하고,{"type": "disabled"}를 전달하면text블록만 반환합니다.
Claude Code의 전체 설정 방법은 Claude Code 설정을 참고하십시오.
이미지 입력
MiniMax M3만 이미지 입력을 지원하며, 표준 image_url 콘텐츠 블록을 사용합니다. 작성법은 비전을 참고하십시오. MiniMax M2.7과 M2.7 HighSpeed는 텍스트만 지원하므로, 이미지를 인식해야 할 때는 M3를 사용하십시오.
기타 기능
- 도구 호출: 표준
tools파라미터를 사용하며tool_calls를 반환합니다. - 캐시: 반복되는 요청 접두부를 자동으로 캐시하며, 적중량은
usage.prompt_tokens_details.cached_tokens에서 확인할 수 있습니다. 실측 결과 약 5600 토큰의 동일한 접두부에서 두 번째 요청의 캐시 적중이 5000 토큰을 넘었습니다. - 구조화된 출력: 실측 결과
response_format에json_schema를 전달해도 답변은 일반 텍스트였습니다. JSON이 필요하면 프롬프트에 필드를 명시하고 직접 파싱하십시오.
자주 발생하는 오류
기타 일반 오류는 오류 처리를 참고하십시오.
공식 문서
자주 묻는 질문
MiniMax 모델 ID는 어떻게 작성합니까?
표준 표기법은 minimax/minimax-m3이며, 접두사를 생략해 minimax-m3로 써도 됩니다. 공식 이름인 MiniMax-M3로 쓰면 404가 반환됩니다.
MiniMax 답변 앞에 왜 think 태그가 있습니까?
MiniMax는 기본적으로 사고가 켜져 있으며, OpenAI 호환 API로 호출하면 사고 내용이 think 태그로 감싸져 답변 앞부분에 놓입니다. 정규식으로 제거하거나, MiniMax M3에서는 thinking의 type을 disabled로 전달해 사고를 끄거나, Anthropic API를 사용해 독립된 사고 블록으로 받을 수 있습니다.
MiniMax M2.7은 사고를 끌 수 있습니까?
끌 수 없습니다. MiniMax M2.7과 M2.7 HighSpeed는 disabled를 전달해도 사고합니다. 사고를 꺼야 하면 MiniMax M3를 사용하십시오.
Claude Code에서 MiniMax를 사용할 수 있습니까?
가능합니다. ANTHROPIC_BASE_URL을 https://api.ofox.io/anthropic으로 설정하고, 모델에 minimax/minimax-m3 또는 minimax/minimax-m2.7을 입력하십시오.
MiniMax는 이미지를 인식할 수 있습니까?
MiniMax M3만 이미지 입력을 지원합니다. MiniMax M2.7과 M2.7 HighSpeed는 텍스트만 지원합니다.