You need to enable JavaScript to run this app.
导航
Bot API V2
最近更新时间:2024.12.04 21:20:39首次发布时间:2024.05.21 19:37:17

注意

即将下线,请用新版API/SDK,详细请参见火山方舟 SDK V1/V2下线公告及迁移指引

前提条件

  1. 获取签名,请参考 GetApiKey,也可以通过 ApiExploxer 进行交互式请求
    1. 请求参数参考:

      参数

      参考值

      备注

      ResourceType

      bot

      ResourceIds

      ["bot-xxx"]

      智能体的 bot id

      DurationSeconds

      21600

      apikey有效时间;单位s,最大30day

API Host

  • 华北2:ark.cn-beijing.volces.com

API Specification

Chat

POST /api/v2/bots/${bot_id}/chat

Input

一级字段

子字段

类型

描述

是否必填

messages

list

消息是列表形式,依次记录了消息聊天上下文(第一个是最早的对话,最后一个是最新的对话)。

  • 在控制台上填写的 system prompt 放在第一个 message,如果请求期间仍然有 system prompt,那么会按照控制台、请求的顺序拼接。

role

string

消息角色,目前支持system/user/assistant

content

string

消息内容。

stream

boolean

是否流式返回。默认false,如果为 true,则按 SSE (Server-Sent Events) 协议返回数据

parameters

object

模型调用的可选参数。

  • 参数会在全部模型调用阶段生效。

max_new_tokens/max_tokens

integer

用于限制生成文本中新添加的 token 数量。可以控制生成回答的长度以避免生成过长的文本。

temperature

number

采样温度,(0, 1]。控制采样的随机性。较高的温度值会增加采样的随机性,使生成的回答更加多样化。较低的温度值会减少采样的随机性,使生成的回答更加确定性。

top_p

number

控制采样的选择范围。指定一个介于 0 到 1 之间的值 p,模型将从概率分布中累计概率超过 p 的标记中进行采样,以确保采样的选择范围不会过宽。

top_k

integer

控制采样的选择范围。指定一个值 k,模型将只从概率分布的前 k 个最高概率的标记中进行采样。

repetition_penalty/frequency_penalty

number

控制生成回答时对重复内容进行惩罚的参数。值更大时,模型在生成回答时会更倾向于避免重复使用之前已经生成过的内容,从而鼓励模型生成更多新颖和多样化的内容。

logprobs

integer

用于指示是否返回生成回答的对数概率值。返回对数概率值可以用于分析和评估模型生成的回答。返回概率最高的logprobs个候选项。

logit_bias

map<string,number>

修改在chat中出现指定标记的可能性,token id使用tokenization接口获取

extra

map<string,string>

额外参数

  • "user_info": "{"city":"北京","district":"海淀区"}"
    • city: 用户所在城市信息
    • district: 用户所在区域信息
  • "emit_intention_signal_extra": "true"
    • 需要中途返回intention状态
    • 如果触发意图识别需要检索,会返回 "正在搜索"

Output

一级字段

子字段

类型

描述

req_id

string

请求 id

choices

list

模型输出的选项列表,目前固定长度为 1。

message.role

string

模型输出的消息 role 固定为 assistant

message.content

string

模型输出的内容。

message.references

list

联网/知识库返回的引用列表信息
示例:

[
   {
      // 联网
      "url": "toutiao.cn", // 引用链接
      "idx": 0,             // 引用ID
      "logo_url": "",       //logo链接
      "mobile_url": "",       //移动端引用链接
      "site_name": "",      //网站名称
      "title": "",          // 标题
      "summary": "",       // 总结部分文本
      "pulish_time": ""
      "cover_image":{    //封面图片,结构体
          "url": "",
          "width": 30,
          "height": 30
      },
      "extra": {           // 非通用字段,如墨迹天气
          "aqi": "",
          "city": "",
          "condition": ""
      }

     // 知识库
    "collection_name": "", // 知识库唯一标识
    "doc_id": "14e45e289c817cbd0845a66bb5e27ae3",
    "doc_name": "abc",
    "doc_type": "文档类型",
    "doc_title": "文档首页/火山方舟大模型服务平台/用户指南/体验中心/体验中心介绍\n体验中心介绍",
    "chunk_id": "", // primary key,分片id
    "chunk_title": "chunk"
   }
]

finish_reason

string

结束原因:

  • stop表示正常生成结束
  • max_length表示已经到了制定的最大的 token 数量(max_new_tokens

logprobs.token_logprobs

list

选中的 token 概率列表

logprobs.tokens

list

选中的 token 列表

logprobs.top_logprobs

list

每个一个 token 的候选集,候选集必定包含选中的 token,因此可能是 logprobs+1。也可能小于logprobs,因为模型差异,不同的 token_id 可能解析成相同的字符。

usage(Opitonal)

object

该请求的用量统计信息。在 stream 模式下,只有最后一个输出片段才会记录 usage 内容。

model_usage[].prompt_tokens

integer

输入 prompt 的 token 数量。

model_usage[].completion_tokens

integer

模型输出的 token 数量。

model_usage[].total_tokens

integer

输入和输出的总的 token 数量。

model_usage[].name

string(optional)

ep名

action_usage[].search_count

integer
(optional)

搜索次数

action_usage[].name

str
(optional)

内容源名称

action_usage[].prompt_tokens

integer
(optional)

输入 prompt 的 token 数量。

action_usage[].completion_tokens

integer
(optional)

插件输出的 token 数量。

action_usage[].total_tokens

integer
(optional)

输入和输出的总的 token 数量。

error(optional)

object

如果没有错误,error 这个条目为空。
如果有错误,其余条目都为空,只有 error 条目。
详细的错误码可以参考:错误码

code

string

错误的代码

message

string

错误的信息

在 stream 模式下,基于 SSE (Server-Sent Events) 协议返回生成内容,每次返回结果为生成的部分内容片段:

  • 内容片段按照生成的先后顺序返回,完整的结果需要调用者拼接才能得到;
  • 如果流式请求开始时就出现错误(如参数错误),HTTP返回非200,方法调用也会直接返回错误;
  • 如果流式过程中出现错误,HTTP 依然会返回 200, 错误信息会在一个片段返回。

Error Code

错误码