必须启用Function Calling能力才能让MiniMax大模型动态调用外部API,具体路径包括:一、通过functions字段声明工具并自动调用;二、用vLLM部署并启用内置工具解析器;三、手动解析XML格式函数调用指令;四、预检索注入context实现静态RAG替代方案。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望让MiniMax大模型在推理过程中动态调用外部API(如数据库查询、天气服务或自定义业务接口),则必须启用并正确配置其Function Calling能力。以下是实现该目标的多种技术路径:
一、通过functions字段声明工具并启用自动调用
该方式基于标准Function Calling协议,由模型根据用户意图自主决策是否调用、调用哪个工具及传入哪些参数,适用于逻辑不确定、需实时响应的交互场景。
1、编写工具定义JSON Schema,明确name、description与parameters结构,例如定义一个/weather接口,含location(字符串)和unit(枚举)字段。
2、将该工具定义加入请求体的functions数组中,确保每个工具具有唯一name且parameters符合JSON Schema规范。
3、构造messages数组,包含用户原始问题作为role: "user"消息,并保持functions字段与messages同级存在于请求根对象中。
4、向https://api.minimax.chat/v1/chat/completions发送POST请求,headers中携带Authorization: Bearer <strong><font color="green">sk-xxx</font></strong>与Content-Type: application/json。
5、解析响应:若返回体中存在function_call字段,则提取name与arguments;若不存在,则直接使用content字段输出结果。
6、程序依据function_call.name路由至对应HTTP客户端,将arguments序列化为JSON POST至后端服务,获取响应后以role: "function"消息形式追加进原messages末尾,再次提交模型完成终轮生成。
二、使用vLLM部署并启用内置工具解析器
该方式适用于私有化部署环境,借助vLLM的--tool-call-parser minimax参数启用MiniMax-M1专用XML格式解析器,避免正则匹配误差,提升函数调用稳定性与可维护性。
1、拉取支持工具调用的vLLM镜像:docker pull vllm/vllm-openai:v0.8.3。
2、启动容器时指定关键参数:--enable-auto-tool-choice开启自动工具选择,--chat-template vllm/examples/tool_chat_template_minimax_m1.jinja加载MiniMax适配模板。
3、挂载MiniMax-M1模型权重路径,并设置--tensor-parallel-size匹配GPU数量。
4、确保环境变量SAFETENSORS_FAST_GPU=1已启用,以加速权重加载。
使用 MiniMax Coding Plan API 进行网络搜索和图片理解。使用场景:(1) 用户需要搜索实时信息或新闻,(2) 需要分析图片内容,(3) 做研究或查找资料。无需 API key:用户需自行配置。
5、调用本地vLLM OpenAI兼容API端点http://localhost:8000/v1/chat/completions,请求结构与官方API一致,仅需替换URL与认证方式(如无需Bearer Token)。
三、手动解析模型输出的XML格式函数调用指令
当无法使用vLLM或官方自动调用机制时,可采用后处理方式解析模型生成的结构化XML块。MiniMax-M1默认输出格式为<tool name="xxx"><param name="yyy">zzz</tool>,需严格按标签嵌套层级提取参数。
1、在system message中插入明确指令:“请严格按XML格式输出函数调用,不添加任何解释性文字,不省略闭合标签。”
2、接收模型完整输出后,使用标准XML解析器(如Python的xml.etree.ElementTree)加载字符串,捕获根节点tool的name属性值。
3、遍历所有param子节点,提取name属性与文本内容,构造成字典形式的参数映射。
4、校验必需参数是否存在且类型合法,缺失或非法时返回错误提示而非发起外部请求。
5、将校验通过的参数传递给对应服务客户端,获取结果后构造function角色消息,内容为原始XML块与服务返回JSON的拼接体,重新提交模型。
四、预检索注入context实现静态RAG替代方案
该方式完全绕过Function Calling机制,在模型调用前由业务系统自主完成全部外部API调用与数据整合,再将结果作为上下文注入prompt,适用于低延迟、高确定性或安全策略禁止运行时调用的场景。
1、根据用户问题关键词,调用外部API(如Elasticsearch检索接口或天气API)获取原始响应数据。
2、对返回文本进行清洗:移除HTML标签、截断超长字段、合并重复项,并压缩至单段摘要,确保总token数低于模型输入上限(如8192)。
3、构造system消息,格式为【知识库片段】{cleaned_text},置于messages数组首位。
4、将用户原始问题封装为role: "user"消息,追加至messages末尾,提交至MiniMax API。
5、直接解析response.choices[0].message.content,模型将基于注入信息生成最终回答,不触发任何函数调用响应。

















