本节将说明如何基于一个已创建的知识库做在线检索。
说明
/api/knowledge/collection/search_knowledge 接口用于对知识库进行检索和前后处理,当前会默认对原始文本加工后的知识内容进行检索。
URI | /api/knowledge/collection/search_knowledge | 统一资源标识符 |
---|---|---|
请求方法 | POST | 客户端对向量数据库服务器请求的操作类型 |
请求头 | Content-Type: application/json | 请求消息类型 |
Authorization: HMAC-SHA256 *** | 鉴权 |
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|---|---|---|---|---|
name | -- | string | 否 | 知识库名称
| |
project | -- | string | 否 | default | 知识库所属项目 |
resource_id | -- | string | 否 | -- | 知识库唯一 id |
query | -- | string | 是 | 检索文本,最大可输入长度为 8000:
| |
limit | -- | int | 否 | 10 | 检索结果数量
|
query_param | json | 否 | 检索的过滤和返回设置 | ||
doc_filter | map | 否 | 检索过滤条件,支持对 doc 的 meta 信息过滤
| ||
dense_weight | -- | float | 否 | 0.5 | 混合检索中稠密向量的权重 |
pre_processing | json | 检索预处理 | |||
need_instruction | bool | 否 | False | 是否拼接 instruction 进行检索 | |
rewrite | bool | 否 | False | 是否对 query 进行改写 | |
return_token_usage | bool | 否 | False | 是否返回 search 流程中各阶段的token使用量 | |
messages | json | 是 | 多轮对话信息
| ||
post_processing | json | 检索后处理 | |||
rerank_switch | bool | 否 | False | 自动对结果做 rerank | |
retrieve_count | int | 否 | 25 | 进入重排的切片数量,默认为 25 | |
chunk_diffusion_count | int | 否 | 0 | 检索阶段返回命中文本片上下几片文本片。 | |
chunk_group | bool | 否 | False | 文本聚合 | |
rerank_model | string | 否 | "m3-v2-rerank" | rerank 模型选择
| |
rerank_only_chunk | bool | 否 | False | 是否仅根据 chunk 内容计算重排分数
| |
get_attachment_link | bool | 否 | False | 是否获取切片中图片的临时下载链接 |
参数 | 参数说明 |
---|---|
code | 状态码 |
message | 返回信息 |
request_id | 标识每个请求的唯一标识符 |
data | 检索召回切片信息 |
data返回值
字段 | 子字段 | 字段类型 | 说明 |
---|---|---|---|
collection_name | -- | string | 检索知识库名字 |
count | -- | int | 检索返回的切片数量 |
rewrite_query | -- | string | 改写的 query |
token_usage | list | token 用量信息 | |
embedding_token_usage | 检索向量化阶段的 token 用量
| ||
rerank_token_usage | int | 在重排阶段的 token 用量 | |
result_list | list | 返回切片信息 | |
id | string | 索引的主键 | |
content | string | 切片内容 | |
score | float | 检索得分 | |
point_id | string | 切片id | |
chunk_title | string | 切片的标题 | |
chunk_id | int | chunk的id | |
process_time | int | 检索耗时 | |
rerank_score | float | 重排得分 | |
doc_info | list | 文档信息
| |
recall_position | int | 检索召回位次 | |
rerank_position | int | 重排位次 | |
table_chunk_fields |
| 结构化数据检索返回单行全量数据 | |
original_question | string | faq 数据检索召回答案对应的原始问题 | |
chunk_type | string | 切片所属类型 | |
chunk_attachment |
| 检索召回附件(原始图片等)的临时下载链接,chunk_type 为 image 时有效 |
table_chunk_fields 返回值
字段 | 字段类型 | 说明 |
---|---|---|
field_name | string | 结构化数据的表字段名称 |
field_value | -- | 结构化数据的表字段取值 |
chunk_attachment 返回值
字段 | 字段类型 | 说明 |
---|---|---|
uuid | string | 附件的唯一标识 |
caption | string | 图片所属标题,若未识别到标题则值为"\n" |
type | string | image 等 |
link | string | type 为 image 时表示图片的临时下载链接,有效期 10 分钟 |
状态码 | http状态码 | 返回信息 | 状态码说明 |
---|---|---|---|
0 | 200 | success | 成功 |
1000001 | 401 | unauthorized | 缺乏鉴权信息 |
1000002 | 403 | no permission | 权限不足 |
1000003 | 400 | invalid request:%s | 非法参数 |
1000005 | 400 | collection not exist | collection 不存在 |
curl -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: HMAC-SHA256 ***' \ https://api-knowledgebase.mlp.cn-beijing.volces.com/api/knowledge/collection/search_knowledge \ -d '{ "name": "your_collection", "query": "test", "limit": 2, "query_param" : {}, "dense_weight": 0.5, "pre_processing": { "need_instruction": True, "rewrite": True, "messages": [ { "role": "system", "content": "prompt template" }, { "role": "user", "content": "history content" } { "role": "assistant", "content": "history content" }, { "role": "user", "content": "history content" }, ... { "role": "assistant", "content": "history content" } ], "return_token_usage": True }, "post_processing": { "rerank_switch": False, "rerank_model": "m3-v2-rerank", "rerank_only_chunk": False, "retrieve_count": 25, "endpoint_id": "ep", "chunk_group": False, "get_attachment_link": False } } } }'
执行成功返回:
HTTP/1.1 200 OK Content-Length: 209 Content-Type: application/json { "code": 0, "data": { "collection_name": "example", "count": 2, "rewrite_query": "xxx", "token_usage": { "embedding_token_usage": { "prompt_tokens": 16, "completion_tokens": 0, "total_tokens": 16 }, "rerank_token_usage": 0 }, "result_list": [ { "id": "_sys_auto_gen_doc_id-13411829101044883689-15", "content": "content", "score": 0.2639991044998169, "point_id": "_sys_auto_gen_doc_id-13411829101044883689-15", "chunk_title": "title", "chunk_id": 15, "process_time": 1727333127, "doc_info": { "doc_id": "_sys_auto_gen_doc_id-13411829101044883689", "doc_name": "2404.08817v2.pdf", "create_time": 1727333117, "doc_type": "pdf", "doc_meta": "[{\"field_name\":\"doc_id\",\"field_type\":\"string\",\"field_value\":\"_sys_auto_gen_doc_id-13411829101044883689\"}]", "source": "tos_fe", "title": "title" }, "recall_position": 1, "chunk_type": "text" }, { "id": "_sys_auto_gen_doc_id-13411829101044883689-7", "content": "content", "score": 0.2583845257759094, "point_id": "_sys_auto_gen_doc_id-13411829101044883689-7", "chunk_title": "title", "chunk_id": 7, "process_time": 1727333127, "doc_info": { "doc_id": "_sys_auto_gen_doc_id-13411829101044883689", "doc_name": "2404.08817v2.pdf", "create_time": 1727333117, "doc_type": "pdf", "doc_meta": "[{\"field_name\":\"doc_id\",\"field_type\":\"string\",\"field_value\":\"_sys_auto_gen_doc_id-13411829101044883689\"}]", "source": "tos_fe", "title": "title" }, "recall_position": 2, "chunk_type": "text" } ] }, "message": "success", "request_id": "02172740884343900000000000000000000ffff0a00406f8a8861" }
执行失败返回:
HTTP/1.1 400 OK Content-Length: 43 Content-Type: application/json {"code":1000003, "message":"invalid request:%s", "request_id": "021695029757920fd001de6666600000000000000000002569b8f"}