函数调用功能(function calling)
开发环境
开发环境
POST
https://api.minimax.chat/v1/text/chatcompletion_pro
4.4.1 功能说明
1.
2.
3.
4.
5.
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?members&reference&Type&_postman_listIndexKey=key&_postman_listAllowsMultipleValues' \
--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
返回响应
修改于 2024-01-03 07:21:49