POST https://ark.cn-beijing.volces.com/api/v3/context/chat/completions
调用本接口,向大模型发起带上下文缓存的请求。在发起之前,您需要调用ContextCreate-创建上下文缓存,创建上下文缓存,并获取到缓存的ID。
API使用教程请参见上下文缓存(Context API)概述。
注意
大部分字段与ChatCompletions-文本生成一致,除了下面参数:
messages
:不支持最后一个元素的role
设置为assistant
。如使用session 缓存(mode设置为session)传入最新一轮对话的信息,无需传入历史信息。tools
:目前上下文缓存不支持 tools 字段。context_id
:增加的字段,指定本次请求使用哪个上下文缓存。参数名称 | 类型 | 是否必填 | 默认值 | 描述 | 示例值 |
---|---|---|---|---|---|
model | String | 是 | - | 您创建的推理接入点 ID | ep-2024**-** |
context_id | String | 是 | 无 | 上下文缓存的ID,用于关联缓存的信息。 | ctx-xxx |
messages | Array of messages | 是 | - | 历史对话的信息。
| - |
stream | Boolean | 否 | false | 响应内容是否流式返回
| false |
stream_options | Array ofStreamOptionsParam | 否 | - | 流式响应的选项。仅当 | - |
max_tokens | Integer | 否 | 4096 | 注意
| 4096 |
stop | String or Array | 否 | - | 模型遇到 | ["你好", "天气"] |
frequency_penalty | Float | 否 | 0 | 频率惩罚系数。如果值为正,会根据新 token 在文本中的出现频率对其进行惩罚,从而降低模型逐字重复的可能性。取值范围为 [-2.0, 2.0]。 | 1 |
presence_penalty | Float | 否 | 0 | 存在惩罚系数。如果值为正,会根据新 token 到目前为止是否出现在文本中对其进行惩罚,从而增加模型谈论新主题的可能性。取值范围为 [-2.0, 2.0]。 | 1 |
temperature | Float | 否 | 1 | 采样温度。控制了生成文本时对每个候选词的概率分布进行平滑的程度。取值范围为 [0, 1]。当取值为 0 时模型仅考虑对数概率最大的一个 token。 | 0.8 |
top_p | Float | 否 | 0.7 | 核采样概率阈值。模型会考虑概率质量在 | 0.8 |
logprobs | Boolean | 否 | false | 是否返回输出 tokens 的对数概率。
| false |
top_logprobs | Integer | 否 | 0 | 指定每个输出 token 位置最有可能返回的 token 数量,每个 token 都有关联的对数概率。仅当 | 2 |
logit_bias | Map<String, Integer> | 否 | - | 调整指定 token 在模型输出内容中出现的概率,使模型生成的内容更加符合特定的偏好。 | |
|
|
|
| 暂时不支持。 | - |
参数名称 | 子字段 | 类型 | 描述 |
---|---|---|---|
id | - | String | 一次 chat completion 接口调用的唯一标识。 |
choices | - | Array | 本次 chat 结果列表。长度固定为 1。 |
index | Integer | 该元素在 choices 列表的索引。 | |
message | Object | 模型输出的消息内容。 | |
finish_reason | String | 模型生成结束原因:
| |
logprobs | Object | 该输出结果的概率信息,其只有一个
| |
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 | prompt_tokens中命中上下文缓存的tokens数。需要开通上下文缓存功能,并创建缓存才会启用。
|
字段 | 子字段 | 类型 | 描述 |
---|---|---|---|
id | - | String | 一次 chat completion 接口调用的唯一标识,一次流式调用所有的 chunk 有相同的 id。 |
choices | - | Array | 结果列表。长度固定为 1。如果设置了 |
index | Integer | 该元素在 choices 列表的索引。 | |
delta | Object | 由流式模型响应的模型输出增量,示例如下。
| |
finish_reason | String | 模型生成结束原因, | |
logprobs | Object | 该输出结果的概率信息,其只有一个 content 字段,类型为 array,表示 message 列表中每个元素 content token 的概率信息,content 元素子字段说明如下:
| |
created | - | Integer | 本次对话生成时间戳(秒)。 |
model | - | String | 实际使用的模型名称和版本。 |
object | - | String | 固定为 chat.completion.chunk。 |
usage | - | Object | 本次请求的 token 用量。 |
prompt_tokens | Integer | 本次请求中输入的 token 数量。 | |
completion_tokens | Integer | 模型生成的 token 数量。 | |
total_tokens | Integer | 总的 token 数量。 | |
prompt_tokens_details | Object | prompt_tokens中命中上下文缓存的tokens数。
|
curl --location 'https://ark.cn-beijing.volces.com/api/v3/context/chat/completions' \ --header 'Authorization: Bearer <YOUR_API_KEY>' \ --header 'Content-Type: application/json' \ --data '{ "context_id": "<YOUR_CONTEXT_ID>", "model": "<YOUR_ENDPOINT_ID>", "messages":[ { "role":"user", "content": "你好" } ] }'
{ "id": "123xxxabc", "object": "chat.completion", "created": 1677652288, "model": "ep-xxx", "choices": [{ "index": 0, "message": { "role": "assistant", "content": "我是李雷", }, "logprobs": null, "finish_reason": "stop" }], "usage": { "prompt_tokens": 28, "completion_tokens": 5, "total_tokens": 33, "prompt_tokens_details": { "cached_tokens": 18 } }
本接口调用失败的返回结构和参数释义请参见返回结构文档。
本接口错误码请参见公共错误码文档。
状态码 | 错误类型 | 错误码 | 错误信息 | 含义 |
---|---|---|---|---|
403 | Forbidden | OperationDenied.InvalidState | The specified context is in invalid state: InProgress.Request ID: {id} | 请求所关联的Context ID处于非空闲状态,不可调用。 |