You need to enable JavaScript to run this app.
导航
BatchChatCompletions-批量推理
最近更新时间:2025.01.24 18:59:26首次发布时间:2025.01.24 18:59:26
POST https://ark.cn-beijing.volces.com/api/v3/batch/chat/completions

本文介绍方舟的批量推理API的输入输出参数,可通过该接口,向大模型发起批量推理的请求。通过这种方式您可以享受到更高的限流配额,适合进行大批量数据处理时使用。

BatchChatCompletions接口参数除了不支持流式调用外,字段与接口ChatCompletions-文本生成一致。

鉴权方式

本接口支持 API Key 鉴权方式,详见鉴权认证方式

如果您需要使用Access Key来调用,可以使用接口来获取临时API Key,然后使用临时API Key进行鉴权。接口说明请参见GetApiKey - 获取临时API

使用建议

请参见参数说明及配置建议

请求参数

请求体

参数名称

类型

是否必填

默认值

描述

示例值

model

String

-

您创建的推理接入点(Endpoint)ID。
需配置支持批量推理的模型,具体请参见支持的模型

ep-bi-202406040*****-*****

messages

Array of MessageParam

-

由目前为止的对话组成的消息列表,包含用户输入的最后一条消息。

-

stream

Boolean

false

批量推理不支持流式返回。故该字段取值范围为:false

设置为true,接口会直接报错。

false

max_tokens

Integer

4096

配置模型最大回复的长度,超出长度的回复会进行截断。

注意

  • 模型回复最大长度(单位 token),取值范围各个模型不同,详细见模型列表
  • 输入 token 和输出 token 的总长度还受模型的上下文长度限制。

4096

stop

String or Array

-

模型遇到 stop 字段所指定的字符串时将停止继续生成,这个词语本身不会输出。最多支持 4 个字符串。

["你好", "天气"]

frequency_penalty

Float

-

频率惩罚系数。如果值为正,会根据新 token 在文本中的出现频率对其进行惩罚,从而降低模型逐字重复的可能性。取值范围为 [-2.0, 2.0]。

如果您希望模型表达方式更加丰富,可以将该值调高。

presence_penalty

Float

-

存在惩罚系数。如果值为正,会根据新 token 到目前为止是否出现在文本中对其进行惩罚,从而增加模型谈论新主题的可能性。取值范围为 [-2.0, 2.0]。

如果您希望模型表达内容更加丰富,可以将该值调高。

temperature

Float

1

采样温度。控制了生成文本时对每个候选词的概率分布进行平滑的程度。取值范围为 [0, 1]。
较高的值(如 0.8)会使输出更加随机,而较低的值(如 0.2)会使输出更加集中确定。
通常建议仅调整 temperaturetop_p 其中之一,不建议两者都修改。

0.8

top_p

Float

0.7

核采样概率阈值。模型会考虑概率质量在 top_p 内的 token 结果。取值范围为 [0, 1],取值越大生成的随机性越高,取值越低生成的确定性越高。
举例来说,当取值为 0.1 时,模型仅考虑按照概率大小排序前列(token按照概率由大到小排序,累加概率达到阈值10%,即top_p=0.1)的 token,随机取一个作为输出。
通常建议仅调整 temperaturetop_p 其中之一,不建议两者都修改。

0.8

logprobs

Boolean

false

是否返回输出 token 的对数概率。

  • false:不返回对数概率信息。
  • true:返回消息内容中每个输出 token 的对数概率。

false

top_logprobs

Integer

0

指定每个输出 token 位置最有可能返回的 token 数量,每个 token 都有关联的对数概率。仅当 logprobs: true 时可以设置 top_logprobs 参数,取值范围为 [0, 20]。

2

logit_bias

Map<String, Integer>

-

调整指定 token 在模型输出内容中出现的概率,使模型生成的内容更加符合特定的偏好。logit_bias 字段接受一个 map 值,其中每个键为词表中的 token ID(使用 tokenization 接口获取),每个值为该 token 的偏差值,取值范围为 [-100, 100]。
-1 会减少选择的可能性,1 会增加选择的可能性;-100 会完全禁止选择该 token,100 会导致仅可选择该 token。该参数的实际效果可能因模型而异。

{
    "1234": -100
}

-

tools

Array of ToolParam

-

模型可以调用的工具列表。目前,仅函数作为工具被支持。用这个来提供模型可能为其生成 JSON 输入的函数列表。

-

tool_choice

String or ToolChoiceParam

当没有工具时,默认为 none
如果存在工具,默认为 auto

控制模型调用哪个工具。

  • none :表示模型不会调用任何工具。
  • auto :表示模型可以调用工具,也可以不调用任何工具。
  • required 表示模型必须调用一个或多个工具。

可以通过 {"type": "function", "function": {"name": "my_function"}} 强制模型调用该工具。

-

数据结构

MessageParam

系统消息

参数名称

类型

是否必填

描述

role

String

发出该消息的对话参与者的角色,此处应设置为 system

content

String

系统消息
用于指定模型的角色或交代背景信息。如果设置系统消息,请放在messages列表的第一位。

[
  {
    "role": "system",
    "content": "You are a helpful assistant."
  }
]

用户消息

参数名称

子字段

类型

是否必填

描述

role

-

String

发出该消息的对话参与者的角色,此处应设置为 user

content

-

String

用户消息内容,文本生成模型仅支持 String 类型。

模型消息

参数名称

类型

是否必填

描述

role

String

发出该消息的对话参与者的角色,此处应设置为 assistant

content

String

模型的消息回复。
contenttool_calls参数二者至少填写其一。

