字节笔记本字节笔记本

ERNIE-Speed-128K的相关API介绍和使用说明

2024-06-07

百度发布的ERNIE-Speed-128K模型API提供了高性能的语言处理能力,支持多种参数配置和鉴权方式,适用于多轮对话和流式接口,具有强大的文本生成和处理功能。

百度最新发布的高性能大语言模型ERNIE-Speed-128K的相关API介绍和使用说明。ERNIE Speed具有优异的通用能力,适合作为基座模型进行精调,特别适合处理特定场景问题,同时具备极佳的推理性能。ERNIE-Speed-128K是其中的一个版本。

API使用说明

请求地址

https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k

请求方式

POST

鉴权方式

API支持两种鉴权方式:

  1. 访问凭证access_token鉴权
  2. 基于安全认证AK/SK进行签名计算鉴权
  • Content-Type: application/json

根据不同鉴权方式,还需要以下参数:

  • x-bce-date: 当前时间,遵循ISO8601规范(可选,基于AK/SK鉴权方式)
  • Authorization: 用于验证请求合法性的认证信息(基于AK/SK鉴权方式)

Query参数

只有在使用access_token鉴权时需要:

  • access_token: 通过API Key和Secret Key获取的access_token

Body参数

  • messages: 聊天上下文信息,必须为奇数个成员,成员的role依次为userassistant
  • stream: 是否以流式接口的形式返回数据,默认false(可选)
  • temperature: 输出的随机性,默认0.95,范围(0, 1.0](可选)
  • top_p: 输出文本的多样性,默认0.7,范围[0, 1.0](可选)
  • penalty_score: 通过对已生成的token增加惩罚,减少重复生成,默认1.0,范围[1.0, 2.0](可选)
  • system: 模型人设,用于设定模型角色(可选)
  • stop: 生成停止标识,最多4个元素,每个元素长度不超过20字符(可选)
  • max_output_tokens: 指定模型最大输出token数,范围[2, 4096],默认4096(可选)
  • frequency_penalty: 通过对现有频率进行惩罚,减少重复生成,默认0.1,范围[-2.0, 2.0](可选)
  • presence_penalty: 通过惩罚已出现的token,增加新主题的可能性,默认0.0,范围[-2.0, 2.0](可选)
  • user_id: 最终用户的唯一标识符(可选)

响应说明

响应头参数

  • X-Ratelimit-Limit-Requests: 一分钟内允许的最大请求次数
  • X-Ratelimit-Limit-Tokens: 一分钟内允许的最大tokens消耗
  • X-Ratelimit-Remaining-Requests: 剩余可发送的请求数配额
  • X-Ratelimit-Remaining-Tokens: 剩余可消耗的tokens数配额

响应体参数

  • id: 本轮对话的id
  • object: 回包类型(如chat.completion
  • created: 时间戳
  • sentence_id: 当前子句的序号(流式接口模式下返回)
  • is_end: 当前子句是否是最后一句(流式接口模式下返回)
  • is_truncated: 当前生成的结果是否被截断
  • result: 对话返回结果
  • need_clear_history: 用户输入是否存在安全风险,是否关闭当前会话,清理历史会话信息
  • ban_round: 包含敏感信息的对话轮数
  • usage: token统计信息,包括prompt_tokenscompletion_tokenstotal_tokens

请求示例

获取access_token

curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]'

发起单轮对话请求

curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=[access_token]' -d '{
   "messages": [
    {"role":"user","content":"介绍一下北京"}
   ]
}' | iconv -f utf-8 -t utf-8

发起多轮对话请求

curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=[access_token]' -d '{
  "messages": [
     {"role":"user","content":"介绍一下北京"},
     {"role":"assistant","content":"北京,作为中国的首都和直辖市,是中国政治、文化、科技和国际交往的中心..."},
     {"role":"user","content": "北京有哪些著名景点"}
  ]
}' | iconv -f utf-8 -t utf-8

使用流式接口

curl -XPOST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=[access_token]' -d '{
  "messages": [
    {"role":"user", "content": "给我推荐一些自驾游路线"}
  ],
  "stream": true
}'

上述API请求示例中,需要替换相应的access_token、API Key和Secret Key,以及请求地址。

Body参数

名称 类型 必填 描述
messages List(message) 聊天上下文信息。说明: (1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话 (2)最后一个message为当前请求的信息,前面的message为历史对话信息 (3)必须为奇数个成员,成员中message的role必须依次为user、assistant (4)message中的content总长度和system字段总内容不能超过516096个字符,且不能超过126976 tokens
stream bool 是否以流式接口的形式返回数据,默认false
temperature float 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)默认0.95,范围 (0, 1.0],不能为0
top_p float 说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)默认0.7,取值范围 [0, 1.0]
penalty_score float 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)默认1.0,取值范围:[1.0, 2.0]
system string 模型人设,主要用于人设设定,例如:你是xxx公司制作的AI助手,说明:长度限制,message中的content总长度和system字段总内容不能超过516096个字符,且不能超过126976 tokens
stop List(string) 生成停止标识,当模型生成结果以stop中某个元素结尾时,停止文本生成。说明: (1)每个元素长度不超过20字符 (2)最多4个元素
max_output_tokens int 指定模型最大输出token数,说明: (1)如果设置此参数,范围[2, 4096] (2)如果不设置此参数,最大输出token数为4096
frequency_penalty float 正值根据迄今为止文本中的现有频率对新token进行惩罚,从而降低模型逐字重复同一行的可能性;说明:默认0.1,取值范围[-2.0, 2.0]
presence_penalty float 正值根据token记目前是否出现在文本中来对其进行惩罚,从而增加模型谈论新主题的可能性;说明:默认0.0,取值范围[-2.0, 2.0]
user_id string 表示最终用户的唯一标识符