快速开始
本文档旨在于用户可以快速开始体验文本/语音模型功能,以下分别提供了我们推荐的文本/语音模型的接口调用示例,文本模型接口为:Chatcompletion Pro,语音模型接口为:T2A(语音生成接口)。
如您有更多接口的快速开始调用示例的需求,可以移步相应的接口文档进行信息获取。
本示例基于python3,帮助您快速接入MiniMax开放平台体验中心的文本以及音频能力,您需要完成以下步骤:
1.获取鉴权信息
在【基础信息】获取group_id
在【接口秘钥】获取 api key
需要注意的是,由于API密钥在生成后我们不会再显示他们,所以当你需要复制API密钥的时候,可以重新创建一个以完成复制操作。
2.复制完整代码并执行
以下是一份可以在python3的终端环境中直接执行的完整代码,请将以下group_id和api_key替换为第一步获取的鉴权信息即可执行。
注意:添加import readline引用是为了解决在中文输入下,python的input接口在删除字符的时候错误处理的问题。
2.1 ChatCompletion Pro
import requests
import readline
group_id = "请填写您的group_id"
api_key = "请填写您的api_key"
url = f"https://api.minimax.chat/v1/text/chatcompletion_pro?GroupId={group_id}"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
# tokens_to_generate/bot_setting/reply_constraints可自行修改
request_body = payload = {
"model": "abab5.5-chat",
"tokens_to_generate": 1024,
"reply_constraints": {"sender_type": "BOT", "sender_name": "MM智能助理"},
"messages": [],
"bot_setting": [
{
"bot_name": "MM智能助理",
"content": "MM智能助理是一款由MiniMax自研的,没有调用其他产品的接口的大型语言模型。MiniMax是一家中国科技公司,一直致力于进行大模型相关的研究。",
}
],
}
# 添加循环完成多轮交互
while True:
# 下面的输入获取是基于python终端环境,请根据您的场景替换成对应的用户输入获取代码
line = input("发言:")
# 将当次输入内容作为用户的一轮对话添加到messages
request_body["messages"].append(
{"sender_type": "USER", "sender_name": "小明", "text": line}
)
response = requests.post(url, headers=headers, json=request_body)
reply = response.json()["reply"]
print(f"reply: {reply}")
# 将当次的ai回复内容加入messages
request_body["messages"].extend(response.json()["choices"][0]["messages"])
2.2 T2A
import requests
group_id = "请填写您的group_id"
api_key = "请填写您的api_key"
url = f"https://api.minimax.chat/v1/text_to_speech?GroupId={group_id}"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
data = {
"voice_id": "male-qn-qingse",// 如同时传入voice_id和timber_weights时,则会自动忽略voice_id,以timber_weights传递的参数为准
"text": "你好",
"model": "speech-01",
"speed": 1.0,
"vol": 1.0,
"pitch": 0,
"timber_weights": [
{
"voice_id": "male-qn-qingse",
"weight": 1
},
{
"voice_id": "female-shaonv",
"weight": 1
},
{
"voice_id": "female-yujie",
"weight": 1
},
{
"voice_id": "audiobook_male_2",
"weight": 1
}
]
}
response = requests.post(url, headers=headers, json=data)
print("trace_id", response.headers.get("Trace-Id"))
if response.status_code != 200 or "json" in response.headers["Content-Type"]:
print("调用失败", response.status_code, response.text)
exit()
with open("output.mp3", "wb") as f:
f.write(response.content)
如果您想进一步了解上述完整代码是如何逐步构建,您可以继续阅读以下详细步骤解释:
3.构建请求头
复制下面代码并根据鉴权信息构建请求头(group_id和api_key为需要您替换的鉴权信息)
3.1 ChatCompletion pro
url = f"https://api.minimax.chat/v1/text/chatcompletion_pro?GroupId={group_id}"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
3.2 T2A
url = f"https://api.minimax.chat/v1/text_to_speech?GroupId={group_id}"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
4.构建请求内容
本示例是基于python在终端交互的对话,input关键字内的提示词根据您的场景替换成对应的用户输入获取代码或参数。 其余参数,不建议您修改。
4.1 ChatCompletion pro
tokens_to_generate/bot_setting/reply_constraints可自行修改
request_body = payload = {
"model": "abab5.5-chat",
"tokens_to_generate": 1024,
"reply_constraints": {"sender_type": "BOT", "sender_name": "MM智能助理"},
"messages": [],
"bot_setting": [
{
"bot_name": "MM智能助理",
"content": "MM智能助理是一款由MiniMax自研的,没有调用其他产品的接口的大型语言模型。MiniMax是一家中国科技公司,一直致力于进行大模型相关的研究。",
}
],
}
line = input("发言:")
将当次输入内容作为用户的一轮对话添加到messages
request_body["messages"].append(
{"sender_type": "USER", "sender_name": "小明", "text": line}
)
4.2 T2A
data = {
"voice_id": "male-qn-qingse",// 如同时传入voice_id和timber_weights时,则会自动忽略voice_id,以timber_weights传递的参数为准
"text": "你好",
"model": "speech-01",
"speed": 1.0,
"vol": 1.0,
"pitch": 0,
"timber_weights": [
{
"voice_id": "male-qn-qingse",
"weight": 1
},
{
"voice_id": "female-shaonv",
"weight": 1
},
{
"voice_id": "female-yujie",
"weight": 1
},
{
"voice_id": "audiobook_male_2",
"weight": 1
}
]
}
5.完成交互
通过requests库提供的post能力对api进行调用,复制下面的代码即可完成多轮交互。
注意:每一轮回复都需要追加到messages中,这样才能在多轮的对话中记住对话历史。
5.1 ChatCompletion pro
response = requests.post(url, headers=headers, json=request_body)
将当次的ai回复内容加入messages
request_body["messages"].extend(response.json()["choices"][0]["messages"])
5.2 T2A
response = requests.post(url, headers=headers, json=data)
print("trace_id", response.headers.get("Trace-Id"))
if response.status_code != 200 or "json" in response.headers["Content-Type"]:
print("调用失败", response.status_code, response.text)
exit()
with open("output.mp3", "wb") as f:
f.write(response.content)
文本交互示例
在以下的交互例子中,我们会通过展示终端的输出,来展示交互的过程。其中我们会使用😀来标识输入的内容,🤖来标识api输出的内容
最后修改时间: 1 年前