通过阅读本文您可以掌握使用API调用MiniMax模型服务的方法。您可以使用Python或Java版本的Dashscope SDK,或使用HTTP接口来调用。
Minimax
支持的领域 / 任务:AIGC、语言理解、深度推理、文本生成
Minimax-abab6.5系列模型是MiniMax推出的万亿参数大语言模型,可以很好的满足复杂生产力以及多语言人设对话场景需求,最大支持245k上下文窗口,在知识、推理、数学、编程、指令遵循等各项测试中接近行业最领先的大模型水平。
模型概览
模型名 | 模型简介 |
abab6.5s-chat | abab6.5s 是MiniMax推出的万亿参数大语言模型,性价比极高,适用于通用场景,特别是在生产力复杂任务场景上表现较好,最大支持128k上下文窗口,支持搜索、function call等功能。 |
abab6.5t-chat | abab6.5t是MiniMax推出的大语言模型,适用于中文人设对话场景,在人设保持、指令遵从、意图理解、生成趣味上会有比较好的效果。 |
abab6.5g-chat | abab6.5g是MiniMax推出的大语言模型,适用于英文人设对话场景,在英文语言支持、人设保持、指令遵从、生成趣味上会有比较好的效果。 |
SDK使用
前提条件
您需要已获取API Key并配置API Key到环境变量。如果通过SDK调用,还需要安装DashScope SDK。
您需要登录百炼控制台界面,在模型广场找到您需要申请的MiniMax大语言模型,单击立即申请,等待申请完成即可进行调用。
示例代码
以下示例展示了调用MiniMax模型对一个用户指令进行响应的代码。
# coding=utf-8
import dashscope
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁'}]
response = dashscope.Generation.call(
model='abab6.5s-chat',
messages=messages,
)
print(response)
// 建议dashscope SDK的版本 >= 2.12.0
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
Generation gen = new Generation();
Message systemMsg = Message.builder()
.role(Role.SYSTEM.getValue())
.content("You are a helpful assistant.")
.build();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("你是谁?")
.build();
GenerationParam param = GenerationParam.builder()
// 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("abab6.5s-chat")
.messages(Arrays.asList(systemMsg, userMsg))
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
GenerationResult result = callWithMessage();
System.out.println(JsonUtils.toJson(result));
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
// 使用日志框架记录异常信息
System.err.println("An error occurred while calling the generation service: " + e.getMessage());
}
System.exit(0);
}
}
参数配置
参数 | 类型 | 默认值 | 说明 |
model | string | - | 模型名称。 |
messages | array | - | 输入到大模型的消息列表,列表中每个元素为哈希表,包含2个key:role和content,其中role支持user、assistant、system,content为对应role的文本输入。示例:
|
temperature | float | abab6.5s 默认取值0.1 abab6.5t 默认取值0.9 abab6.5g 默认取值0.9
| 较高的值将使输出更加随机,而较低的值将使输出更加集中和确定 |
top_p | float | abab6.5s 默认取值0.95 abab6.5t 默认取值0.95 abab6.5g 默认取值0.95 | (0,1],采样方法,数值越小结果确定性越强;数值越大,结果越随机 |
max_tokens | integer | 目前默认取值为256,如遇到length原因停止生成请修改该值。 | 最大生成token数,需要注意的是,这个参数并不会影响模型本身的生成效果,而是仅仅通过以截断超出的token的方式来实现功能 abab6.5s: (0,245760] abab6.5t:(0,8192] abab6.5g:(0,8192] |
返回结果
返回结果示例
{
"status_code": 200,
"request_id": "f7c8b6dc-4cfa-9f07-a71b-56159d24c13c",
"code": "",
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "您好!我是一个人工智能助手,专门设计来回答问题、提供信息和帮助解决问题。请随时向我咨询任何问题或请求帮助。",
"name": "MM智能助理",
"audio_content": ""
},
"index": 0
}
]
},
"usage": {
"input_tokens": 35,
"output_tokens": 30,
"total_tokens": 65
}
}
返回参数说明
返回参数 | 类型 | 说明 |
status_code | integer | 200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。 |
request_id | string | 系统生成的标志本次调用的id。 |
code | string | 表示请求失败,表示错误码,成功忽略。 |
message | string | 失败,表示失败详细信息,成功忽略。 |
output | object | 调用结果信息。 |
output.choices | array | 返回结果列表 |
output.choices[x].finish_reason | string | 回复停止的原因,目前支持取以下值: stop:正常结束 length:请求超过token长度 |
output.choices[x].message | string | 返回结果 |
output.choices[x].message.role | string | 返回结果role |
output.choices[x].message.content | string | 返回结果内容 |
usage | object | 计量信息,表示本次请求计量数据,当前模型无计量信息,此处为默认值。 |
usage.total_tokens | integer | 用户输入+模型生成回复转换为token后的长度。 |
HTTP调用接口
功能描述
MiniMax模型同时支持 HTTP 接口调用来完成客户的响应,详情如下:
前提条件
已开通服务并获得API-KEY:获取API Key。
我们推荐您将API-KEY配置到环境变量中以降低API-KEY的泄漏风险,详情可参考配置API Key到环境变量。
重要您也可以在代码中配置API-KEY,但是泄漏风险会增加。
您需要登录百炼控制台界面,在模型广场找到您需要申请的MiniMax大语言模型,单击立即申请,等待申请完成即可进行调用。
提交接口调用
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
入参描述
传参方式 | 字段 | 类型 | 必选 | 描述 | 示例值 |
Header | Content-Type | string | 是 | 请求类型:application/json | application/json |
Authorization | string | 是 | API-Key,例如:Bearer d1**2a | Bearer d1**2a | |
X-DashScope-WorkSpace | string | 否 | 指明本次调用需要使用的workspace;需要注意的是,对于子账号Apikey调用,此参数为必选项,子账号必须归属于某个workspace才能调用;对于主账号Apikey此项为可选项,添加则使用对应的workspace身份,不添加则使用主账号身份。 | ws_QTggmeAxxxxx | |
Body | model | string | 是 | 指明需要调用的模型。 | abab6.5-chat |
input.messages | array | 是 | 包含迄今为止对话的消息列表。 | 这是一个结构体的列表,每个元素类似如下: | |
parameters.temperature | float | 否 | 较高的值将使输出更加随机,而较低的值将使输出更加集中和确定。 abab6.5s 默认取值0.1 abab6.5t 默认取值0.9 abab6.5g 默认取值0.9
| 0.3 | |
parameters.top_p | float | 否 | 采样方法,数值越小结果确定性越强;数值越大,结果越随机 abab6.5s 默认取值0.95 abab6.5t 默认取值0.95 abab6.5g 默认取值0.95 | 0.95 | |
parameters.max_tokens | integer | 否 | 最大生成token数,需要注意的是,这个参数并不会影响模型本身的生成效果,而是仅仅通过以截断超出的token的方式来实现功能,目前默认取值为256 abab6.5s: (0,245760] abab6.5t:(0,8192] abab6.5g:(0,8192] | 100 |
出参描述
字段 | 类型 | 描述 | 示例值 |
status_code | integer | 200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。 | 200 |
request_Id | string | 系统生成的标志本次调用的id。 | 23066782-2f2b-9f66-82f0-7c26a186b470 |
output.choices[x].finish_reason | string | 停止原因 | stop |
output.choices[x].message.role | string | 返回结果role | assistant |
output.choices[x].message.content | string | 返回结果内容 | 你好!今天我能帮你什么? |
usage | object | 计量信息,表示本次请求计量数据,当前模型无计量信息,此处为默认值。 | "usage": { "total_tokens": 15 } |
usage.total_tokens | integer | 用户输入+模型生成的回复转换为token后的长度。 | 15 |
请求示例
以下示例展示通过CURL命令来调用abab6.5
模型的脚本。
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "abab6.5s-chat",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好"
}
]
}
}'
响应示例
{
"output": {
"choices": [
{
"message": {
"content": "你好!今天我能帮你什么?",
"role": "assistant"
},
"index": 0,
"finish_reason": "stop"
}
]
},
"usage": {
"total_tokens": 15
},
"request_id": "23066782-2f2b-9f66-82f0-7c26a186b470"
}
异常响应示例
在访问请求出错的情况下,输出的结果中会通过 code 和 message 指明出错原因。
{
"code":"InvalidApiKey",
"message":"Invalid API-key provided.",
"request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
}
状态码说明
大模型服务平台通用状态码请查阅:错误码