# MiniMax API:模型 ID、思考内容处理、图片输入与 Claude Code
Source: https://ofox.io/zh/docs/develop/models/minimax
MiniMax 的文本模型,包括 MiniMax M3、M2.7 与 M2.7 HighSpeed。通过 OpenAI 兼容接口调用,同时支持 Anthropic 原生接口,可在 Claude Code 中使用。MiniMax 的视频模型见 [Hailuo(MiniMax)](https://ofox.io/zh/docs/develop/models/hailuo)。
## 常见任务
- [处理思考内容](#thinking) — 回答开头的 think 标签从哪来、如何去掉。
- [在 Claude Code 中使用](#anthropic) — 通过 Anthropic 接口调用 MiniMax。
- [图片输入](#vision) — 仅 MiniMax M3 支持。
- [报错排查](#errors) — 思考参数不支持、max_tokens 超限、模型不存在。
## 模型
完整的模型列表与实时价格请参阅[模型页](https://ofox.io/zh/models?provider=minimax)。模型 ID 的前缀为 `minimax/`,可省略;写成官方名称 `MiniMax-M3` 会返回 404。
**常用模型 ID(调用时原样复制)**
- MiniMax M3: `minimax/minimax-m3` — 约 1.1M 上下文,支持图片输入
- MiniMax M2.7: `minimax/minimax-m2.7` — 200K 上下文,仅文本
- MiniMax M2.7 HighSpeed: `minimax/minimax-m2.7-highspeed` — 200K 上下文,仅文本
以上模型由 MiniMax 官方(`minimax`)提供,支持 Chat Completions、Responses 与 Anthropic 原生接口。
## 调用示例
**Python**
```python filename="minimax_basic.py"
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".*?\s*", "", content, flags=re.S)
print(answer)
```
**cURL**
```bash filename="Terminal"
curl https://api.ofox.io/v1/chat/completions \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax/minimax-m3",
"messages": [{"role": "user", "content": "用一句话解释什么是幂等性。"}]
}'
```
## 思考内容
**要点**:通过 OpenAI 兼容接口调用时,思考内容以 think 标签包裹,位于回答的开头。展示给用户前请去掉这一段,或改用 Anthropic 接口获取独立的思考块。
MiniMax 模型默认开启思考。通过 OpenAI 兼容接口调用时,`message.content` 的开头是 `…` 包裹的思考内容,其后才是回答,流式响应也同样在 `delta.content` 中返回。上方示例用正则去掉了这一段。
| 模型 | 关闭思考 |
|---|---|
| MiniMax M3 | 传 `"thinking": {"type": "disabled"}`,回答中不再出现思考内容 |
| MiniMax M2.7、M2.7 HighSpeed | 不支持,传入后仍会思考 |
```python filename="minimax_no_thinking.py"
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。
- 思考 token 计入 `max_tokens`。上限设得过小时,回答可能停在思考内容中,`finish_reason` 为 `length`。
- 思考 token 按输出单价计费,数量见 `usage.completion_tokens_details.reasoning_tokens`。
## 在 Claude Code 中使用
MiniMax 模型支持 Anthropic 原生接口,地址为 `https://api.ofox.io/anthropic`。通过该接口调用时,思考内容以独立的 `thinking` 块返回,回答位于 `text` 块中,无需自行去掉 think 标签。
**Claude Code 配置值**
- ANTHROPIC_BASE_URL: `https://api.ofox.io/anthropic`
- ANTHROPIC_AUTH_TOKEN: 粘贴你的 OfoxAI API Key
- ANTHROPIC_MODEL: `minimax/minimax-m3`
```python filename="minimax_anthropic.py"
import 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 配置](https://ofox.io/zh/docs/integrations/claude-code)。
## 图片输入
仅 MiniMax M3 支持图片输入,使用标准的 `image_url` 内容块,写法见[视觉理解](https://ofox.io/zh/docs/develop/guides/vision)。MiniMax M2.7 与 M2.7 HighSpeed 仅支持文本,需要识别图片时请使用 M3。
## 其他功能
- **工具调用**:使用标准的 `tools` 参数,返回 `tool_calls`。
- **缓存**:自动缓存重复的请求前缀,命中量见 `usage.prompt_tokens_details.cached_tokens`。实测约 5600 token 的相同前缀,第二次请求的缓存命中超过 5000 token。
- **结构化输出**:实测传入 `response_format` 的 `json_schema` 后,回答仍为普通文本。需要 JSON 时,请在提示词中说明字段并自行解析。
## 常见报错
| HTTP · type | 报错原文 | 原因 | 处理方法 |
|---|---|---|---|
| 400 `bad_request_error` | `invalid params, invalid thinking.type: "enabled" (allowed: adaptive, disabled) (2013)` | 通过 OpenAI 兼容接口向 MiniMax M3 传了 `thinking.type: enabled` | 不传 `thinking`(默认思考),或传 `disabled` |
| 400 `bad_request_error` | `invalid params, model[MiniMax-M3] does not support max tokens > 524288 (2013)` | `max_tokens` 超过上限 | 调小 `max_tokens` |
| 404 `model_not_found` | `Model 'MiniMax-M3' not found` | 使用了 MiniMax 官方的模型名称 | 改为 `minimax/minimax-m3` |
| 回答开头有 `` | — | OpenAI 兼容接口在 `content` 中返回思考内容 | 见[思考内容](#thinking) |
其他通用错误见[错误处理](https://ofox.io/zh/docs/develop/guides/error-handling)。
## 官方文档
- [MiniMax 开放平台 · 文档](https://platform.minimaxi.com/docs)
## 常见问题
**MiniMax 的模型 ID 怎么写?**
标准写法为 minimax/minimax-m3,也可以省略前缀写成 minimax-m3。写成官方名称 MiniMax-M3 会返回 404。
**MiniMax 的回答开头为什么有 think 标签?**
MiniMax 默认开启思考,通过 OpenAI 兼容接口调用时,思考内容以 think 标签包裹放在回答开头。可以用正则去掉,MiniMax M3 也可以传 thinking 的 type 为 disabled 关闭思考,或改用 Anthropic 接口获取独立的思考块。
**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 仅支持文本。