You need to enable JavaScript to run this app.
导航
chat_completions(新)
最近更新时间:2024.11.05 11:09:32首次发布时间:2024.09.29 16:15:33

本节将说明如何基于多轮历史对话,使用大语言模型进行回答生成

概述

/api/knowledge/chat/completions 接口用于向大模型发起一次对话请求,与新升级的search_knowledge接口联通,可以完成标准的检索生成链路。
本接口对 Doubao 大模型 chat/completions 接口全面兼容。

前提条件
  • 知识库创建完成。
  • 文档导入且处理完成。
  • 完成“对接指南“页面的注册账号、实名认证、AK/SK 密钥获取和签名获取后,可调用 API 接口实现知识库的检索查询等功能。
  • 进行本地 prompt 组装拼接

请求接口

URI

/api/knowledge/chat/completions

统一资源标识符

请求方法

POST

客户端对向量数据库服务器请求的操作类型

请求头

Content-Type: application/json

请求消息类型

Authorization: HMAC-SHA256 ***

鉴权

请求参数

参数

子参数

类型

是否必选

默认值

参数说明

model

--

String

Doubao-pro-32k

想要用于在线生成的大语言模型

  • 当指定为 doubao 系列模型时默认使用系统的公共推理接入点,适合调试场景,有 tpm 限流
  • 或指定为在方舟上创建的推理接入点 ID,适合生产场景,tpm 配置可在创建推理接入点时自行调整

公共推理接入点 doubao 系列模型可选范围:

  • Doubao-pro-4k
  • Doubao-pro-32k**(默认值)**
  • Doubao-pro-128k
  • Doubao-lite-4k
  • Doubao-lite-32k
  • Doubao-lite-128k

私有推理接入点 ID 形如:

  • ep-202406040*****-*****

messages

--

json

多轮对话信息
发出消息的对话参与者角色,可选值包括:

  • system:System Message 系统消息
  • user:User Message 用户消息
  • assistant:Assistant Message 对话助手消息
[
    {"role": "system", "content": "你是一个智能助手。"},
    {"role": "user", "content": "你好"},
    {"role": "assistant", "content": "你好!有什么我可以帮助你的?"}
]

stream

--

Boolean

False

响应内容是否流式返回

  • false:模型生成完所有内容后一次性返回结果
  • true:按 SSE 协议逐块返回模型生成内容,并以一条 data: [DONE] 消息结束

max_tokens

--

Integer

4096

模型可以生成的最大 token 数量
取值范围为 [0, 4096]。输入 token 和输出 token 的总长度还受模型的上下文长度限制。

temperature

--

Float

0.1

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

响应消息

参数

参数说明

code

状态码

message

返回信息

request_id

标识每个请求的唯一标识符

data

模型回答与token用量统计

data返回值

字段

子字段

字段类型

说明

generated_answer

--

string

大模型回答

usage

--

string

token用量统计

状态码说明

状态码

http状态码

返回信息

状态码说明

0

200

success

成功

1000001

401

unauthorized

缺乏鉴权信息

1000002

403

no permission

权限不足

1000003

400

invalid request:%s

非法参数

完整示例

请求消息

curl -i -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: HMAC-SHA256 ***' \
  https://api-knowledgebase.mlp.cn-beijing.volces.com/api/knowledge/chat/completions \
  -d '{
        request_params = {
        "model": "Doubao-pro-32k",
        "max_tokens": 4096,
        "temperature": 0.1,
        "messages": [
                {
                    "role": "system",
                    "content": "prompt template"
                },
                {
                    "role": "user",
                    "content": "history content"
                }
                {
                    "role": "assistannt",
                    "content": "history content"
                },
                {
                    "role": "user",
                    "content": "history content"
                },
                ...
           
                {
                    "role": "assistannt",
                    "content": "history content"
                }
                
            ],
        "stream":False,
        "return_token_usage": True
    }
    }
  }
}'

响应消息

执行成功返回:

HTTP/1.1 200 OK
Content-Length: 209
Content-Type: application/json

{
    "code": 0,
    "data": {##大模型返回结果,包含回答与token用量详情
        "generated_answer": "HNSW(Hierarchical Navigable Small World)是一种用于高效近似最近邻搜索的数据结构和算法。\n\n它具有以下特点和优势:\n1. **高效性**:能够在大规模数据集中快速找到近似最近邻。\n2. **可扩展性**:适用于处理海量数据。\n3. **准确性**:提供相对准确的最近邻搜索结果。\n4. **层次结构**:通过构建层次结构来加速搜索过程。\n5. **小世界特性**:利用数据的局部性和相似性,提高搜索效率。\n\nHNSW 在许多领域有广泛的应用,例如:\n1. **图像检索**:快速找到相似的图像。\n2. **推荐系统**:推荐相关的产品或内容。\n3. **数据挖掘**:发现相似的数据点。\n4. **机器学习**:在特征空间中进行相似性搜索。\n\n总之,HNSW 是一种强大的工具,用于解决大规模数据集中的最近邻搜索问题。",
        "usage": "{\"prompt_tokens\":13,\"completion_tokens\":217,\"total_tokens\":230}\n"
    },
    "message": "success",
    "request_id": "02172742276364600000000000000000000ffff0a00406fa14e0d"
    
}

执行失败返回:

HTTP/1.1 400 OK
Content-Length: 43
Content-Type: application/json
 
{"code":1000003, "message":"invalid request:%s", "request_id": "021695029757920fd001de6666600000000000000000002569b8f"}