
# 模型API接口规范
本章节介绍**标准OpenAI协议** 和**AI引擎标准协议**的接口规范。接入自定义模型服务前，请确保模型API符合对应的接口协议规范。
当前模型网关支持接入以下四种类型的模型API：
- 文本对话（Chat）
- 文本向量化（Embeddings）
- 文本排序（Rerank）
- 图像理解
各模型类型支持的接口协议如下表所示。
表1模型类型与接口协议对照 
| 模型类型  | 支持的接口协议                                                                                                                                                                                     |
|:---|:---|
| 文本对话  | 标准OpenAI协议、阿里千问接口协议、[MaaS标准API V1](https://support.huaweicloud.com/model-call-maas/model-call-020.html)、[MaaS标准API V2](https://support.huaweicloud.com/model-call-maas/model-call-019.html) |
| 文本向量化 | 标准OpenAI协议、阿里千问接口协议、[MaaS标准API V1](https://support.huaweicloud.com/model-call-maas/model-call-020.html)、[MaaS标准API V2](https://support.huaweicloud.com/model-call-maas/model-call-019.html) |
| 图像理解  | 标准OpenAI协议、阿里千问接口协议、[MaaS标准API V1](https://support.huaweicloud.com/model-call-maas/model-call-020.html)、[MaaS标准API V2](https://support.huaweicloud.com/model-call-maas/model-call-019.html) |
| 文本排序  | AI引擎标准协议                                                                                                                                                                                    |
   
#### 适用场景
本章节适用于以下场景：
- 需要将第三方模型服务（如DeepSeek、Moonshot等）接入AgentArts，用于确认模型API是否满足平台接口协议规范。
- 自行部署了模型推理服务，需要按平台支持的协议实现/适配API接口后再接入AgentArts。
- 模型接入或调用过程中出现异常（例如请求失败、响应字段缺失、格式不兼容等），需要对照接口规范排查请求与响应格式问题。
 
#### 费用说明
调用模型API会产生相应费用，计费维度为Token数量（包括输入Token和输出Token）。具体计费规则请参考接入的模型的供应商官网。
建议在测试阶段设置合理的max_tokens参数以控制成本。
#### 文本对话（Chat）API规范
**接口格式**
类型：POST
协议：HTTP/HTTPS
**请求体参数**
表2请求体参数 
| 参数                | 是否必选 | 参数类型                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| messages          | 是    | Array of [表3] objects  | 文本对话消息体。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| model             | 是    | String                                                                                      | 文本对话使用的模型名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| frequency_penalty | 否    | Number                                                                                      | 频率惩罚，会根据文本中新Token的出现频率对其进行惩罚，从而降低模型重复相同内容的可能性。使其生成的文本更加自然和符合预期。取值范围为-2.0\~2.0。 - **默认值**（0.0）：不施加任何频率惩罚。模型按原本的概率分布生成文本。  - **正值**（例如 0.5，1.0，2.0）：增加惩罚力度。值越高，模型越不愿意使用已经用过的词。使输出文本的词汇更多样化、更富有创造性，但过高的值可能导致用词生僻、语句不通顺甚至偏离主题。  - **负值**（例如 -0.5，-1.0，-2.0）：减少惩罚，值越低（负的越多），模型越倾向于使用已经用过的词。使输出文本的词汇更集中、更稳定、更可能重复关键主题词。但过低的值会导致用词极其重复、啰嗦。   例如： 提示词为（Prompt）： "写一首关于猫的诗。" - frequency_penalty=0（默认）：输出可能正常地重复使用"猫"、"尾巴"、"柔软"等合理词汇。  - frequency_penalty=1.5（高惩罚）：模型会极力避免重复用词。第一句用了"猫"，第二句可能会用"毛茸伙伴"、"喵星人"、"优雅的生物"等同义词来替代，词汇非常丰富。但如果惩罚过高，可能会为了规避重复而选用不合适的词，导致诗歌变得奇怪。  - frequency_penalty=-1.0（负惩罚）：模型不害怕重复，甚至鼓励重复。输出可能会变成："猫，猫，可爱的猫。猫在跑，猫在跳，猫的尾巴摇啊摇。" 显得非常冗余和缺乏创意。   |
| logit_bias        | 否    | Map\<String,Integer\>                                                                       | 该参数接受一个JSON对象，将标记映射到从-100（禁止生成）到100（强制选择该标记）的关联偏差值。 像-1和1这样的适度值将以较小的程度改变选择标记的概率。 使用logit_bias参数时，偏差被添加到模型生成的logits之前进行抽样。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| max_tokens        | 否    | Integer                                                                                     | 返回体允许的最大token数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| n                 | 否    | Integer                                                                                     | 返回体中包含的choices数量，建议默认设置为1，最大限度地降低成本。 - **最小值**：1  - **最大值**：128  - **默认值**：1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| presence_penalty  | 否    | Number                                                                                      | 存在惩罚，会根据文本中新Token是否出现对其进行惩罚，核心作用是降低模型再次讨论已经出现过的"话题"的可能性，从而增加模型谈论新主题的可能性。使其生成的文本更加自然和符合预期。取值范围为-2.0\~2.0。 - **默认值**（0.0）：不施加任何存在惩罚。  - **正值**（例如 0.5，1.0，2.0）：增加惩罚力度，值越高，模型越不愿意停留在已经提及的主题上，越倾向于引入全新的想法、概念或话题。使对话或文本更容易"跑题"或转向新方向。在创意生成中，这可以带来更大的探索性。  - **负值**（例如 -0.5，-1.0，-2.0）：减少惩罚，值越低（负的越多），模型越倾向于围绕已经出现的主题进行深入讨论，避免引入新信息，使输出内容更加集中、紧扣主题，但可能显得缺乏发散性。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| stream            | 否    | Boolean                                                                                     | 布尔类型。 - 设为**true** 时，返回结果为**流式** 。 流式处理是一种边接收边处理、实时性强的数据处理模式。它将数据视为连续不断的"流"，允许低延迟和即时响应，广泛应用于视频播放、实时监控、大数据分析和人工智能生成内容等领域。   - 设为**false** 时，返回结果为**非流式** ，JSON格式结构化数据。 非流式指数据或操作不是连续、实时地传输或处理，而是一次性接收完整的输入，待完全处理后一次性返回完整的结果。这种模式常见于传统HTTP请求-响应模式、大模型API的非流式输出和语音合成等领域，强调数据的完整性和整体性，不追求即时反馈。    **默认值**：false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| temperature       | 否    | Number                                                                                      | 较高的数值会使输出更加随机，而较低的数值会使其更加集中和确定。 - **最小值**：0  - **最大值**：2  - **默认值**：1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| top_p             | 否    | Number                                                                                      | 影响输出文本的多样性，取值越大，生成文本的多样性越强。 - **最小值**：0.0  - **最大值**：1.0  - **默认值**：1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| tools             | 否    | Array of [表4] objects | 可供模型调用的工具。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| tool_choice       | 否    | String                                                                                      | 用于控制模型是如何选择要调用的函数，仅当工具类型为function时补充。 默认为auto，且当前仅支持auto。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
 表3ChatCompletionRequestMessage 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| role    | 是    | String | 消息体对应的角色。 - system：表示系统提示词角色。  - user：表示用户输入角色。  - assistant：表示模型回复角色。   |
| content | 是    | String | 消息具体内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| name    | 否    | String | 对话参与者的可选名称，提供给模型信息以区分相同角色的不同对话参与者。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表4FunctionCallTool 
| 参数       | 是否必选 | 参数类型                                                                             | 描述                    |
|:---|:---|:---|:---|
| type     | 否    | String                                                                           | 调用工具类型，目前仅支持function。 |
| function | 否    | [表5] object | 仅当工具类型为function时补充。   |
   
 表5function 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                            |
|:---|:---|:---|:---|
| name        | 否    | String | 函数名称，只能包含a-z、A-Z、0-9、下划线和中划线。最大长度为64个字符。                                                      |
| description | 否    | String | 用于描述函数功能。 模型会根据这段描述决定函数调用方式。 |
| parameters  | 否    | Object | Json Schema对象，用于定义函数所接受的参数。                                                                   |
   
- **工具调用请求示例**
  - 流式请求示例
    ```
    {
        "model": "my-chat-model",
        "messages": [
            {
                "role": "user",
                "content": "请帮我查询南京的天气"
            }
        ],
        "tools": [
            {
                "type": "function",
                "function": {
                    "name": "get_weather",
                    "description": "获取给定地点的天气",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "location": {
                                "type": "string",
                                "description": "地点，例如南京。"
                            }
                        },
                        "required": ["location"]
                    }
                }
            }
        ],
        "max_tokens": 200,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": true
    }
    ```
    
  
  - 非流式请求示例
    ```
    {
        "model": "my-chat-model",
        "messages": [
            {
                "role": "user",
                "content": "请帮我查询南京的天气"
            }
        ],
        "tools": [
            {
                "type": "function",
                "function": {
                    "name": "get_weather",
                    "description": "获取给定地点的天气",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "location": {
                                "type": "string",
                                "description": "地点，例如南京。"
                            }
                        },
                        "required": ["location"]
                    }
                }
            }
        ],
        "max_tokens": 200,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": false
    }
    ```
    
   
- **非工具调用请求示例**
  - 流式请求示例
    ```
    {
        "model": "my-chat-model",
        "messages": [
            {
                "role": "system",
                "content": " You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "你好！"
            }
        ],
        "max_tokens": 20,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": true
    }
    ```
    
  
  - 非流式请求示例
    ```
    {
        "model": "my-chat-model",
        "messages": [
            {
                "role": "system",
                "content": " You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "你好！"
            }
        ],
        "max_tokens": 20,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": false
    }
    ```
    
   
 
**响应体参数**
表6响应体参数 
| 参数      | 参数类型                                                                                      | 描述                                                                                        |
|:---|:---|:---|
| id      | String                                                                                    | 文本对话唯一标识符。                                                                                |
| choices | Array of [表7] objects | 返回体列表。 如果"n"大于1，则结果为多个。 |
| created | Integer                                                                                   | 问答发生的时间。格式为时间戳。                                                                           |
| model   | String                                                                                    | 文本对话使用的模型名称。                                                                              |
| object  | String                                                                                    | 固定值"chat.completion"。                                                                     |
| usage   | [表11] object        | 文本对话用量统计。                                                                                 |
   
 表7choices 
| 参数            | 参数类型                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| index         | Integer                                                                         | 返回多个choices时，每个choice对应的顺序。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| message       | [表8] object | 模型服务返回的具体消息体内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| finish_reason | String                                                                          | 返回结束的原因。 - stop：模型达到自然停止点或提供的停止序列。  - length：达到请求中指定的最大token数。  - content_filter：由于内容过滤器的标志而省略了内容。  - tool_calls：模型选择了某个工具。   |
   
 表8ChatCompletionResponseMessage 
| 参数         | 参数类型                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| content    | String                                                                                      | 返回消息体的内容，与tool_calls二选一。                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| role       | String                                                                                      | 返回消息体的角色。 枚举值： - user：用户输入的问题。  - assistant：大模型的答复内容。   |
| tool_calls | Array of [表9] objects | 工具调用消息，与content二选一。                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表9ToolCall 
| 参数       | 参数类型                                                                              | 描述                  |
|:---|:---|:---|
| id       | String                                                                            | 工具调用唯一标识符。          |
| type     | String                                                                            | 工具类型，当前仅支持function。 |
| function | [表10] Object | 调用函数的详细信息。          |
   
 表10CallFunction 
| 参数        | 参数类型   | 描述              |
|:---|:---|:---|
| name      | String | 函数名。            |
| arguments | String | 调用函数的参数，JSON格式。 |
   
 表11CompletionUsage 
| 参数                | 参数类型    | 描述            |
|:---|:---|:---|
| completion_tokens | Integer | 回答包含的token数。  |
| prompt_tokens     | Integer | 提问包含的token数。  |
| total_tokens      | Integer | 提问+回答token总数。 |
   
- **工具调用** **响应示例**
  - 流式响应示例
    流式返回的工具调用信息必须在一条消息内，不能分开返回。
    ```
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"id":"call_123","type":"function","function":{"name":"get_weather","arguments":"{\"location\":\"南京\"}"}}]}"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"tool_calls"}]}
    ```
    
  
  - 非流式响应示例
    ```
    {
        "id": "chatcmpl-xxx",
        "object": "chat.completion",
        "created": 1718772336,
        "model": "my-chat-model",
        "choices": [
            {
                "index": 0,
                "message": {
                    "role": "assistant",
                    "content": null,
                    "tool_calls": [
                        {
                            "id": "call_123",
                            "type": "function",
                            "function": {
                                "name": "get_weather",
                                "arguments": "{\"location\": \"南京\"}"
                            }
                        }
                    ]
                },
                "finish_reason": "tool_calls",
                "logprobs": null
            }
        ],
        "usage": {
            "prompt_tokens": 5,
            "completion_tokens": 10,
            "total_tokens": 15
        }
    }
    ```
    
   
- **非工具调用** **响应示例**
  - 流式响应示例
    ```
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"你好"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"，"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"有"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"什么"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"我"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"可以"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"帮助"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"你"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"的"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"吗"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{"content":"？"},"logprobs":null,"finish_reason":null}]}
    {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1718772336,"model":"my-chat-model","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
    ```
    
  
  - 非流式响应示例
    ```
    {
        "id": "chatcmpl-xxx",
        "object": "chat.completion",
        "created": 1718772336,
        "model": "my-chat-model",
        "choices": [
            {
                "index": 0,
                "message": {
                    "role": "assistant",
                    "content": "你好，有什么我可以帮助你的吗？"
                },
                "finish_reason": "stop",
                "logprobs": null
            }
        ],
        "usage": {
            "prompt_tokens": 5,
            "completion_tokens": 10,
            "total_tokens": 15
        }
    }
    ```
    
   
#### 文本向量化（Embeddings）API规范
**接口格式**
类型：POST
协议：HTTP/HTTPS
**请求体参数**
表12请求体参数 
| 参数    | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| input | 是    | Array of strings | - 纯文本（string），例如，"你好" 。  - 文本列表（array），例如，\["你","好"\] 。   数组长度：1-2048。 |
| model | 是    | String           | 向量化模型名称。                                                                                                                                                                                                                                                                                                                                                                                                |
   
请求示例：
```
{
    "model": "my-embedding-model",
    "input": "你好"
}
```
**响应体参数**
表13响应体参数 
| 参数     | 参数类型                                                                                       | 描述         |
|:---|:---|:---|
| data   | Array of [表14] objects | 向量化结果。     |
| model  | String                                                                                     | 向量化模型名称。   |
| object | String                                                                                     | 固定值"list"。 |
| usage  | [表15] object           | 每次请求的用量统计。 |
   
 表14Embedding 
| 参数        | 参数类型             | 描述              |
|:---|:---|:---|
| index     | Integer          | 向量在向量列表中的排序。    |
| embedding | Array of numbers | 向量数组。Float类型。   |
| object    | String           | 固定值"embedding"。 |
   
 表15usage 
| 参数            | 参数类型    | 描述            |
|:---|:---|:---|
| prompt_tokens | Integer | 提问包含的token数。  |
| total_tokens  | Integer | 提问+回答token总数。 |
   
响应示例：
```
{
    "data": [
        {
            "index": 0,
            "embedding": [
                0.02513289265334606,
                -0.017512470483779907,
                -0.029955564066767693,
                ...
            ],
            "object": "embedding"
        }
    ],
    "usage": {
        "prompt_tokens": 5,
        "total_tokens": 5
    },
    "model": "my-embedding-model",
    "object": "list"
}
```
#### 文本排序（Rerank）API规范
**接口格式**
类型：POST
协议：HTTP/HTTPS
**请求体参数**
表16请求体参数 
| 参数    | 是否必选 | 参数类型             | 描述                     |
|:---|:---|:---|:---|
| query | 是    | String           | 原始请求问题，基于该问题对候选文本进行排序。 |
| top_n | 是    | Integer          | 返回排序靠前的n个结果。           |
| docs  | 是    | Array of strings | 候选文本，文件大小限制为512MB以内。   |
| model | 是    | String           | 排序模型名称。                |
   
请求示例：
```
{
    "model": "my-rerank-model",
    "query": "请问AI原生应用引擎提供了什么能力？",
    "docs": ["AI原生应用引擎提供了应用开发、模型网关等能力。", "AI原生应用引擎正在逐步完善、提高竞争力。"],
    "top_n": 3
}
```
**响应体参数**
表17响应体参数 
| 参数      | 参数类型                                                                                       | 描述         |
|:---|:---|:---|
| model   | String                                                                                     | 排序模型名称。    |
| usage   | [表18] object         | 每次请求的用量统计。 |
| results | Array of [表19] objects | 排序结果。      |
   
 表18usage 
| 参数            | 参数类型    | 描述            |
|:---|:---|:---|
| prompt_tokens | Integer | 提问包含的token数。  |
| total_tokens  | Integer | 提问+回答token总数。 |
   
 表19RankDocument 
| 参数              | 参数类型                                                                               | 描述          |
|:---|:---|:---|
| index           | Integer                                                                            | 文本排序后对应的序号。 |
| document        | [表20] object | 文本。         |
| relevance_score | Number                                                                             | 文本的排序分数。    |
   
 表20Document 
| 参数   | 参数类型   | 描述    |
|:---|:---|:---|
| text | String | 文本内容。 |
   
响应示例：
```
{
    "model": "my-rerank-model",
    "usage": {
        "prompt_tokens": 5,
        "total_tokens": 5
    },
"results": [
      {
           "index": 0,
           "document": {"text": "AI原生应用引擎提供了应用开发、模型网关等能力。"},
           "relevance_score": 0.9
      },
     {
          "index": 1,
          "document": {"text": "AI原生应用引擎正在逐步完善、提高竞争力。"},
          "relevance_score": 0.5
     }
   ]
}
```
#### 图像理解API规范
**接口格式**
类型：POST
协议：HTTP/HTTPS
**请求体参数**
表21请求体参数 
| 参数                | 是否必选 | 参数类型                                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| messages          | 是    | Array of [表22] objects | 图像理解对话消息体。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| model             | 是    | String                                                                                   | 图像理解对话使用的模型名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| frequency_penalty | 否    | Number                                                                                   | 频率惩罚，会根据文本中新Token的出现频率对其进行惩罚，从而降低模型重复相同内容的可能性。使其生成的文本更加自然和符合预期。取值范围为-2.0\~2.0。 - **默认值**（0.0）：不施加任何频率惩罚。模型按原本的概率分布生成文本。  - **正值**（例如 0.5，1.0，2.0）：增加惩罚力度。值越高，模型越不愿意使用已经用过的词。使输出文本的词汇更多样化、更富有创造性，但过高的值可能导致用词生僻、语句不通顺甚至偏离主题。  - **负值**（例如 -0.5，-1.0，-2.0）：减少惩罚，值越低（负的越多），模型越倾向于使用已经用过的词。使输出文本的词汇更集中、更稳定、更可能重复关键主题词。但过低的值会导致用词极其重复、啰嗦。   例如： 提示词为（Prompt）： "写一首关于猫的诗。" - frequency_penalty=0（默认）：输出可能正常地重复使用"猫"、"尾巴"、"柔软"等合理词汇。  - frequency_penalty=1.5（高惩罚）：模型会极力避免重复用词。第一句用了"猫"，第二句可能会用"毛茸伙伴"、"喵星人"、"优雅的生物"等同义词来替代，词汇非常丰富。但如果惩罚过高，可能会为了规避重复而选用不合适的词，导致诗歌变得奇怪。  - frequency_penalty=-1.0（负惩罚）：模型不害怕重复，甚至鼓励重复。输出可能会变成："猫，猫，可爱的猫。猫在跑，猫在跳，猫的尾巴摇啊摇。" 显得非常冗余和缺乏创意。   |
| logprobs          | 否    | Boolean                                                                                  | 是否返回输出Token的对数概率。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| top_logprobs      | 否    | Integer                                                                                  | 指定在每一步生成时，返回模型最大概率的候选Token个数。 取值范围：\[0,5\] 仅当**logprobs**为true时生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| max_tokens        | 否    | Integer                                                                                  | 返回体允许的最大token数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| presence_penalty  | 否    | Number                                                                                   | 存在惩罚，会根据文本中新Token是否出现对其进行惩罚，核心作用是降低模型再次讨论已经出现过的"话题"的可能性，从而增加模型谈论新主题的可能性。使其生成的文本更加自然和符合预期。取值范围为-2.0\~2.0。 - **默认值**（0.0）：不施加任何存在惩罚。  - **正值**（例如 0.5，1.0，2.0）：增加惩罚力度，值越高，模型越不愿意停留在已经提及的主题上，越倾向于引入全新的想法、概念或话题。使对话或文本更容易"跑题"或转向新方向。在创意生成中，这可以带来更大的探索性。  - **负值**（例如 -0.5，-1.0，-2.0）：减少惩罚，值越低（负的越多），模型越倾向于围绕已经出现的主题进行深入讨论，避免引入新信息，使输出内容更加集中、紧扣主题，但可能显得缺乏发散性。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| n                 | 否    | Integer                                                                                  | 生成响应的个数。取值范围是1-4。 对于需要生成多个响应的场景（如创意写作、广告文案等），可以设置较大的n值。 默认值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| stream            | 否    | Boolean                                                                                  | 布尔类型。 - 设为**true** 时，返回结果为**流式** 。 流式处理是一种边接收边处理、实时性强的数据处理模式。它将数据视为连续不断的"流"，允许低延迟和即时响应，广泛应用于视频播放、实时监控、大数据分析和人工智能生成内容等领域。   - 设为**false** 时，返回结果为**非流式** ，JSON格式结构化数据。 非流式指数据或操作不是连续、实时地传输或处理，而是一次性接收完整的输入，待完全处理后一次性返回完整的结果。这种模式常见于传统HTTP请求-响应模式、大模型API的非流式输出和语音合成等领域，强调数据的完整性和整体性，不追求即时反馈。    **默认值**：false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| seed              | 否    | Integer                                                                                  | 设置seed参数会使文本生成过程更具有确定性，通常用于使模型每次运行的结果一致。 在每次模型调用时传入相同的seed值（由您指定），并保持其他参数不变，模型将尽可能返回相同的结果。 取值范围：0到2^31^-1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| temperature       | 否    | Number                                                                                   | 较高的数值会使输出更加随机，而较低的数值会使其更加集中和确定。 - **最小值**：0  - **最大值**：2  - **默认值**：1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| top_p             | 否    | Number                                                                                   | 影响输出文本的多样性，取值越大，生成文本的多样性越强。 - **最小值**：0.0  - **最大值**：1.0  - **默认值**：1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表22ChatCompletionRequestMessage 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| role    | 是    | String | 消息体对应的角色。 - system：表示系统提示词角色。  - user：表示用户输入角色。  - assistant：表示模型回复角色。   |
| content | 是    | String | 消息具体内容。 ``` [ { "type": "image_url", "image_url": { "url": "data:image/png;base64" } }, { "type": "text", "text": "图里有什么" } ] ```                                                                                                                                                                                                             |
| name    | 否    | String | 对话参与者的可选名称，提供给模型信息以区分相同角色的不同对话参与者。                                                                                                                                                                                                                                                                                                                                                                             |
   
- **工具调用请求示例**
  - 流式请求示例
    ```
    {
        "model": "model-img2text",
        "messages": [
            {
                "role": "system",
                "content": " You are a helpful assistant."
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "图里面有什么"
                    },
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "一个图片链接"
                        }
                    }
                ]
            }
        ],
        "tools": [
            {
                "type": "function",
                "function": {
                    "name": "get_weather",
                    "description": "获取给定地点的天气",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "location": {
                                "type": "string",
                                "description": "地点，例如南京。"
                            }
                        },
                        "required": [
                            "location"
                        ]
                    }
                }
            }
        ],
        "max_tokens": 20,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": true
    }
    ```
    
  
  
  
  - 非流式请求示例
    ```
    {
        "model": "model-img2text",
        "messages": [
            {
                "role": "system",
                "content": " You are a helpful assistant."
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "图里面有什么"
                    },
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "一个图片链接"
                        }
                    }
                ]
            }
        ],
        "tools": [
            {
                "type": "function",
                "function": {
                    "name": "get_weather",
                    "description": "获取给定地点的天气",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "location": {
                                "type": "string",
                                "description": "地点，例如南京。"
                            }
                        },
                        "required": [
                            "location"
                        ]
                    }
                }
            }
        ],
        "max_tokens": 20,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": false
    }
    ```
    
   
- **非工具调用请求示例**
  - 流式请求示例
    ```
    {
        "model": "model-img2text",
        "messages": [
            {
                "role": "system",
                "content": " You are a helpful assistant."
            },
            {
                "role": "user",
                "content": [ { "type": "text", "text": "图里面有什么" }, { "type": "image_url", "image_url": { "url": "一个图片链接" } } ]
            }
        ],
        "max_tokens": 20,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": true
    }
    ```
    
  
  - 非流式请求示例
    ```
    {
        "model": "model-img2text",
        "messages": [
            {
                "role": "system",
                "content": " You are a helpful assistant."
            },
            {
                "role": "user",
                "content": [ { "type": "text", "text": "图里面有什么" }, { "type": "image_url", "image_url": { "url": "一个图片链接" } } ]
            }
        ],
        "max_tokens": 20,
        "presence_penalty": 1.2,
        "frequency_penalty": 1.0,
        "temperature": 0.5,
        "top_p": 0.95,
        "stream": false
    }
    ```
    
   
**响应体参数**
表23响应体参数 
| 参数      | 参数类型                                                                                       | 描述                                                                                      |
|:---|:---|:---|
| id      | String                                                                                     | 图像理解文本对话唯一标识符。                                                                          |
| choices | Array of [表24] objects | 返回体列表。 如果"n"大于1，则结果为多个。 |
| created | long                                                                                       | 问答发生的时间。格式为时间戳。                                                                         |
| model   | String                                                                                     | 图像理解文本对话使用的模型名称。                                                                        |
| object  | String                                                                                     | 固定值"chat.completion"。                                                                   |
| usage   | [表28] object           | 图像理解文本对话用量统计。                                                                           |
   
 表24ChatNonStreamingChoice 
| 参数            | 参数类型                                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| index         | Integer                                                                        | 返回多个choices时，每个choice对应的顺序。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| message       | [表25] object | 模型服务返回的具体消息体内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| finish_reason | String                                                                         | 返回结束的原因。 - stop：模型达到自然停止点或提供的停止序列。  - length：达到请求中指定的最大token数。  - content_filter：由于内容过滤器的标志而省略了内容。  - tool_calls：模型选择了某个工具。   |
   
 表25ChatMessageResponse 
| 参数               | 参数类型                                                                                       | 描述                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| content          | String                                                                                     | 返回消息体的内容，与tool_calls二选一。                                                                                                                                                                                                                                                                                         |
| role             | String                                                                                     | 返回消息体的角色。 - user：用户输入的问题。  - assistant：大模型的答复内容。   |
| tool_calls       | Array of [表26] objects | 工具调用消息，与content二选一。                                                                                                                                                                                                                                                                                              |
| audio            | ChatMessageAudio                                                                           | 聊天消息中的音频部分。                                                                                                                                                                                                                                                                                                      |
| reasoningContent | String                                                                                     | 用于展示模型的推理过程，帮助用户理解模型的决策依据。                                                                                                                                                                                                                                                                                       |
   
 表26ToolCall 
| 参数       | 参数类型                                                                             | 描述                  |
|:---|:---|:---|
| id       | String                                                                           | 工具调用唯一标识符。          |
| type     | String                                                                           | 工具类型，当前仅支持function。 |
| function | [表27] Object | 调用函数的详细信息。          |
   
 表27CallFunction 
| 参数        | 参数类型   | 描述              |
|:---|:---|:---|
| name      | String | 函数名。            |
| arguments | String | 调用函数的参数，JSON格式。 |
   
 表28CompletionUsage 
| 参数                | 参数类型    | 描述            |
|:---|:---|:---|
| completion_tokens | Integer | 回答包含的token数。  |
| prompt_tokens     | Integer | 提问包含的token数。  |
| total_tokens      | Integer | 提问+回答token总数。 |
   
- **工具调用** **响应示例**
  - 流式响应示例
    ```
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"role":"assistant","content":""},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[{"id":"call_abc123","type":"function","function":{"name":"search_web","arguments":{}}}],"content":""},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[{"id":"call_abc123","type":"function","function":{"name":"search_web","arguments":{"query":"最新款iPhone发布信息","limit":5}}}],"content":""},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[{"id":"call_abc123","type":"function","function":{"name":"search_web","arguments":{"query":"最新款iPhone发布信息","limit":5}},"index":0}],"content":""},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":"正在为您搜索最新款iPhone的发布信息……"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"finish_reason":"tool_calls","delta":{"tool_calls":[],"content":""},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"usage":{"completion_tokens":67,"prompt_tokens":35,"total_tokens":102},"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:[DONE]
    ```
    
  
  - 非流式响应示例
    ```
    {
      "choices": [
        {
          "message": {
            "role": "assistant",
            "tool_calls": [
              {
                "id": "call_12345",
                "type": "function",
                "function": {
                  "name": "image_analysis",
                  "arguments": "{\"detail_level\": \"high\", \"output_format\": \"json\"}"
                }
              }
            ]
          },
          "finish_reason": "tool_calls",
          "index": 0
        }
      ],
      "created": 1753965925754,
      "id": "model-img2text",
      "object": "chat.completion",
      "usage": {
        "prompt_tokens": 142,
        "completion_tokens": 28,
        "total_tokens": 170
      },
      "request_id": "xxx"
    }
    ```
    
   
- **非工具调用** **响应示例**
  - 流式响应示例
    ```
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"role":"assistant","content":""},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":"这是"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":"Google"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":" Chrome"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":"浏览器"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":"的"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":"图标"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"delta":{"tool_calls":[],"content":"。"},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[{"finish_reason":"stop","delta":{"tool_calls":[],"content":""},"index":0}],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:{"created":1767494144,"usage":{"completion_tokens":43,"prompt_tokens":35,"total_tokens":78},"model":"qwen2.5-vl-72b","id":"chatcmpl-417592f9469edb89448e18ce650333ae","choices":[],"request_id":"74fb6469180f3e516732b36e3506e5f7","object":"chat.completion.chunk"}
    data:[DONE]
    ```
    
  
  - 非流式响应示例
    ```
    {
        "choices": [
            {
                "delta": {
                    "role": "assistant",
                    "content": "图像整体呈现出简洁、抽象的风格，主要内容是一个灰色的圆形头像轮廓。"
                },
                "finish_reason": "stop",
                "index": 0
            }
        ],
        "created": 1753965925754,
        "id": "model-img2text",
        "object": "chat.completions",
        "usage": {
            "prompt_tokens": 142,
            "completion_tokens": 118,
            "total_tokens": 260
        },
        "request_id": "xxx"
    }
    ```
    
   
 
