更新时间:2024-12-11 GMT+08:00
分享

文本对话

功能介绍

调用大语言模型推理服务,根据用户问题,获取大语言模型的回答。

URI

POST https://aiae.appstage.myhuaweicloud.com/v1/chat/completions

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

Authorization

String

AI原生应用引擎鉴权API Key。

1.以管理员身份登录AI原生应用引擎工作台,在左侧导航栏选择“系统管理 > 平台租户鉴权”。

2.在“平台租户鉴权”页面,选择“平台API Key”页签,单击“新增平台API Key”。

3.在“新增平台API Key”对话框中的输入框设置API Key名称,用以区分API Key。

4.在弹出的下载窗口中单击“立即下载”,将API Key下载到本地查看。

5.为API Key添加“Bearer”前缀,得到标准鉴权信息(格式为:Bearer sk-xxxx)。

表2 请求Body参数

参数

是否必选

参数类型

描述

messages

Array of ChatCompletionRequestMessage objects

文本对话消息体类。

model

String

模型服务调用唯一id字段。平台定义了4种模型服务:

  • 平台预置模型服务

    • 登录AI原生应用引擎,在左侧导航栏选择“资产中心 > 大模型”,查看支持的模型服务。例如调用chatglm3-6b,model填写为platform:chatglm3-6b。

  • 平台接入模型服务

    • 登录AI原生应用引擎,在左侧导航栏选择“资产中心 > 大模型”,查看支持的模型服务。例如调用Baichuan2-Turbo模型服务,model填写为Baichuan2-Turbo即可。

  • 租户部署模型服务

    • 登录AI原生应用引擎,在左侧导航栏选择“模型中心 > 我的模型服务 > 我部署的”,model填写为对应模型服务的模型服务调用ID。

  • 租户接入模型服务

    • 登录AI原生应用引擎,在左侧导航栏选择“模型中心 > 我的模型服务 > 我接入的”,model填写为对应模型服务的模型服务调用ID。

frequency_penalty

Number

介于-2.0和2.0之间的数字。

正值会根据文本中新Token的现有频率对其进行惩罚,从而降低模型重复相同行的可能性。

logit_bias

Map<String,Integer>

该参数接受一个JSON对象,将标记映射到从-100(禁止)到100(独占选择标记)的关联偏差值。

像-1和1这样的适度值将以较小的程度改变选择标记的概率。

使用logit_bias参数时,偏差被添加到模型生成的logits之前进行抽样。

max_tokens

Integer

返回体允许的最大token数。

n

Integer

返回体中包含的chatCompletionChoice数量,建议默认设置为1,最大限度地降低成本。

presence_penalty

Number

介于-2.0和2.0之间的数字。

正值会根据它们是否出现在文本中来惩罚得到新的Token,从而增加模型谈论新主题的可能性。

stream

Boolean

布尔类型。

  • 设为true时,返回结果为流式;

  • 设为false时,返回结果为JSON格式结构化数据。

temperature

Number

较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定。

建议该参数和top_p只设置1个。

top_p

Number

影响输出文本的多样性,取值越大,生成文本的多样性越强。

建议该参数和temperature只设置1个。

tools

FunctionCallTool object

可供模型调用的工具。目前仅如下模型支持此功能:

  • glm-4

  • glm-3-turbo

  • moonshot-v1-8k

  • moonshot-v1-32k

  • moonshot-v1-128k

  • spark-general-v3.5

tool_choice

String

用于控制模型是如何选择要调用的函数,仅当工具类型为function时补充。

默认为auto,且当前仅支持auto。

content_security_verify

ContentSecurityVerify object

控制是否开启内容审核。

表3 ChatCompletionRequestMessage

参数

是否必选

参数类型

描述

content

String

消息具体内容。

role

String

消息体对应的角色。

如果是系统则为system。

如果是用户则为user。

name

String

对话参与者的可选名称,提供给模型信息以区分相同角色的不同对话参与者。

表4 FunctionCallTool

参数

是否必选

参数类型

描述

type

String

调用工具类型,目前仅支持function。

function

function object

仅当工具类型为function时补充。

表5 function

参数

是否必选

参数类型

描述

name

String

函数名称,只能包含a-z,A-Z,0-9,下划线和中横线。

最大长度限制为64。

description

String

用于描述函数功能。

模型会根据这段描述决定函数调用方式。

parameters

Object

Json Schema对象,用于定义函数所接受的参数。

表6 ContentSecurityVerify

参数

是否必选

参数类型

描述

is_response_verify

Boolean

是否开启返回体内容审核(默认不开启)。

有文本内容,则对文本进行内容审核;

有图片内容,则会对图片进行内容审核。

响应参数

状态码: 200

表7 响应Body参数

参数

参数类型

描述

id

String

文本对话唯一标识符。

choices

Array of choices objects

返回体列表。

如果‘n’大于1,则结果为多个。

created

Integer

问答发生的时间(格式为时间戳)。

model

String

实际转发后调用的模型名称,与请求体中model可能不同。

object

String

固定值‘chat.completion’。

usage

CompletionUsage object

文本对话用量统计。

表8 choices

参数

参数类型

描述

finish_reason

String

返回结束的原因。

  • stop:模型达到自然停止点或提供的停止序列;

  • length:达到请求中指定的最大令牌数;

  • content_filter:由于内容过滤器的标志而省略了内容。

index

Integer

返回多个choices时,每个choice对应的顺序。

message

ChatCompletionResponseMessage object

模型服务返回的具体消息体内容。

表9 ChatCompletionResponseMessage

参数

参数类型

描述

content

String

返回消息体的内容。

role

String

返回消息体的角色。

表10 CompletionUsage

参数

参数类型

描述

completion_tokens

Integer

回答包含的token数。

prompt_tokens

Integer

提问包含的token数。

total_tokens

Integer

提问+回答token总数。

状态码: 500

表11 响应Body参数

参数

参数类型

描述

error

Error object

异常详情。

error_code

String

平台异常错误码。

error_msg

String

异常信息。

表12 Error

参数

参数类型

描述

code

String

异常码。

message

String

异常信息。

param

String

异常参数,暂未使用。

type

String

异常类型,同code。

请求示例

{
  "model" : "publisher:baichuan:Baichuan2-Turbo",
  "messages" : [ {
    "role" : "system",
    "content" : "You are a helpful assistant."
  }, {
    "role" : "user",
    "content" : "你好!"
  } ]
}

响应示例

状态码: 200

OK

{
  "created" : 1718772336,
  "usage" : {
    "completion_tokens" : 23,
    "prompt_tokens" : 45,
    "total_tokens" : 68
  },
  "model" : "Baichuan2-Turbo",
  "id" : "chatcmpl-xxx",
  "choices" : [ {
    "finish_reason" : "stop",
    "index" : 0,
    "message" : {
      "role" : "assistant",
      "content" : "你好,有什么我可以帮助你的吗?"
    },
    "logprobs" : null
  } ],
  "object" : "chat.completion"
}

状态码: 500

服务器内部错误或三方服务器内部错误。

{
  "error" : {
    "message" : "Internal server error, please try again later!",
    "type" : "internal_error",
    "param" : null,
    "code" : "internal_error"
  },
  "error_code" : "AIAE.31001001",
  "error_msg" : "Internal server error, please try again later!"
}

状态码

状态码

描述

200

OK

500

服务器内部错误或三方服务器内部错误。

错误码

请参见错误码

相关文档