MiniMax
  1. ChatCompletion Pro API 文档
MiniMax
  • 公告通知
  • 产品定价
  • 概述
  • FAQ
  • 大模型介绍
    • 文本大模型
    • 语音大模型
  • 接入说明
    • 新手指南
    • 速率说明
  • 开发指南
    • 快速开始
  • 文本大模型接口
    • ChatCompletion Pro(对话)
      • 概述
      • ChatCompletion Pro API 文档
        • ChatCompletion Pro API
          POST
        • 示例对话功能
          POST
        • 限制返回格式功能(glyph)
          POST
        • 函数调用功能(function calling)
          POST
        • 插件功能(plugins)
          POST
        • 知识库检索功能(retrieval)
          POST
    • ChatCompletion(对话)
      • 概述
      • ChatCompletion 快速接入
      • ChatCompletion 调优指南
      • ChatCompletion API 文档
        • ChatCompletion API
        • 知识库检索功能(retrieval)
  • Assistants 接口
    • Assistants 操作指南
    • Assistans API 文档
      • Assistant
        • 创建 Assistant
        • 检索 Assistants
        • 删除 assistant
        • 查看 assistant 列表
      • Assistant File
        • 创建 assistant 文件
        • 检索 assistant 关联的文件
        • 列出 assistant 文件
      • Thread
        • 创建 thread
        • 检索 thread
      • Message
        • 创建 message
        • 检索 message
        • message 列表
      • Run
        • 创建 run
        • 检索 run
        • 列表 run
        • Submit tool outputs to run
      • Run Step
        • 检索 run step
        • 列表 run step
  • File(文档)
    • File(文档)
      GET
    • Upload 接口
      GET
    • Retrieve 接口
      GET
    • Delete 接口
      POST
    • RetrieveContent 接口
      GET
  • Retrieval(知识库检索)
    • 新建知识库
    • 删除知识库
    • 查看知识库详情
    • 查看知识库列表
    • 增加知识库文档
    • 删除知识库文档
    • 修改知识库文档
    • 查看知识库文档
    • 检索 Chatcompletion
    • 检索 Chatcompletion pro
  • 微调
    • Finetune 操作指南
    • Finetune API文档
      • 创建微调任务
      • 列出微调任务
      • 检索微调任务
      • 删除微调任务
      • 列出微调事件
      • 列举微调模型
      • 查询微调模型
      • 删除微调模型
  • 向量化
    • Embeddings(向量化)
  • 语音大模型接口
    • T2A (语音生成)
      • T2A 快速接入
      • T2A API 接口
        • T2A API接口
        • 字典功能(Dictionary)
    • T2A pro(长文本语音生成)
      • T2A Pro 快速接入
      • T2A Pro API 接口
      • 字典功能(Dictionary)
    • T2A large(异步超长文本语音生成)
      • T2A Large 快速接入
      • T2A Large API 接口
        • T2A Large API 接口
        • 字典功能(Dictionary)
    • T2A Stream(流式语音生成)
      • T2A Stream(流式语音生成)
      • 字典功能(Dictionary)
    • 快速复刻(Voice Cloning)
      • 上传文件
      • 音频复刻
  • 有声内容创作
    • Role Classification (文本角色分类)
      • 创建并异步运行角色识别任务
      • 查询角色识别任务
    • Role Audio Generation (角色音频生成)
      • 角色音频生成
  1. ChatCompletion Pro API 文档

函数调用功能(function calling)

开发环境
http://dev-cn.your-api-server.com
开发环境
http://dev-cn.your-api-server.com
POST
https://api.minimax.chat/v1/text/chatcompletion_pro

4.4.1 功能说明#

