maas标准api v1-j9九游会登录
maas平台提供功能丰富的在线推理能力,既有免部署可直接调用的预置模型服务,同时也支持用户选取模型在专属实例上进行自部署。本文介绍对话chat相关api的调用规范。
约束限制
- 该功能仅支持“西南-贵阳一”区域。
- 对于支持图片上传的模型,单个图片文件的大小不超过10mb。如果以base64编码形式上传图片,需确保编码后的图片小于10mb。
接口信息
|
名称 |
说明 |
取值 |
|---|---|---|
|
api地址 |
调用模型服务的api地址。 |
https://api.modelarts-maas.com/v1/chat/completions |
|
model参数 |
model参数调用名称。 |
您可以任选以下方式获取model参数值。
|
支持模型
|
模型系列 |
模型名称 |
支持地域 |
model参数值 |
|---|---|---|---|
|
deepseek |
deepseek-v3 |
西南-贵阳一 |
deepseek-v3 |
|
deepseek-r1 |
西南-贵阳一 |
deepseek-r1 |
|
|
deepseek-r1-0528 |
西南-贵阳一 |
deepseek-r1-250528 |
|
|
deepseek-v3.1 |
西南-贵阳一 |
deepseek-v3.1 |
|
|
deepseek-v3.2-exp |
西南-贵阳一 |
deepseek-v3.2-exp |
|
|
qwen2.5 |
qwen2.5-vl-72b |
西南-贵阳一 |
qwen2.5-vl-72b |
|
qwen3 |
qwen3-32b-32k |
西南-贵阳一 |
qwen3-32b |
|
qwen3-235b-a22b |
西南-贵阳一 |
qwen3-235b-a22b |
|
|
qwen3-30b-a3b |
西南-贵阳一 |
qwen3-30b-a3b |
|
|
qwen3-coder-480b-a35b-instruct |
西南-贵阳一 |
qwen3-coder-480b-a35b-instruct |
|
|
kimi |
kimi-k2 |
西南-贵阳一 |
kimi-k2 |
|
longcat |
longcat-flash-chat |
西南-贵阳一 |
longcat-flash-chat |
思维链说明
思维链(chain of thought,简称cot)是指模型在解决复杂问题时,能够生成一系列中间推理步骤的能力。这种能力使得模型不仅能够给出最终答案,还能展示出其推理过程,从而提高模型的可解释性和透明度。
仅deepseek-v3.1、deepseek-v3.2-exp、qwen3-32b-32k和qwen3-30b-a3b模型支持开启或关闭思维链。
deepseek-v3.1模型的约束限制如下:
- function call功能和思维链不兼容,不建议同时使用。
- 开启思维链不支持前缀续写。
- 不截断思维链只截断content能力不生效。
- 开启思维链后guided_choice能力不可用,reasoning_content和guided_decoding不兼容。
deepseek-v3.2-exp模型的约束限制如下:
- function call功能和思维链不兼容,不建议同时使用。
- 不截断思维链只截断content能力不生效。
- 不支持前缀续写、guided_choice能力。
创建聊天对话请求
- 鉴权说明
maas推理j9九游会登录的服务支持使用api key鉴权,鉴权头采用如下格式:
'authorization': 'bearer 该服务所在region的apikey'
- 请求参数和响应参数说明如下:
表2 请求参数说明 参数名称
是否必选
默认值
参数类型
说明
model
是
无
str
调用时的模型名称。取值请参见上方表1。
messages
是
-
array
请求输入的问题,其中role为角色,content为对话内容。示例如下:
"messages": [ {"role": "system","content": "你是一个乐于助人的ai助手"}, {"role": "user","content": "9.11和9.8哪个大?"} ]更多信息,请参见表3。
messages.prefix
否
false
boolean
控制是否开启续写模式:用户提供assistant开头的消息,让模型基于该开头和输入指令来补全其余的部分。
使用该功能时,需确保messages列表里最后一条消息的role为assistant,并设置最后一条消息的prefix参数为true,示例如下:
messages = [ {"role": "user", "content": "写一段python代码"}, {"role": "assistant", "content": "```python\n", "prefix": true} ]stream_options
否
无
object
该参数用于配置在流式输出时是否展示使用的token数目。只有当“stream”为“true”时,该参数才会激活生效。如果您需要统计流式输出模式下的token数目,可将该参数配置为stream_options={"include_usage":true}。更多信息,请参见表4。
max_tokens
否
无
int
当前任务允许的生成token数上限,包括模型输出的tokens和深度思考的reasoning tokens。
top_k
否
-1
int
在生成过程中,候选集大小限定了采样的范围。以取值50为例,这意味着每一步仅会考虑得分排在前50位的token构成候选集进行随机抽样。增大此值将提高输出的随机性,减小此值会增强输出的确定性。
top_p
否
1.0
float
模型核采样(nucleus sampling)。仅保留累计概率刚好超过阈值p的那一部分词,其余全部屏蔽,最后在这份候选词里重新归一化并采样。
设置值越小,候选词越少,模型输出越集中和保守;设置值越大,候选词越多,模型输出越开放和多样。
通常情况只建议调整temperature或top_p,不要同时修改两个参数。
取值范围:(0,1],设置为“1”表示考虑所有tokens。
temperature
否
1.0
float
模型采样温度。设置的值越高,模型输出越随机;设置的值越低,输出越确定。
通常情况只建议调整temperature或top_p,不要同时修改两个参数。
temperature取值建议:deepseek-r1、deepseek-v3、qwen3系列建议值为0.6,qwen2.5-vl系列建议值为0.2。
stop
否
none
none/str/list
用于停止生成的字符串列表。返回的输出将不包含停止字符串。
例如,设置为["你","好"]时,在生成文本过程中,遇到“你”或者“好”将停止文本生成。
stream
否
false
bool
是否开启流式推理。默认为false,表示不开启流式推理。
n
否
1
int
为每个输入的消息生成的响应数。
- 不使用beam_search场景下,n取值建议为1≤n≤10。如果n>1时,必须确保不使用greedy_sample采样,即top_k > 1,temperature > 0。
- 使用beam_search场景下,n取值建议为1
说明: - n建议取值不超过10,n值过大会导致性能劣化,显存不足时,推理请求会失败。
- deepseek-r1和deepseek-v3暂不支持设置n的值大于1。
use_beam_search
否
false
bool
是否使用beam_search替换采样。
使用该参数时,如下参数必须按要求设置。
- n:大于1
- top_p:1.0
- top_k:-1
- temperature:0.0
说明:
deepseek-r1和deepseek-v3暂不支持设置n的值大于1。
presence_penalty
否
0.0
float
表示会根据当前生成的文本中新出现的词语进行奖惩。取值范围[-2.0,2.0]。
frequency_penalty
否
0.0
float
会根据当前生成的文本中各个词语的出现频率进行奖惩。取值范围[-2.0,2.0]。
length_penalty
否
1.0
float
表示在beam search过程中,对于较长的序列,模型会给予较大的惩罚。
使用该参数时,必须添加如下三个参数,且必须按要求设置。
- top_k:-1
- use_beam_search:true
- best_of:大于1
说明:deepseek-r1和deepseek-v3暂不支持设置length_penalty。
chat_template_kwargs.thinking
否
false
bool
默认关闭思维链。仅支持deepseek-v3.1和deepseek-v3.2-exp模型,约束限制请参见思维链说明。
开启思维链示例如下:{ "model": "deepseek-v3.1", "messages": [{ "role": "system", "content": "you are a helpful assistant." }, { "role": "user", "content": "你好" }], "chat_template_kwargs": { "thinking": true } }chat_template_kwargs.enable_thinking
否
true
bool
默认开启思维链。仅支持qwen3-32b-32k和qwen3-30b-a3b模型。
关闭思维链示例如下:
{ "model": "qwen3-32b", "messages": [{ "role": "system", "content": "you are a helpful assistant." }, { "role": "user", "content": "你好" }], "chat_template_kwargs": { "enable_thinking": false } }表3 请求参数messages说明 参数名称
是否必选
默认值
参数类型
说明
role
是
无
str
不同的role对应不同的消息类型。
- system:开发人员输入的指令,例如模型应遵循的答复格式、扮演的角色等。
- user:用户输入的消息,包括提示词和上下文信息。
- assistant:模型生成的回复内容。
- tool:模型调用工具返回的信息。
content
是
无
str
- 当role为system时:给ai模型设定的人设。
{ "role": "system", "content": "你是一个乐于助人的ai助手" } - 当role为user时:用户输入的问题。
- 文本对话:
{ "role": "user", "content": "9.11和9.8哪个大?" } - 图像理解:
支持图片格式:png、jpeg、jpg、webp、bmp、tiff。
支持使用图片的base64编码内容或者公网可访问的图片地址。以下是两种方式的代码示例:- 使用图片的base64编码内容:
{ "role": "user", "content": [ { "type": "image_url", "image_url": { "url": f"data:image/png;base64,{base64_image}" } }, { "type": "text", "text": "图像显示的是什么内容?" } ] }base64编码的图像格式(即image/{format})需要与支持的图片列表中的content type保持一致。“f”是字符串格式化的方法,用于将base64编码的图像数据嵌入到url中。示例如下:
# png图像 f"data:image/png;base64,{base64_image}" # jpeg图像 f"data:image/jpeg;base64,{base64_image}" # webp图像: f"data:image/webp;base64,{base64_image}" - 使用公网可访问的图片地址:
{ "role": "user", "content": [ { "type": "image_url", "image_url": { "url": "https://example.com/xxx.jpeg" } }, { "type": "text", "text": "图像显示的是什么内容?" } ] }
- 使用图片的base64编码内容:
- 文本对话:
- 当role为assistant时:ai模型输出的答复内容。
{"role": "assistant","content": "9.11大于9.8"} - 当role为tool时:ai模型调用的工具响应信息。
{"role": "tool", "content": "上海今天天气晴,气温10度"}
表4 请求参数stream_options说明 参数名称
是否必选
默认值
参数类型
说明
include_usage
否
true
bool
流式响应是否输出token用量信息:
- true:是,在每一个chunk会输出一个usage字段,显示累计消耗的token统计信息。
- false:否,不显示消耗的token统计信息。
表5 响应参数说明 参数名称
类型
说明
id
str
该次请求的唯一标识。
object
str
类型-chat.completion:多轮对话返回。
created
int
时间戳。
model
str
调用时的模型名称。
choices
array
模型答复的内容,包含index和message两个参数,message中:
- content为模型的正式答复内容。
- reasoning content为模型的深度思考内容(仅限deepseek系列模型)。
usage
object
请求消耗的token统计信息:
- 非流式请求默认返回。
- 流式请求默认返回,在每一个chunk会输出一个usage字段,显示消耗的token统计信息。
参数说明:
- prompt tokens:输入token数量。
- completion tokens: 输出token数量。
- total tokens:总token数量。
prompt_logprobs
float
对数概率。用户可以借此衡量模型对其输出内容的置信度,或者探索模型给出的其他选项。
deepseek-v3文本生成(非流式)请求示例
此处以使用deepseek-v3模型通过python脚本、curl命令和openai sdk请求生成文本响应为例,展示文本生成模型的非流式基础用法。
- python请求示例:
import requests import json if __name__ == '__main__': url = "https://api.modelarts-maas.com/v1/chat/completions" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key # send request. headers = { 'content-type': 'application/json', 'authorization': f'bearer {api_key}' } data = { "model":"deepseek-v3", # 模型名称 "messages": [ {"role": "system", "content": "you are a helpful assistant."}, {"role": "user", "content": "你好"} ] } response = requests.post(url, headers=headers, data=json.dumps(data), verify=false) # print result. print(response.status_code) print(response.text) - curl请求示例:
curl -x post "https://api.modelarts-maas.com/v1/chat/completions" \ -h "content-type: application/json" \ -h "authorization: bearer $maas_api_key" \ -d '{ "model": "deepseek-v3", "messages": [ {"role": "system", "content": "you are a helpful assistant."}, {"role": "user", "content": "你好"} ] }' - openai sdk请求示例:
from openai import openai base_url = "https://api.modelarts-maas.com/v1" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key client = openai(api_key=api_key, base_url=base_url) response = client.chat.completions.create( model="deepseek-v3", # 模型名称 messages=[ {"role": "system", "content": "you are a helpful assistant"}, {"role": "user", "content": "你好"} ] ) print(response.choices[0].message.content)
deepseek-v3文本生成(流式)请求示例
此处以使用deepseek-v3模型通过python脚本和curl命令生成文本响应为例,展示文本生成模型的流式基础用法。
- python请求示例:
from openai import openai base_url = "https://api.modelarts-maas.com/v1" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key client = openai(api_key=api_key, base_url=base_url) response = client.chat.completions.create( model="deepseek-v3", # 模型名称 messages=[ {"role": "system", "content": "you are a helpful assistant"}, {"role": "user", "content": "你好"} ], stream = true ) for chunk in response: if not chunk.choices: continue print(chunk.choices[0].delta.content, end="") - curl请求示例:
curl -x post "https://api.modelarts-maas.com/v1/chat/completions" \ -h "content-type: application/json" \ -h "authorization: bearer $maas_api_key" \ -d '{ "model": "deepseek-v3", "messages": [ {"role": "system", "content": "you are a helpful assistant."}, {"role": "user", "content": "你好"} ], "stream": true, "stream_options": { "include_usage": true } }'
deepseek-v3.1文本生成(非流式)请求示例
此处以使用deepseek-v3.1模型通过python脚本、curl命令和openai sdk请求生成文本响应为例,展示文本生成模型的非流式基础用法。
- python请求示例:
import requests import json if __name__ == '__main__': url = "https://api.modelarts-maas.com/v1/chat/completions" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key # send request. headers = { 'content-type': 'application/json', 'authorization': f'bearer {api_key}' } data = { "model": "deepseek-v3.1", # model参数 "messages": [ {"role": "system", "content": "you are a helpful assistant."}, {"role": "user", "content": "你好"} ], "chat_template_kwargs": { "thinking": true # 是否开启深度思考模式,默认关闭 } } response = requests.post(url, headers=headers, data=json.dumps(data), verify=false) # print result. print(response.status_code) print(response.text) - curl请求示例:
curl -x post "https://api.modelarts-maas.com/v1/chat/completions" \ -h "content-type: application/json" \ -h "authorization: bearer $maas_api_key" \ -d '{ "model": "deepseek-v3.1", "messages": [ {"role": "system", "content": "you are a helpful assistant."}, {"role": "user", "content": "你好"} ], "chat_template_kwargs": { "thinking": true } }' - openai sdk请求示例:
from openai import openai base_url = "https://api.modelarts-maas.com/v1" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key client = openai(api_key=api_key, base_url=base_url) response = client.chat.completions.create( model="deepseek-v3.1", # model参数 messages=[ {"role": "system", "content": "you are a helpful assistant"}, {"role": "user", "content": "你好"}, ], extra_body={ "chat_template_kwargs": { "thinking": true # 是否开启深度思考模式,默认关闭 } } ) print(response.choices[0].message.content)
qwen3-30b-a3b文本生成(非流式)请求示例
此处以使用qwen3-30b-a3b模型通过python脚本、curl命令和openai sdk请求生成文本响应为例,展示文本生成模型的非流式基础用法。
- python请求示例:
import requests import json if __name__ == '__main__': url = "https://api.modelarts-maas.com/v1/chat/completions" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key # send request. headers = { 'content-type': 'application/json', 'authorization': f'bearer {api_key}' } data = { "model": "qwen3-30b-a3b", # model参数 "messages": [ {"role": "system", "content": "you are a helpful assistant."}, {"role": "user", "content": "你好"} ], "chat_template_kwargs": { "enable_thinking": false # 是否开启深度思考模式,默认开启 } } response = requests.post(url, headers=headers, data=json.dumps(data), verify=false) # print result. print(response.status_code) print(response.text) - curl请求示例:
curl -x post "https://api.modelarts-maas.com/v1/chat/completions" \ -h "content-type: application/json" \ -h "authorization: bearer $maas_api_key" \ -d '{ "model": "qwen3-30b-a3b", "messages": [ {"role": "system", "content": "you are a helpful assistant."}, {"role": "user", "content": "你好"} ], "chat_template_kwargs": { "enable_thinking": false } }' - openai sdk请求示例:
from openai import openai base_url = "https://api.modelarts-maas.com/v1" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key client = openai(api_key=api_key, base_url=base_url) response = client.chat.completions.create( model="qwen3-30b-a3b", # model参数 messages=[ {"role": "system", "content": "you are a helpful assistant"}, {"role": "user", "content": "你好"}, ], extra_body={ "chat_template_kwargs": { "enable_thinking": false # 是否开启深度思考模式,默认开启 } } ) print(response.choices[0].message.content)
qwen2.5-vl-72b图像理解(非流式)请求示例
- python请求示例:
import requests import json import base64 # 图片转base64编码格式 def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode("utf-8") base64_image = encode_image("test.png") if __name__ == '__main__': url = "https://api.modelarts-maas.com/v1/chat/completions" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key # send request. headers = { 'content-type': 'application/json', 'authorization': f'bearer {api_key}' } data = { "model": "qwen2.5-vl-72b", # model参数 "messages": [ { "role": "user", "content": [ { "type": "text", "text": "描述下图片里的内容" }, { "type": "image_url", # 需要注意,base64编码的图像格式(即image/{format})需要与支持的图片列表中的content type保持一致。"f"是字符串格式化的方法。 # base64编码的png图像: f"data:image/png;base64,{base64_image}" # base64编码的jpeg图像: f"data:image/jpeg;base64,{base64_image}" # base64编码的webp图像: f"data:image/webp;base64,{base64_image}" # 公网图像地址: "https://example/xxx.png" "image_url": { "url": f"data:image/png;base64,{base64_image}" } } ] } ] } response = requests.post(url, headers=headers, data=json.dumps(data), verify=false) # print result. print(response.status_code) print(response.text) - curl请求示例:
curl -x post "https://api.modelarts-maas.com/v1/chat/completions" \ -h "content-type: application/json" \ -h "authorization: bearer $maas_api_key" \ -d '{ "model": "qwen2.5-vl-72b", "messages": [ { "role": "user", "content": [ {"type": "text", "text": "描述下图片里的内容"}, {"type": "image_url", "image_url": {"url": "data:image/png;base64,$base64_image"}} ] } ] }'
- openai sdk请求示例:
import base64 from openai import openai base_url = "https://api.modelarts-maas.com/v1" # api地址 api_key = "maas_api_key" # 把maas_api_key替换成已获取的api key # 图片转base64编码格式 def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode("utf-8") base64_image = encode_image("test.png") client = openai(api_key=api_key, base_url=base_url) response = client.chat.completions.create( model = "qwen2.5-vl-72b", # model参数 messages = [ { "role": "user", "content": [ {"type": "text", "text": "描述下图片里的内容"}, { "type": "image_url", # 需要注意,base64编码的图像格式(即image/{format})需要与支持的图片列表中的content type保持一致。"f"是字符串格式化的方法。 # base64编码的png图像: f"data:image/png;base64,{base64_image}" # base64编码的jpeg图像: f"data:image/jpeg;base64,{base64_image}" # base64编码的webp图像: f"data:image/webp;base64,{base64_image}" # 公网图像地址: "https://example/xxx.png" "image_url": { "url": f"data:image/png;base64,{base64_image}" } } ] } ] ) print(response.choices[0].message.content)
响应示例
{
"id":"chat-71406e38b0d248c9b284709f8435****",
"object":"chat.completion",
"created":1740809549,
"model":"deepseek-r1",
"choices":[
{
"index":0,
"message":{
"role":"assistant",
"content":"\n\n比较两个小数9.11和9.8的大小:\n\n1. **比较整数部分**:两者的整数部分都是9,相等。\n2. **比较十分位**: \n - 9.11的十分位是 **1** \n - 9.8可以看作是9.80,其十分位是 **8** \n - **8 > 1**,因此在这一位上已经能分出大小。\n\n**结论**: \n**9.8 > 9.11** \n(小数值比较时需对齐位数,直接比较对应数位的数字即可)",
"reasoning_content":"嗯,我现在需要比较9.11和9.8哪个大。首先,我得回忆一下小数比较的方法。记得比较小数的时候,应该先比较整数部分,如果整数部分相同,再依次比较小数部分的十分位、百分位,直到分出大小。\n\n这两个数的整数部分都是9,所以整数部分相同。接下来比较十分位。9.11的十分位是1,而9.8的十分位是8。这里可能会有问题,因为有时候可能会有同学直接把9.8当作9.80来看,或者考虑十分位上的数字大小对比。\n\n现在比较的话,9.8的十分位是8,而9.11的十分位是1,明显8比1大,所以这时候是不是应该认为9.8比9.11大呢?\n\n不过要注意到,有的同学可能误以为小数位数越多数值越大,但实际并非如此,比如0.9比0.8999要大,所以位数多不一定数值大。\n\n另外,可以把两个数的小数部分统一成相同的位数来比较。例如,9.8可以写成9.80,这样十分位是8,百分位是0,而9.11的十分位是1,百分位是1。那么在十分位的时候,8比1大,所以9.80(即9.8)大于9.11。\n\n因此,最终结论是9.8比9.11大。\n",
"tool_calls":[]
},
"logprobs":null,
"finish_reason":"stop",
"stop_reason":null
}
],
"usage":{
"prompt_tokens":21,
"total_tokens":437,
"completion_tokens":416
},
"prompt_logprobs":null
}
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨


