
# 图像问答
#### 功能介绍
多模态图像问答接口提供图片描述、视觉问答、OCR等能力，常用于图像理解、视觉问答等理解和生成任务。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/productdesc-pangulm/pangulm_01_0020.html)。
#### URI
获取URI方式请参见[请求URI](https://support.huaweicloud.com/api-pangulm/pangulm_05_0004.html)。
多模态推理服务提供两种推理接口调用：
- 盘古推理接口（V1推理接口）
- 业界通用的OpenAI格式接口（V2推理接口）
V1、V2调用接口的鉴权方式不同，请求体和返回体略有差异。两种接口定义如[推理接口]所示。
 表1推理接口 
| API分类  | API访问路径（URI）                                                       |
|:---|:---|
| V1推理接口 | POST /v1/{project_id}/deployments/{deployment_id}/chat/completions |
| V2推理接口 | POST /api/v2/chat/completions                                      |
   
V1推理接口URI需要输入额外参数，参数说明如[路径参数]所示：
 表2路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| project_id    | 是    | String | **参数解释：** 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-pangulm/pangulm_05_0021.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及            |
| deployment_id | 是    | String | **参数解释：** 模型的部署ID，获取方法请参见[获取模型部署ID](https://support.huaweicloud.com/api-pangulm/pangulm_05_0023.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求参数
V1、V2推理接口的鉴权方式不同，请求参数与响应参数也有不同，说明如下：
**Header参数**
1. V1接口支持Token鉴权方式，也支持API Key鉴权方式。两种鉴权方式请求Header参数说明如下：
   - 使用[Token认证](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__section94702116509)方式的请求Header参数见[请求Header参数（Token认证）]。
   
   
    表3请求Header参数（Token认证） 
   | 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|:---|:---|
   | X-Auth-Token | 是    | String | **参数解释：** 用户Token。 用于获取操作API的权限。如[图4](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__fig10797003103)中响应消息头中X-Subject-Token的值即为Token。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   | Content-Type | 是    | String | **参数解释：** 发送的实体的MIME类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** application/json                                                                                                                                                                       |
      
   - 使用[API Key认证](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__section148602501261)方式的请求Header参数见[请求Header参数（API Key认证）]。
      表4请求Header参数（API Key认证） 
     | 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     |:---|:---|:---|:---|
     | X-Apig-AppCode | 是    | String | **参数解释：** API Key值。 用于获取操作API的权限。[API Key认证](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__section148602501261)响应消息头中X-Apig-AppCode的值即为API Key。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
     | Content-Type   | 是    | String | **参数解释：** 发送的实体的MIME类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** application/json                                                                                                                                                                                     |
        
     
    
2. V2接口仅支持API Key鉴权方式。请求Header参数见[表5]
    表5请求Header参数（OpenAI格式的API Key认证） 
   | 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                    |
   |:---|:---|:---|:---|
   | Authorization | 是    | String | **参数解释：** 用户创建应用接入获取的API Key，拼接"Bearer "后的字符串。示例：Bearer d59\*\*\*\*\*\*9C3。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   | Content-Type  | 是    | String | **参数解释：** 发送的实体的MIME类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** application/json                               |
      
   
**请求** **Body参数**
V1、V2推理接口请求Body参数一致，如[表6]描述。
 表6请求Body参数 
| 参数                | 是否必选                                             | 参数类型                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| messages          | 是                                                | Array of [message] objects | **参数解释：** 多轮对话问答对。 **约束限制：** 不涉及 **取值范围：** 数组长度：**1 - 20** **默认取值：** 不涉及                                                                                                                                                                                                                                        |
| model             | V1推理接口：否 V2推理接口：是 | String                                                           | **参数解释：** 使用的推理服务模型名称，为推理服务部署时指定的Deployed_Model，可在推理服务详情页面查询到。V2推理接口必须指定此参数，V1推理接口不需要此参数。 **约束限制：** 不涉及 **取值范围** **：** 字符串长度取值范\[1, 64\]。 **默认取值：** 不涉及                                                                                                                                                    |
| stream            | 否                                                | Boolean                                                          | **参数解释：** 流式调用的开启开关。 **约束限制：** 不涉及 **取值范围** **：** - **true：**开启流式调用  - **false**：关闭流式调用   **默认取值：** **false**                                                  |
| temperature       | 否                                                | Float                                                            | **参数解释：** 用于控制生成文本的多样性和创造力。参数的取值范围是0到1，其中0表示最低的随机性。一般来说，temperature越低，适合完成确定性的任务。temperature越高，如0.9，适合完成创造性的任务。temperature参数可以影响语言模型输出的质量和多样性，但也不是唯一的因素。还有其他一些参数，如top_p参数也可以用来调整语言模型的行为和偏好，但不建议同时更改这两个参数。 **约束限制：** 不涉及 **取值范围** **：** 最小值：**0** 最大值：**1** **默认取值：** 缺省值：**0.3** |
| top_p             | 否                                                | Float                                                            | **参数解释：** 一种替代温度采样的方法，称为nucleus sampling，其中模型考虑具有top_p概率质量的标记的结果。通常建议更改此值或温度，但不要同时更改两者。通常建议更改top_p或temperature来调整生成文本的倾向性，但不要同时更改这两个参数。 **约束限制：** 不涉及 **取值范围：** \[0, 1\] **默认取值：** 缺省值：**0**                                                                                                                |
| max_tokens        | 否                                                | Integer                                                          | **参数解释：** 用于控制聊天回复的长度和质量。一般来说，较大的max_tokens值可以生成较长和较完整的回复，但也可能增加生成无关或重复内容的风险。较小的max_tokens值可以生成较短和较简洁的回复，但也可能导致生成不完整或不连贯的内容。因此，需要根据不同的场景和需求来选择合适的max_tokens值。 **约束限制：** 最小值为**1** **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                |
| presence_penalty  | 否                                                | Float                                                            | **参数解释：** 用于控制生成文本中的重复程度。正值会根据它们到目前为止在文本中的现有频率来惩罚新tokens，从而降低模型逐字重复同一行的可能性。presence_penalty参数可以用来提高生成文本的多样性和创造性，避免生成单调或重复的内容。 **约束限制：** 不涉及 **取值范围** **：** 最小值：**-2** 最大值：**2** **默认取值：** 缺省值：**0**                                                                          |
| frequency_penalty | 否                                                | Float                                                            | **参数解释：** 重复采样惩罚值，避免文本重复生成。 **约束限制：** 不涉及 **取值范围** **：** 最小值：**-2** 最大值：**2** **默认取值：** **0**                                                                                                                                                                                 |
| moderation_config | 否                                                | Array of moderation_config                                       | **参数解释：** 内容审核配置项。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                   |
   
 表7message 
| 参数      | 是否必选                                                | 参数类型                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| role    | V1推理接口：否 V2推理接口：是 | String                                                         | **参数解释：** 对话的角色，取值为system、user、assistant。 如果需要模型以某个人设形象回答问题，可以将role参数设置为system。不使用人设时，可设置为user。在一次会话请求中，人设只需要设置一次。多轮对话中，用户输入提示词的role设置为user，推理结果的role设置为assistant。 **约束限制：** 不涉及 **取值范围：** \[system, user, assistant\] **默认取值：** 不涉及 |
| content | 是                                                   | Array of [content] objects | **参数解释：** 问答对文本内容。 **约束限制：** 最小长度：**1** **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                   |
   
 表8content 
| 参数        | 是否必选                                                    | 参数类型                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| type      | 是                                                       | String                                                  | **参数解释：** 输入内容的类型。 **约束限制：** 不涉及 **取值范围** **：** - text：文本  - image_url：图像   **默认取值：** 不涉及 |
| text      | 否                                                       | String                                                  | **参数解释：** 问答对文本内容。 **约束限制：** 最小长度：**1** type为text时必传。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                  |
| image_url | 否 text、image_url不能同时为空 | [image_url] object | **参数解释：** 问答对图像内容。 **约束限制：** type为image_url时必传。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                      |
   
 表9image_url 
| 参数  | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| url | 是    | String | **参数解释**: 标识符 + 图片的base64编码组成的字符串。 **约束限制：** 需要符合"data:image/jpg;base64,{base64_str}"的格式，base64_str是图片的base64编码，示例：data:image/jpg;base64,/9j/4AAQSKZJRg......qkf/z。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
表10moderation_config 
| 参数                   | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| black_glossary_names | String  | **参数解释**: 黑名单词库列表。 **约束限制：** 仅对开启高级版的推理服务生效。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                      |
| white_glossary_names | String  | **参数解释**: 白名单词库列表。 **约束限制：** 仅对开启高级版的推理服务生效。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                 |
| question_moderation  | boolean | **参数解释**: 是否开启对提示词进行内容审核。 **约束限制：** 仅对开启高级版的推理服务生效。 **取值范围** **：** - true：审核  - false：不审核   **默认取值：** true。 |
| answer_moderation    | boolean | **参数解释**: 是否开启对推理结果进行内容审核。 **约束限制：** 仅对开启高级版的推理服务生效。 **取值范围** **：** - true：审核  - false：不审核   **默认取值：** true。        |
| show_result          | boolean | **参数解释**: 是否返回内容审核不通过原因。 **约束限制：** 不涉及 **取值范围** **：** - true：审核  - false：不审核   **默认取值：** false。        |
   
#### 响应参数
**非流式响应** **（请求中stream参数为空或false）**
**状态码： 200**
表11响应Body参数 
| 参数                | 参数类型                                                               | 描述                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| id                | String                                                             | **参数解释：** 响应ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                        |
| created           | Integer                                                            | **参数解释：** 响应时间。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                        |
| choices           | Array of [ChatChoice] objects | **参数解释：** 模型回复。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                         |
| usage             | [CompletionUsage] object      | **参数解释：** Tokens数量统计对象。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                       |
| moderation_type   | String                                                             | **参数解释：** 内容审核拦截类型；触发内容审核拦截，且请求参数show_result设为true时返回。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| moderation_result | [ModerationResp] object      | **参数解释：** 内容审核拦截详情；触发内容审核拦截，且请求参数show_result设为true时返回。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及     |
   
 表12ChatChoice 
| 参数      | 参数类型                                                                 | 描述                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| index   | Integer                                                              | **参数解释：** 回复的索引。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| message | Array of [MessageItem] objects | **参数解释：** 模型响应。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及   |
   
 表13MessageItem 
| 参数      | 参数类型   | 描述                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| role    | String | **参数解释：** 角色。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及          |
| content | String | **参数解释：** 模型响应。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表14CompletionUsage 
| 参数                | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| completion_tokens | Number | **参数解释：** 表示模型生成的答案中包含的Tokens的数量。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                |
| prompt_tokens     | Number | **参数解释：** 表示生成结果时使用的提示文本的Tokens的数量。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| total_tokens      | Number | **参数解释：** 对话过程中使用的Tokens总数。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                |
   
 表15ModerationResp 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| request_id | String | **参数解释：** 调用盘古护栏审核接口请求ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| result     | object | **参数解释：** 审核结果。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及       |
| label      | String | **参数解释：** 当前内容片段的风险类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及         |
   
**流式响应（请求中stream参数为true）**
**状态码： 200**
表16流式输出的数据单元 
| 参数   | 参数类型                                                         | 描述                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| data | [CompletionStreamResponse] | **参数解释：** stream=true时，模型生成的消息以流式形式返回。生成的内容以增量的方式逐步发送回来，每个data字段均包含一部分生成的内容，直到所有data返回，响应结束。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表17CompletionStreamResponse 
| 参数      | 参数类型                               | 描述                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| id      | String                             | **参数解释：** 该对话的唯一标识符。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                    |
| created | Integer                            | **参数解释：** 创建聊天完成时的Unix时间戳（以秒为单位）。流式响应的每个chunk的时间戳相同。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及              |
| model   | String                             | **参数解释：** 生成该completion的模型名。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                   |
| object  | String                             | **参数解释：** 对象的类型，其值为chat.completion.chunk。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                  |
| choices | ChatCompletionResponseStreamChoice | **参数解释：** 模型生成的completion的选择列表。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                       |
| usage   | UsageInfo                          | **参数解释：** 该对话请求的Token用量信息。该参数可以帮助用户了解和控制模型的使用情况，避免超出Tokens限制。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
表18ChatCompletionResponseStreamChoice 
| 参数            | 参数类型         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| index         | Integer      | **参数解释：** 该completion在模型生成的completion的选择列表中的索引。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| finish_reason | String       | **参数解释：** 模型停止生成token的原因。 **约束限制：** 不涉及 **取值范围：** \[stop, length, content_filter, tool_calls, insufficient_system_resource\] - stop：模型自然停止生成，或遇到stop序列中列出的字符串。  - length ：输出长度达到了模型上下文长度限制，或达到了max_tokens的限制。  - content_filter：输出内容因触发过滤策略而被过滤。  - tool_calls：模型决定调用外部工具（函数/API）来完成任务。  - insufficient_system_resource：系统推理资源不足，生成被打断。   **默认取值：** 不涉及 |
| delta         | DeltaMessage | **参数解释：** V2推理接口流式返回的一个completion增量。 V1推理接口返回体不包含此参数。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| message       | DeltaMessage | **参数解释：** V1推理接口流式返回的一个completion增量。 V2推理接口返回体不包含此参数。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
表19DeltaMessage 
| 参数                | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| role              | String | **参数解释：** 产生这条消息的角色。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                      |
| content           | String | **参数解释：** completion增量的内容。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及            |
| reasoning_content | String | **参数解释：** 内容为最终答案之前的推理内容（模型的思考过程）。 **约束限制：** 仅适用于支持思考过程的模型。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
表20UsageInfo 
| 参数                | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| prompt_tokens     | Integer | **参数解释：** 用户输入的提示词及默认人设的Token数。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| completion_tokens | Integer | **参数解释：** 推理服务返回结果的Token数。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                  |
| total_tokens      | Integer | **参数解释：** 总消耗Token数。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                          |
   
表21流式输出的数据单元（输出内容未审核通过） 
| 参数                | 参数类型                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| suggestion        | String                                                 | **参数解释：** 审核结果：block表示未通过。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                     |
| reply             | String                                                 | **参数解释：** 兜底回复：审核未通过时兜底回复为有效回复，兜底策略。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                         |
| moderation_type   | String                                                 | **参数解释：** 内容审核拦截类型，请求参数show_result设为true，且盘古护栏拦截时返回。包含以下属性： question：用户提问。 answer：模型回答。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| moderation_result | [moderationResp] | **参数解释：** 盘古护栏审核拦截详情。请求参数show_result设为true，且盘古护栏拦截时返回。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                           |
   
**状态码： 400**
接口报错的场景下，V1推理接口返回的报错信息符合华为云规范；V2推理接口则会对外透传推理服务返回的错误信息，通常符合OpenAi接口格式。
表22响应Body参数 
| 参数         | 参数类型           | 描述                           |
|:---|:---|:---|
| error_msg  | String         | 错误信息。                        |
| error_code | String         | 错误码。                         |
| details    | List\<Object\> | 推理服务返回的报错信息，具体的格式、内容取决于推理服务。 |
   
表23V2推理接口响应错误信息Body参数 
| 参数    | 参数类型                                             | 描述    |
|:---|:---|:---|
| error | [ErrorResp] | 错误信息。 |
| id    | String                                           | 请求ID。 |
   
 表24ErrorResp 
| 参数      | 参数类型   | 描述    |
|:---|:---|:---|
| code    | String | 错误码。  |
| type    | String | 错误类型。 |
| message | String | 错误详情。 |
   
#### 请求示例
接口URL与消息头：
```
V1推理接口：
POST https://mastudio.cn-southwest-2.myhuaweicloud.com/v1/{project_id}/deployments/{deployment_id}/chat/completions 
Request Header:   
Content-Type: application/json   
X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...      
V2推理接口：
POST https://mastudio.cn-southwest-2.myhuaweicloud.com/api/v2/chat/completions
Request Header:   
Content-Type: application/json   
Authorization: Bearer 201ca68f-45f9-4e19-8fa4-831e...
```
请求体示例：
```
{
    "temperature": 0.5,
    "model": "pangu-mm-m2-img2txt-12k", // 仅V2接口需要此参数
    "messages": [
        {
            "role":"user", // 仅V2接口需要此参数
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAA......qVKgqkf/Z"
                    }
                },
                {
                    "type": "text",
                    "text": "图中有什么？"
                }
            ]
        }
    ],
    "presence_penalty": 0.5,
    "frequency_penalty": 0.5,
    "max_tokens": 2048,
    "stream": false
}
```
多轮问答请求示例：
```
{
    "temperature": 0.5,
    "model": "pangu-mm-m2-img2txt-12k", // 仅V2接口需要此参数
    "messages": [
        {
            "role":"user", // 仅V2接口需要此参数
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAA......qVKgqkf/Z"
                    }
                },
                {
                    "type": "text",
                    "text": "图中有什么？"
                }
            ]
        },
        {
            "role":"assistant", // 仅V2接口需要此参数
            "content": [
                {
                    "type": "text",
                    "text": "这是一张飞机在天空中飞行的图片。它显示了飞机及其翼展和发动机的大小,以及它所穿越的空气量。这架飞机是一架喷气式战斗机,机身颜色为黑色,机头有一个大螺旋桨。背景中的云层表明飞机正在接近高空,很可能是在航程的中间。"
                }
            ]
        },
        {
            "role":"user", // 仅V2接口需要此参数
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAA......qVKgqkf/Z"
                    }
                },
                {
                    "type": "text",
                    "text": "这张图与第一张图有什么差异？"
                }
            ]
        }
    ],
    "presence_penalty": 0.5,
    "frequency_penalty": 0.5,
    "max_tokens": 2048,
    "stream": false
}
```
#### 响应示例
**状态码： 200**
非流式问答响应示例：
```
{
    "id": "chat-38ea6118a5d14e38b7d592211bbd31a6",
    "object": "chat.completion",
    "created": 1749894390,
    "model": "pangu-mm-m2-img2txt-12k",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "reasoning_content": null,
                "content": "这是一张飞机在天空中飞行的图片。它显示了飞机及其翼展和发动机的大小,以及它所穿越的空气量。这架飞机是一架喷气式战斗机,机身颜色为黑色,机头有一个大螺旋桨。背景中的云层表明飞机正在接近高空,很可能是在航程的中间。",
                "tool_calls": [
                ]
            },
            "logprobs": null,
            "finish_reason": "stop",
            "stop_reason": null
        }
    ],
    "usage": {
        "prompt_tokens": 3189,
        "total_tokens": 3236,
        "completion_tokens": 47
    },
    "prompt_logprobs": null
}
```
流式问答响应示例：
```
V1推理接口响应：
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":null,"message":{"role":"assistant"}}],"usage":{"prompt_tokens":64,"total_tokens":64,"completion_tokens":0}}
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":null,"message":{"content":"在这"}}],"usage":{"prompt_tokens":64,"total_tokens":65,"completion_tokens":1}}
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":"stop","stop_reason":null,"message":{"content":"张"}}],"usage":{"prompt_tokens":64,"total_tokens":73,"completion_tokens":2}}
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":"stop","stop_reason":null,"message":{"content":"图片"}}],"usage":{"prompt_tokens":64,"total_tokens":73,"completion_tokens":3}}
......
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[],"usage":{"prompt_tokens":64,"total_tokens":73,"completion_tokens":9}}
event:{"usage":{"completionTokens":9,"promptTokens":64,"totalTokens":73},"tokens":64,"token_number":9}
data:[DONE]
V2推理接口响应：
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":null,"delta":{"role":"assistant"}}],"usage":{"prompt_tokens":64,"total_tokens":64,"completion_tokens":0}}
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":null,"delta":{"content":"在这"}}],"usage":{"prompt_tokens":64,"total_tokens":65,"completion_tokens":1}}
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":"stop","stop_reason":null,"delta":{"content":"张"}}],"usage":{"prompt_tokens":64,"total_tokens":73,"completion_tokens":2}}
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[{"index":0,"logprobs":null,"finish_reason":"stop","stop_reason":null,"delta":{"content":"图片"}}],"usage":{"prompt_tokens":64,"total_tokens":73,"completion_tokens":3}}
......
data: {"id":"chat-59170add0fd1427bbca0388431058d45","object":"chat.completion.chunk","created":1745725837,"model":"pangu-mm-m2-img2txt-12k","choices":[],"usage":{"prompt_tokens":64,"total_tokens":73,"completion_tokens":9}}
event:{"usage":{"completionTokens":9,"promptTokens":64,"totalTokens":73},"tokens":64,"token_number":9}
data:[DONE]
```
#### 状态码
请参见[状态码](https://support.huaweicloud.com/api-pangulm/pangulm_05_0019.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-pangulm/pangulm_05_0020.html)。