该功能可触发调用用户自有函数(如客户自有的会议记录查询函数),得到自有函数的参考内容 ,辅助大模型生成结果。可以帮助模型获取用户希望模型获取的相应信息,以使得模型返回更符合用户个人实际情况的回复。特别是在一些需要基于客户自有信息知识的问题回答上,并且该构建了该信息知识的API,那么用户可以考虑使用function calling功能,使用场景示例如下:
1.
query:“在会议ID:12345的会议上,A同学有没有提到大模型如何应用的事情?”
2.
用户自有函数:
3.
函数功能:可基于会议ID和参会人检索原始的会议记录
4.
参考内容:“会议号:12345,参会人:A同学,发言内容:我们要在MM智能助理app中全面拥抱大模型,将其强大的自然语言处理能力和广泛的应用场景深入融合到app的各个功能模块,充分发挥大模型所带来的技术优势,进一步提升用户体验,提高工作效率,为更多用户提供智能化、便捷化的服务。”
5.
大模型生成结果:“A同学在会议ID:12345的会议上提到了大模型如何应用的事情。他说要在MM智能助理app中全面拥抱大模型,将其强大的自然语言处理能力和广泛的应用场景深入融合到app的各个功能模块,充分发挥大模型所带来的技术优势,进一步提升用户体验,提高工作效率,为更多用户提供智能化、便捷化的服务。”
以上,如果仅靠大模型来回答query时无法得到符合预期的回复,因此在这时就需要使用function calling功能。

4.4.2 请求体(request)参数#

4.4.6 整体请求示例#

import requests
import json

group_id="请填写您的group_id"
api_key="请填写您的api_key"


# 1. 定义自己的function实现

def mention_something(meeting_id:str,participants:str) -> str:
    # 用户自主补充调用自由函数的具体代码,如从数据库中获取会议搜索记录,使用json返回格式给到参考内容让模型回复即可
    return """
{
   "status": "success",
   "message": "以下是会议记录的查询结果:",
   "data": 
      {
         "meetingid": "12345",
         "participants": "A同学",
         "contents": "我们要在MM智能助理app中全面拥抱大模型,将其强大的自然语言处理能力和广泛的应用场景深入融合到app的各个功能模块,充分发挥大模型所带来的技术优势,进一步提升用户体验,提高工作效率,为更多用户提供智能化、便捷化的服务。",
      }
}
"""

# 2. 使用functions选项调用ccp接口

url = f"https://api.minimax.chat/v1/text/chatcompletion_pro?GroupId={group_id}"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "bot_setting": [
        {
            "bot_name": "MM智能助理",
            "content": "MM智能助理是一款由MiniMax自研的,没有调用其他产品的接口的大型语言模型。MiniMax是一家中国科技公司,一直致力于进行大模型相关的研究。",
        }
    ],
    "reply_constraints": {"sender_type": "BOT", "sender_name": "MM智能助理"},
    "plugins": [],
    "functions": [
        {
            "name": "mention_something",
            "description": "搜索给定聊天记录,总结并返回相关结果",
            "parameters": {
                "type": "object",
                "properties": {"meeting_id": {"type": "string", "description": "会议id"},
                               "participants": {"type": "string", "description": "参会人"}},
                "required": ["meeting_id","participants"],
            },
        }
    ],
    "sample_messages": [],
    "messages": [
        {"sender_type": "USER", "sender_name": "用户",
         "text": "在会议ID:12345的会议上,A同学有没有提到大模型如何应用的事情?"}
    ],
    "model": "abab5.5-chat",
    "tokens_to_generate": 1000,
    "temperature": 0.01,
    "top_p": 0.95,
    "stream": False,
}

response = requests.post(url, headers=headers, json=payload)

print(response.status_code)
print(response.text)

# 3. 解析ccp接口的响应,并调用自己的function

assert response.status_code == 200
json_resp = response.json()
assert json_resp["base_resp"]["status_code"] == 0
assert json_resp["function_call"]["name"] == "mention_something"
assert json_resp["function_call"]["arguments"] != ""

arguments = json.loads(json_resp["function_call"]["arguments"])
print(arguments)
func_resp = mention_something(arguments["meeting_id"],["participants"])
print(func_resp)