[
  {
    "role": "assistant",
    "content": "Hello, can i help you with something?"
  }
]

tool_calls

Array of MessageToolCallParam

模型生成的工具调用。当 roleassistant 时,contenttool_calls 参数二者至少填其一。

tool_call_id

String

此消息所回应的工具调用 ID,当 roletool 时必填。

MessageToolCallParam

参数名称

子字段

类型

是否必填

默认值

描述

示例值

id

-

String

-

当前工具调用 ID

call_5y**********

type

-

String

-

工具类型,当前仅支持function

function

function

-

Object

-

模型需要调用的函数

-

name

String

-

模型需要调用的函数名称

get_current_weather

arguments

String

-

模型生成的用于调用函数的参数,JSON 格式。请注意,模型并不总是生成有效的 JSON,并且可能会虚构出一些您的函数参数规范中未定义的参数。在调用函数之前,请在您的代码中验证这些参数是否有效。

{"location": "Boston, MA"}

ToolParam

参数名称

子字段

类型

是否必填

默认值

描述

示例值

type

-

String

-

工具类型,当前仅支持 function

function

function

-

Array of Object

-

模型可以调用的工具列表。

-

name

String

-

函数的名称。

get_current_weather

description

String

-

对函数用途的描述,供模型判断何时以及如何调用该工具函数。

获取指定城市的天气信息

parameters

Object of ToolChoiceParam

-

函数请求参数,以 JSON Schema 格式描述。具体格式请参考 JSON Schema 文档。

{
    "type": "object",
    "properties": {
        "location": {
            "type": "string",
            "description": "城市,如:北京"
        }
    },
    "required": ["location"]
}

-

ToolChoiceParam

参数名称

子字段

类型

是否必填

默认值

描述

示例值

type

-

String

-

指定工具的类型,当前仅允许取值为 function

"function"

function

-

Object

-

当指定工具类型为 function 时,可以指定工具的名称。

-

name

String

-

想要调用的函数的名称。

-

响应参数

非流式调用

只支持非流式调用,不支持流式调用。

参数名称

子字段

类型

描述

id

-

String

一次 chat completion 接口调用的唯一标识。

choices

-

Array

本次 chat 结果列表。长度固定为 1。

index

Integer

该元素在 choices 列表的索引。

message

Object

模型输出的消息内容。

finish_reason

String

模型生成结束原因:

  • stop:正常生成结束。
  • length 触发最大 token 数量而结束。
  • content_filter :模型输出被内容审核拦截。

logprobs

Object

该输出结果的概率信息,其只有一个 content 字段,类型为 Array,表示 message 列表中每个元素 content token 的概率信息。
content 元素子字段说明如下:

  • token [String]: 对应 token。
  • logprob [Number]:token 的概率。
  • bytes [Array]:表示 token 的 UTF-8 字节表示的整数列表。在字符由多个 token 表示,并且它们的字节表示必须组合以生成正确的文本表示的情况下(表情符号或特殊字符)非常有用。如果 token 没有 byte 表示,则可以为空。
  • top_logprobs [Array]:最可能的 token 列表及其在此 token 位置的对数概率:
    • token [String]: 对应 token;
    • logprob [Number]:token 的概率;
    • bytes [Array]:表示 token 的 UTF-8 字节表示的整数列表。在字符由多个 token 表示,并且它们的字节表示必须组合以生成正确的文本表示的情况下(表情符号或特殊字符)非常有用。如果 token 没有 byte 表示,则可以为空。

moderation_hit_type

String

模型输出文字含有敏感信息时,会返回该字段,表示模型输出文字命中的风险分类标签。
当前返回值的取值范围:

  • severe_violation:模型输出文字涉及严重违规
  • violence:模型输出文字涉及激进行为

注意:只有在方舟控制台接入点配置页面或者 CreateEndpoint 接口中,将内容护栏方案(ModerationStrategy)设置为基础方案(Basic)时,才会返回风险分类标签。

created

-

Integer

本次对话生成的时间戳(秒)。

model

-

String

实际使用的模型名称和版本。

object

-

String

固定为 chat.completion。

usage

-

Object

本次请求的 token 用量。

prompt_tokens

Integer

本次请求中输入的 token 数量。

completion_tokens

Integer

模型生成的 token 数量。

total_tokens

Integer

总的 token 数量。

prompt_tokens_details

Object

本接口暂不支持上下文缓存,此时返回应为"cached_tokens": 0

prompt_tokens中命中上下文缓存的tokens数。需要模型支持,且开通上下文缓存功能,并创建缓存才会启用,详细见上下文缓存(Context API)概述

"prompt_tokens_details": {
    "cached_tokens": 0
    }

请求示例
curl https://ark.cn-beijing.volces.com/api/v3/batch/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <ARK_API_KEY>" \
-d '{
  "model":"<YOUR_BATCH_ENDPOINT_ID>",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "Hello!"
    }
  ]
}'

响应示例

因为是批量推理,可能会花费较长时间响应。

{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null,
            "message": {
                "content": "Hi! How are you doing today? ",
                "role": "assistant"
            }
        }
    ],
    "created": 1737712400,
    "id": "02173771227233356c18c****",
    "model": "doubao-pro-32k-241215",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 10,
        "prompt_tokens": 20,
        "total_tokens": 30,
        "prompt_tokens_details": {
            "cached_tokens": 0
        }
    }
}

错误处理

错误响应

本接口调用失败的返回结构和参数释义请参见返回结构文档。

错误码

错误码请参见公共错误码

相关文档

调用批量推理接入点:使用Batch chat 接口实现批量推理教程,建议阅读。