Anthropic兼容接口
约束限制
该功能仅支持“西南-贵阳一”区域。
接口信息
| 名称 | 说明 | 取值 |
|---|---|---|
| API地址 | 调用模型服务的API地址。 | https://api.modelarts-maas.com/anthropic/v1/messages |
| 鉴权请求头 | 向服务器提供身份验证/授权凭证。 | "x-api-key":"$MaaS_API_Key" |
支持模型
| 模型系列 | 模型版本 | 支持地域 | model参数值 |
|---|---|---|---|
| openPangu | openPangu-2.0-Flash | 西南-贵阳一 | openpangu-2.0-flash |
| GLM | GLM-5 | 西南-贵阳一 | glm-5 |
| GLM-5.1 | 西南-贵阳一 | glm-5.1 | |
| GLM-5.2 | 西南-贵阳一 | glm-5.2 | |
| Kimi | Kimi-K2.6 | 西南-贵阳一 | kimi-k2.6 |
| DeepSeek | DeepSeek-V4-Pro | 西南-贵阳一 | deepseek-v4-pro |
| DeepSeek-V4-Flash | 西南-贵阳一 | deepseek-v4-flash | |
| DeepSeek-V3 | 西南-贵阳一 | DeepSeek-V3 | |
| DeepSeek-R1-0528 | 西南-贵阳一 | deepseek-r1-250528 | |
| DeepSeek-V3.1 | 西南-贵阳一 | deepseek-v3.1-terminus | |
| DeepSeek-V3.2 | 西南-贵阳一 | deepseek-v3.2 |
您可以登录MaaS控制台,在“模型广场”页面的模型详情页面,查看模型的详细信息。
请求参数说明
| 参数类别 | 参数 | 参数类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| 通用 | model | string | 是 | 参数解释: 用于生成内容的模型ID。取值请参考支持的模型中的model参数值。 约束限制: 不涉及。 取值范围: 取值请参考支持的模型中的model参数值。 默认取值: 不涉及。 |
| system | string | 否 | 参数解释: 系统提示词,可用于给模型指定特定的目标或角色。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 | |
| messages | object[] | 是 | 参数解释: 对话组成的消息列表。不同模型支持不同类型的消息。 | |
| messages.role | enum<string> | 是 | 参数解释: 发送消息的角色。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 | |
| messages.content | string/array | 是 | 参数解释: 当前角色发出的消息内容。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 | |
| messages.content.type | enum<string> | 是 | 参数解释: 消息类型。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 | |
| 工具调用结果部分() | messages.content.tool_use_id | string | 是 | 参数解释: 模型调用的工具的ID。 约束限制: 当参数messages.content.type的值为“tool_result”时,该参数必传。 取值范围: 不涉及。 默认值: 不涉及。 |
| messages.content.content | string | 否 | 参数解释: 调用工具后获取的内容。 约束限制: 当参数messages.content.type的值为“tool_result”时,才涉及该参数。 取值范围: 不涉及。 默认值: 不涉及。 | |
| 深度思考控制 | thinking | object | 否 | 参数解释: 控制模型是否开启深度思考模式。 约束限制: 支持的模型请参考深度思考模型思考控制开关支持情况。 |
| thinking.type | string | 是 | 参数解释: 控制模型是否开启深度思考模式。 约束限制: 支持的模型请参考深度思考模型思考控制开关支持情况。 取值范围:
默认取值: 不同模型的默认值不同,详情请参见深度思考模型思考控制开关支持情况。 | |
| 模型输出行为配置 | max_tokens | integer/null | 否 | 参数解释: 控制模型回答(仅content部分)的最大长度。配置了该参数后,模型输出content部分的Token长度不会超过max_tokens配置的值。 约束限制: 不涉及。 取值范围: 各个模型不同,详细见模型详情页最大输出长度和最大思维链长度。 默认取值: Kimi-K2.6为32K,其它模型为4K。 |
| temperature | number | 否 | 参数解释: 采样温度,用于控制模型生成内容的随机性。 较高的值(如大于1)会使模型输出更加随机、发散、创造性高,而较低的值(如 0.1)会使输出更加集中确定、保守。 约束限制: 建议仅调整temperature或top_p其中之一,不建议两者都修改。 取值范围: [0,2] 默认取值: DeepSeek-V3、DeepSeek-R1-0528和DeepSeek-V4系列会对输入值做特殊处理:
Kimi-K2.6会对输入值做特殊处理:思考模式下,无论用户输入值多少均为1.0;非思考模式下,无论用户输入值多少均为0.6。 openPangu-2.0-Flash模型默认值为1。 其它模型如果有输入值,以输入值为准;如果输入值为空,则默认为0.6。 | |
| top_p | float/null | 否 | 参数解释: 核采样概率阈值,用于控制模型生成内容的多样性,和temperature参数类似,但原理不同,可以更精细地控制模型输出的词汇范围。
约束限制: 通常建议仅调整temperature或top_p其中之一,不建议两者都修改。 取值范围: (0,1] 默认取值:
| |
| stream | boolean/null | 否 | 参数解释: 响应内容是否流式返回。 约束限制: 不涉及。 取值范围:
默认取值: false。 | |
| stop_sequences | string[] | 否 | 参数解释: 当模型遇到stop_sequences字段中所指定的字符串时将停止继续生成。 停止Token不会命中思维链中的Token,仅会命中正式回答content中的部分。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 | |
| reasoning_effort | string | 否 | 参数解释: 控制思考强度的参数。 约束限制: 思考模式下该字段才生效。 涉及的模型:DeepSeek-V4系列、GLM-5.2 取值范围:
默认取值: high | |
| 工具调用 | tools | array | 否 | 参数解释: 待调用工具的列表,模型返回信息中可包含。当您需要让模型返回待调用工具时,需要配置该结构体。 约束限制: 不涉及。 |
| tools.name | string | 是 | 参数解释: 调用的函数名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 | |
| tools.description | string | 否 | 参数解释: 调用的函数的描述,模型会基于该描述判断当前任务是否需要使用该工具。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 | |
| tools.input_schema | object | 否 | 参数解释: 函数请求参数,以JSON格式描述。示例如下: {
"type": "object",
"properties": {
"参数名": {
"type": "参数类型",
"description": "参数说明"
}
},
"required": ["必填参数"]
} parameters必须符合JSON规范。 约束限制: 不涉及。 |
响应参数说明(非流式)
| 参数 | 参数类型 | 说明 | |
|---|---|---|---|
| id | string | 参数解释: 本次请求的唯一标识。 取值范围: 不涉及。 | |
| type | enum<string> | 参数解释: 响应消息的类型。 取值范围: message | |
| role | string | 参数解释: 内容输出的角色。 取值范围: assistant:模型回复的消息 | |
| model | string | 参数解释: 本次请求使用的模型ID。 取值范围: 本次请求使用的模型ID。 | |
| content | array | 参数解释: 模型生成的内容。 | |
| content.type | enum<string> | 参数解释: 生成的内容类型。 取值范围:
| |
| 深度思考部分响应(type: thinking) | content.thinking | string | 参数解释: 模型深度思考的内容。 取值范围: 不涉及。 |
| content.signature | string | 参数解释: 完整的且被加密的思考内容。 取值范围: 不涉及。 | |
| 正式答复部分响应(type: text) | content.text | string | 参数解释: 模型正式答复的内容。 取值范围: 不涉及。 |
| 工具输入部分响应(type: tool_use) | content.id | string | 参数解释: 工具调用的ID。 取值范围: 不涉及。 |
| content.name | string | 参数解释: 调用的工具名称。 取值范围: 不涉及。 | |
| content.input | object | 参数解释: 调用工具需要的结构化输入信息。 取值范围: 不涉及。 | |
| stop_reason | enum<string>/null | 参数解释: 模型停止生成Token的原因。 取值范围:
| |
| stop_sequence | string/null | 参数解释: 命中了哪一个自定义的stop_sequence。未命中则返回null。 取值范围: 不涉及。 | |
| usage | object | 参数解释: 本次请求所消耗的Token数量。 取值范围: 不涉及。 | |
| usage.output_tokens | integer | 参数解释: 模型输出内容所消耗的Token数量。 取值范围: 不涉及。 | |
| usage.input_tokens | integer | 参数解释: 处理模型输入内容所消耗的Token数量。 取值范围: 不涉及。 | |
| usage.cache_creation_input_tokens | integer | 参数解释: 本次请求中新写入缓存的输入Token数量。 取值范围: 不涉及。 | |
| usage.cache_read_input_tokens | integer | 参数解释: 本次请求中从缓存命中读取的输入Token数量。 取值范围: 不涉及。 | |
| usage.service_tier | string | 参数解释: 本次请求使用的服务层级。 取值范围: default。 | |
| usage.total_tokens | integer | 参数解释: 模型处理输入和输出内容所消耗的总Token数量。 取值范围: 不涉及。 | |
响应参数说明(流式)
| 参数 | 参数类型 | 说明 | |
|---|---|---|---|
| event | - | 参数解释: 模型返回的消息标识。 取值范围:
| |
| event: message_start | type | string | 参数解释: 该chunk的类型。 取值范围: message_start:第一个chunk。 |
| message | object[] | 参数解释: 响应消息。 | |
| message.id | string | 参数解释: 请求的唯一标识。 取值范围: 不涉及。 | |
| message.type | string | 参数解释: 响应消息类型。 取值范围: message | |
| message.role | string | 参数解释: 信息的角色。 取值范围: assistant | |
| message.model | string | 参数解释: 调用的模型 ID。 取值范围: 本次请求实际的模型ID | |
| message.stop_sequence | string/null | 参数解释: 命中的stop sequence。 取值范围: 未命中时输出为null。 | |
| message.usage | object | 参数解释: 本次请求Token用量统计。 | |
| message.usage.input_tokens | integer | 参数解释: 处理模型输入内容所消耗的Token数量。 取值范围: 不涉及。 | |
| message.usage.output_tokens | integer | 参数解释: 模型输出内容所消耗的Token数量。 取值范围: 不涉及。 | |
| message.usage.cache_creation_input_tokens | integer | 参数解释: 本次请求中新写入缓存的输入Token数量。 取值范围: 不涉及。 | |
| message.usage.cache_read_input_tokens | integer | 参数解释: 本次请求中从缓存命中读取的输入Token数量。 取值范围: 不涉及。 | |
| message.usage.service_tier | string | 参数解释: 本次请求使用的服务层级。 取值范围: default。 | |
| message.usage.total_tokens | integer | 参数解释: 模型处理输入和输出内容所消耗的总Token数量。 取值范围: 不涉及。 | |
| message.content | array | 参数解释: 模型输出内容。 | |
| message.stop_reason | enum<string>/null | 参数解释: 模型停止输出的原因。 取值范围: 模型未停止输出时,取值为null。 | |
| event: content_block_start | type | string | 参数解释: 该chunk的类型。 取值范围: content_block_start:正式答复的起始chunk。 |
| index | integer | 参数解释: 当前元素的索引。 取值范围: 不涉及。 | |
| content_block | object | 参数解释: 模型输出内容详情。 | |
| content_block.type | string | 参数解释: 模型输出内容类型。 取值范围: text | |
| content_block.thinking | string | 参数解释: 模型深度思考内容。 取值范围: 不涉及。 | |
| content_block.text | string | 参数解释: 模型正式答复内容。 取值范围: 不涉及。 | |
| content_block.id | string | 参数解释: 工具调用的ID。 取值范围: 不涉及。 | |
| content_block.name | string | 参数解释: 调用的工具名称。 取值范围: 不涉及。 | |
| content_block.input | object | 参数解释: 调用工具需要的结构化输入信息。 取值范围: 不涉及。 | |
| event: content_block_delta | type | string | 参数解释: 该chunk的类型。 取值范围: content_block_delta:包含正式答复的text,工具调用的input_json,深度思考的thinking。 |
| index | integer | 参数解释: 当前元素的索引。 取值范围: 不涉及。 | |
| delta | object | 参数解释: 模型输出的增量内容。 | |
| delta.type | string | 参数解释: 增量内容类型。 取值范围: text_delta | |
| delta.text | string | 参数解释: 模型输出的增量文本内容。 取值范围: 不涉及。 | |
| delta.partial_json | string | 参数解释: 模型流式返回的工具调用所需JSON。 | |
| event: content_block_stop | type | string | 参数解释: 该chunk的类型。 取值范围: content_block_stop:一段content已输出完毕的标识。 |
| index | integer | 参数解释: 当前元素的索引。 取值范围: 不涉及。 | |
| event: message_delta | type | string | 参数解释: 该chunk的类型。 取值范围: message_delta:包含stop_reason、stop_sequence和usage用量信息。 |
| delta | object | 参数解释: message的增量内容。 | |
| delta.stop_sequence | string/null | 参数解释: 命中的stop sequence。 取值范围: 未命中取值为null。 | |
| delta.stop_reason | string | 参数解释: 模型停止输出的原因。 取值范围:
| |
| usage | enum<string>/null | 参数解释: 本次请求Token用量统计。 | |
| usage.output_tokens | integer | 参数解释: 输出内容所消耗的Token数。 取值范围: 不涉及。 | |
| usage.input_tokens | integer | 参数解释: 处理模型输入内容所消耗的Token数量。 取值范围: 不涉及。 | |
| message.usage.cache_creation_input_tokens | integer | 参数解释: 本次请求中新写入缓存的输入Token数量。 取值范围: 不涉及。 | |
| message.usage.cache_read_input_tokens | integer | 参数解释: 本次请求中从缓存命中读取的输入Token数量。 取值范围: 不涉及。 | |
| message.usage.total_tokens | integer | 参数解释: 模型处理输入和输出内容所消耗的总Token数量。 取值范围: 不涉及。 | |
| event: message_stop | type | string | 参数解释: 该chunk的类型。 取值范围: message_stop:message已全部返回标识。 |
深度思考模型思考控制开关支持情况
| 模型名称 | thinking.type默认值 | thinking.type支持的取值 |
|---|---|---|
| openPangu-2.0-Flash | disabled |
|
| GLM-5.2 GLM-5.1 GLM-5 | enabled |
|
| Kimi-K2.6 | enabled |
|
| DeepSeek-V4-Flash DeepSeek-V4-Pro | enabled |
|
| DeepSeek-R1-0528 | enabled | enabled |
| DeepSeek-V3.1 DeepSeek-V3.2 | disabled |
|
工具调用模型支持情况
| 模型名称 | 支持的tool choice |
|---|---|
| openPangu-2.0-Flash |
|
| GLM-5.1 GLM-5.2 |
|
| GLM-5 |
|
| Kimi-K2.6 |
|
| DeepSeek-V4-Flash DeepSeek-V4-Pro DeepSeek-V3.2 DeepSeek-R1-0528 |
|
| DeepSeek-V3 DeepSeek-V3.1 |
|
| Qwen3-235B-A22B |
|
示例一:流式输出
请求示例如下:
import requests
import json
if __name__ == '__main__':
url = "https://api.modelarts-maas.com/anthropic/v1/messages" # 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": "glm-5.2", # model参数,您可按需更换模型参数
"stream":True,
"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) Linux环境下执行如下命令:
curl --request POST \
--url https://api.modelarts-maas.com/anthropic/v1/messages \
--header 'content-type: application/json' \
--header 'x-api-key: $MaaS_API_Key' \
--data '{
"model": "glm-5.2",
"stream": true,
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好"
}
]
}' 响应示例:
event: message_start
data: {"type":"message_start","message":{"id":"22cadffad9724d5893e4f9ffed41a695","type":"message","role":"assistant","model":"glm-5.2","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":0,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":0,"service_tier":"default"}}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"delta":{"type":"text_delta","text":"你好"},"type":"content_block_delta","index":0}
event: content_block_delta
data: {"delta":{"type":"text_delta","text":"!有什么"},"type":"content_block_delta","index":0}
event: content_block_delta
data: {"delta":{"type":"text_delta","text":"可以帮"},"type":"content_block_delta","index":0}
event: content_block_delta
data: {"delta":{"type":"text_delta","text":"你的吗"},"type":"content_block_delta","index":0}
event: content_block_delta
data: {"delta":{"type":"text_delta","text":"?"},"type":"content_block_delta","index":0}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":9,"input_tokens":18,"total_tokens":27,"cache_creation_input_tokens":0,"cache_read_input_tokens":0}}
event: message_stop
data: {"type":"message_stop"}
data: [DONE] 示例二:工具调用
请求示例如下:
import requests
import json
if __name__ == '__main__':
url = "https://api.modelarts-maas.com/anthropic/v1/messages" # 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": "glm-5.2",
"thinking": {
"type": "disabled"
},
"stream": False,
"system": "You are a helpful assistant. 回复要简洁",
"messages": [
{
"role": "user",
"content": "北京今天天气怎么样?"
},
{
"role": "assistant",
"content": [
{
"type": "tool_use",
"id": "call_664e61ca7977429db860d513",
"input": {
"city": "北京",
"unit": "celsius"
},
"name": "get_weather"
}
]
},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "call_664e61ca7977429db860d513",
"content": "{\"city\": \"北京\", \"temperature\": 26, \"unit\": \"celsius\", \"condition\": \"晴\"}"
}
]
}
],
"tools": [
{
"name": "get_weather",
"description": "查询指定城市的实时天气",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,例如:北京"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
],
"description": "温度单位"
}
},
"required": [
"city"
]
}
}
]
}
response = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
# Print result.
print(response.status_code)
print(response.text) Linux环境下执行如下命令:
curl --request POST \
--url https://api.modelarts-maas.com/anthropic/v1/messages \
--header 'content-type: application/json' \
--header 'x-api-key: $MaaS_API_Key' \
--data '{
"model": "glm-5.2",
"thinking": {
"type": "disabled"
},
"stream": false,
"system": "You are a helpful assistant. 回复要简洁",
"messages": [
{
"role": "user",
"content": "北京今天天气怎么样?"
},
{
"role": "assistant",
"content": [
{
"type": "tool_use",
"id": "call_664e61ca7977429db860d513",
"input": {
"city": "北京",
"unit": "celsius"
},
"name": "get_weather"
}
]
},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "call_664e61ca7977429db860d513",
"content": "{\"city\": \"北京\", \"temperature\": 26, \"unit\": \"celsius\", \"condition\": \"晴\"}"
}
]
}
],
"tools": [
{
"name": "get_weather",
"description": "查询指定城市的实时天气",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,例如:北京"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
],
"description": "温度单位"
}
},
"required": [
"city"
]
}
}
]
}' {
"content": [
{
"text": "北京今天的天气:**晴**,气温 **26°C**。天气不错,适合出行!☀️",
"type": "text"
}
],
"id": "1d3756ed5704491f980c2fd40054bfd7",
"model": "glm-5.2",
"role": "assistant",
"stop_reason": "end_turn",
"stop_sequence": null,
"type": "message",
"usage": {
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"input_tokens": 250,
"output_tokens": 23,
"service_tier": "default",
"total_tokens": 273
}
}