# 4. 将自己的function的响应结果返回给ccp接口得到回复
payload["messages"].extend(json_resp["choices"][0]["messages"])
payload["messages"].append(
    {"sender_type": "FUNCTION", "sender_name": "MM智能助理", "text": func_resp}
)

response = requests.post(url, headers=headers, json=payload)

print(response.status_code)
print(response.text)

4.4.7 整体返回参考#

{"created":1697458106,"model":"abab5.5-chat","reply":"","choices":[{"finish_reason":"stop","messages":[{"sender_type":"BOT","sender_name":"MM智能助理","text":"","function_call":{"name":"mention_something","arguments":"{\"meeting_id\": \"12345\", \"participants\": \"A同学\"}"}}]}],"usage":{"total_tokens":460,"tokens_with_added_plugin":0},"input_sensitive":false,"output_sensitive":false,"id":"017c5ab84c200e9ca72302bd3770ba6a","function_call":{"name":"mention_something","arguments":"{\"meeting_id\": \"12345\", \"participants\": \"A同学\"}"},"base_resp":{"status_code":0,"status_msg":""}}
{'meeting_id': '12345', 'participants': 'A同学'}

{
   "status": "success",
   "message": "以下是会议记录的查询结果:",
   "data": 
      {
         "meetingid": "12345",
         "participants": "A同学",
         "contents": "我们要在MM智能助理app中全面拥抱大模型,将其强大的自然语言处理能力和广泛的应用场景深入融合到app的各个功能模块,充分发挥大模型所带来的技术优势,进一步提升用户体验,提高工作效率,为更多用户提供智能化、便捷化的服务。",
      }
}

200
{"created":1697458108,"model":"abab5.5-chat","reply":"A同学提到了大模型如何应用的事情,他说要在MM智能助理app中全面拥抱大模型,将其强大的自然语言处理能力和广泛的应用场景深入融合到app的各个功能模块,充分发挥大模型所带来的技术优势,进一步提升用户体验,提高工作效率,为更多用户提供智能化、便捷化的服务。","choices":[{"finish_reason":"stop","messages":[{"sender_type":"BOT","sender_name":"MM智能助理","text":"A同学提到了大模型如何应用的事情,他说要在MM智能助理app中全面拥抱大模型,将其强大的自然语言处理能力和广泛的应用场景深入融合到app的各个功能模块,充分发挥大模型所带来的技术优势,进一步提升用户体验,提高工作效率,为更多用户提供智能化、便捷化的服务。"}]}],"usage":{"total_tokens":880},"input_sensitive":false,"output_sensitive":false,"id":"017c5aba33ef6091c9510356aae8d42e","base_resp":{"status_code":0,"status_msg":""}}
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.minimax.chat/v1/text/chatcompletion_pro' \
--header 'Authorization;' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "abab5.5-chat",
    "stream": false,
    "messages": [
        {
            "sender_type": "USER",
            "sender_name": "用户",
            "text": "在会议ID:12345的会议上,A同学有没有提到大模型如何应用的事情?"
        }
    ],
    "bot_setting": [
        {
            "bot_name": "MM助手",
            "content": "MM智能助理是MiniMax自主研发的大型语言模型,回答问题简洁有条理,没有调用其他产品接口。MiniMax是一家中国科技公司,致力于大模型相关的研究。"
        }
    ],
    "reply_constraints": {
        "sender_type": "BOT",
        "sender_name": "MM助手"
    },
    "functions": [
        {
            "name": "mention_something",
            "description": "当问到会议中提及事项时,用于根据会议号和参会人进行历史会议记录的检索",
            "parameters": {
                "type": "object",
                "properties": {
                    "meeting_id": {
                        "type": "string",
                        "description": "会议id"
                    },
                    "participants": {
                        "type": "string",
                        "description": "参会人"
                    }
                },
                "required": [
                    "meetingid",
                    "participants"
                ]
            }
        }
    ]
    "function_call":{
        "type":"auto"
    },
}'
响应示例响应示例
{
  "created": 1689748978,
  "model": "abab5.5-chat",
  "reply": "",
  "choices": [
    {
      "finish_reason": "stop",
      "messages": [
        {
          "sender_type": "BOT",
          "sender_name": "MM助手",
          "text": "",
          "function_call": {
            "name": "mention_something",
            "arguments": "{\"meeting_id\": \"12345\",\"participants\": \"A同学\"}"
          }
        }
      ]
    }
  ],
  "usage": {
    "total_tokens": 474,
    "tokens_with_added_plugin": 0
  },
  "input_sensitive": false,
  "output_sensitive": false,
  "id": "0106b8ed7728402ccda8ee3832cfce81",
  "function_call": {
    "name": "mention_something",
    "arguments": "{\"meeting_id\": \"12345\",\"participants\": \"A同学\"}"
  },
  "base_resp": {
    "status_code": 0,
    "status_msg": ""
  }
}

请求参数

Header 参数
Authorization
string 
可选
Content-Type
string 
可选
Body 参数application/json
model
string 
必需
stream
boolean 
必需
messages
array [object {3}] 
必需
sender_type
string 
可选
sender_name
string 
可选
text
string 
可选
bot_setting
array [object {2}] 
必需
bot_name
string 
可选
content
string 
可选
reply_constraints
object 
必需
sender_type
string 
必需
sender_name
string 
必需
functions
array [object {3}] 
必需
模型可以为其生成 JSON 输入的函数列表 支持多个函数,当出现多个函数时尽量将函数命名和描述区分开,如果2个函数在命名和功能说明上过于相似的话,会造成交叉调用的问题
name
string 
可选
需要满足 [a-zA-Z0-9-]{1,64} 格式并且不能以 plugin 开头 因为模型会根据query和函数命名以及功能说明匹配,所以函数命名一定要尽可能贴合query场景。上述使用场景示例中,函数命名可以定义为“mention_something”。
description
string 
可选
务必在说明里明确函数的功能,会作为模型是否调用function的参考 因为模型会根据query和函数命名以及功能说明匹配,所以函数功能说明一定要尽可能贴合query场景。上述使用场景示例中,函数功能说明可以定义为“当问到会议中提及事项时,用于根据会议号和发言人进行历史会议记录的检索”。
parameters
object 
可选
包括properties以及required,properties包括参数及每个参数的类型type和描述,required代表必须要返回的参数 对每个参数的命名和参数说明也需要描述精确,才能更好的生成。比如: "parameters": { "type": "object", "properties": { "meeting_id": { "type": "string", "description": "会议id" }, "participants": { "type": "string", "description": "参会人" } }, "required": [ "meetingid", "participants" ] }
function_call
object 
必需
指定 functions 的使用模式 支持多种函数调用模式,用户可选择自动、强制和none模式。
type
string 
必需
functions 使用模式,有三个枚举值可选: auto:模型自动选择使用哪个 function specific:用户指定使用哪个 function none:不使用 function,同时忽略 functions 字段的输入 auto模式是相对通用的功能,大模型会结合query和functions的定义自主判断是否给出function call返回; specific模式会在每次请求时,大模型都会强制给出function call返回,因此用户在注入自有function输出得到大模型生成结果时,一定要关闭该模式,否则会再次给出function call返回; none模式则是会让大模型忽略functions的定义,直面query进行回答。
示例

返回响应

🟢200成功
application/json
Body
created
integer 
必需
model
string 
必需
reply
string 
必需
choices
array [object {2}] 
必需
finish_reason
string 
可选
messages
array [object {4}] 
可选
usage
object 
必需
total_tokens
integer 
必需
tokens_with_added_plugin
integer 
必需
input_sensitive
boolean 
必需
output_sensitive
boolean 
必需
id
string 
必需
function_call
object 
必需
根据query内容生成的functions接口name和arguments,functions为请求中定义的函数
name
string 
必需
function名称
arguments
string 
必需
调用该function时应传入的参数
base_resp
object 
必需
status_code
integer 
必需
status_msg
string 
必需
上一页
限制返回格式功能(glyph)
下一页
插件功能(plugins)
Built with