minimax api需通过openai兼容接口、设置response_format={"type":"json_object"}、强约束system prompt三者协同才能启用json mode,否则返回非结构化文本。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在调用 MiniMax API 时希望模型严格按 JSON 格式输出结构化响应,但实际返回内容包含额外说明、Markdown 符号或非 JSON 文本,则可能是由于未正确启用或配置 JSON Mode。以下是 MiniMax 官方对 JSON 模式支持的详细说明与使用要点:
一、确认模型与接口兼容性
MiniMax 全系列主流模型(包括 M2.7、abab6.5-chat、MiniMax-VL-01 等)均原生支持 JSON Mode,但该能力仅在符合 OpenAI 兼容协议的接口路径下生效,例如 /v1/chat/completions 和 /v1/text/chatcompletion。非 OpenAI 兼容路径(如旧版 /v1/chat)不识别 response_format 参数。
1、检查当前请求 URL 是否为 OpenAI 兼容端点,例如 https://api.minimax.chat/v1/chat/completions。
2、确认所选模型在控制台“模型服务”页中标注支持 JSON Mode(表格中显示 ✅)。
3、避免在多模态请求中混用图像输入与 JSON Mode,MiniMax-VL-01 当前暂不支持图像+JSON双约束输出。
二、正确设置 request_format 参数
启用 JSON Mode 的核心是向请求体 payload 中传入标准的 response_format: {"type": "json_object"} 字段。该字段必须位于顶层 payload 中,与 messages、model、temperature 等同级,不可嵌套于其他对象内。
1、在 payload 字典中添加键值对:"response_format": {"type": "json_object"}。
2、确保该字段值为严格 JSON 对象,禁止使用 Python dict 字面量以外的格式(如单引号、尾随逗号、注释)。
3、若同时需指定 schema 约束,MiniMax 当前不支持 OpenAI 的 response_format.schema 扩展,仅接受基础 type 声明。
三、构造符合 JSON Mode 要求的 system prompt
即使启用了 response_format,模型仍依赖 system prompt 明确指令来生成合法 JSON。若 prompt 缺乏结构引导,模型可能返回语法错误或包裹文本的 JSON 字符串。
1、在 messages 列表首条 system 消息中,明确声明输出格式要求,例如:"请严格以标准 JSON 对象格式输出,不要添加任何解释、Markdown、代码块符号或额外文本。"
MiniMax MCP 服务器,提供网络搜索和图像理解能力。当用户需要:(1) 网络搜索信息,(2) 分析/描述图片,(3) 从URL提取内容时使用此技能。需配置 MINIMAX_API_KEY(国内版 api.minimaxi.com 或全球版 api.minimax.io)。
2、避免在 system prompt 中使用模糊表述如“尽量用 JSON”或“可以返回 JSON”,必须使用“严格”“仅”“不得”等强制性措辞。
3、若需固定字段,应在 prompt 中列出全部 key 名称及类型,例如:"输出必须包含 name(字符串)、score(数字)、tags(字符串数组)三个字段。"
四、验证响应内容合法性
成功启用 JSON Mode 后,模型将直接返回无包裹、无注释的纯 JSON 对象字符串,且 content 字段值可被 json.loads() 直接解析。若解析失败,需逐层排查响应结构。
1、提取 data.content 后,先检查是否为字符串类型且非空;若为对象数组,说明未生效。
2、尝试执行 json.loads(content),捕获 JSONDecodeError 异常;若报错,常见原因为开头存在空格、结尾多出逗号、使用中文引号。
3、检查响应中是否含 error 字段且 code 非零,部分非法 schema 请求会触发 invalid_parameter 错误而非静默降级。
五、处理 JSON Mode 下的流式响应(Streaming)
MiniMax 支持在启用 JSON Mode 的同时开启 stream: true,但流式分块中仅最后一块保证完整 JSON 结构,中间块可能截断于任意位置,因此不能对每块单独解析。
1、启用 streaming 时,必须设置 stream_options: {"include_usage": false} 以避免 usage 数据干扰 JSON 流完整性。
2、客户端需缓存所有 delta 内容,直至收到 finish_reason 为 "stop" 的结束块,再合并拼接后统一解析。
3、禁止对单个 chunk.data.content 执行 json.loads(),否则必然抛出异常;完整 content 必须满足 JSON 语法校验通过。










