UNPKG

@re-ai/volc-knowledge

Version:

火山引擎知识库接口接入SDK

212 lines (203 loc) 10 kB
# 知识库在线检索接口文档 ## 一接口概述 `/api/knowledge/collection/search_knowledge`接口用于对已创建的知识库进行检索及前后处理,默认对原始文本加工后的知识内容检索相比原`search`接口,支持多轮改写文档聚合排序等新功能,可与`chat_completions`接口联动实现标准检索生成链路 ## 二前提条件 1. 完成知识库创建 2. 完成文档导入且处理完毕 3. 在“签名鉴权方式”页面完成注册账号实名认证AK/SK密钥获取和签名获取 ## 三请求接口 |参数|详情|描述| |---|---|---| |URI|`/api/knowledge/collection/search_knowledge`|统一资源标识符| |请求方法|POST|客户端对向量数据库服务器请求的操作类型| |请求头|`Content-Type: application/json`<br>`Authorization: HMAC-SHA256 ***`|请求消息类型<br>鉴权| ## 四请求参数 |参数|子参数|类型|是否必选|默认值|参数说明| |---|---|---|---|---|---| |name|--|string||--|知识库名称,由英文字母数字下划线组成,以英文字母开头,不能为空,长度在1 - 64之间| |project|--|string||default|知识库所属项目,在访问控制】-【资源管理】-【项目中创建| |resource_id|--|string||--|知识库唯一id,可单独传该参数,或同时传name和project作为唯一标识| |query|--|string||--|检索文本,最大输入长度80008000接口报错;小于所选embedding模型输入最大长度且大于8000时自动截断;小于模型输入最大长度时正常检索| |limit|--|int||10|检索结果数量,取值范围为1 - 200| |query_param|--|json||--|检索的过滤和返回设置| |doc_filter|map||--|检索过滤条件,支持对doc的meta信息过滤,使用方式和支持字段见filter表达式,可筛选doc_id,需在创建知识库时将过滤字段添加到index_config的fields中| |dense_weight|--|float||0.5|混合检索中稠密向量的权重,取值范围0.2 - 11表示纯稠密检索,0表示纯字面检索,仅在索引算法为hnsw_hybrid时有效| |pre_processing|--|json||--|检索预处理| |need_instruction|--|bool||False|是否拼接instruction进行检索| |rewrite|--|bool||False|是否对query进行改写(仅改写非首轮问题)| |return_token_usage|--|bool||False|是否返回search流程中各阶段的token使用量| |messages|--|json|开启改写时必选|--|多轮对话信息,根据历史对话内容改写问题,参与者角色包括systemuserassistant| |post_processing|--|json||--|检索后处理| |rerank_switch|--|bool||False|是否自动对结果做rerank,开启后自动请求rerank模型排序| |retrieve_count|--|int||25|进入重排的切片数量,仅在rerank_switch为True时生效,需大于等于limit,否则报错| |chunk_diffusion_count|--|int||0|检索阶段返回命中文本片上下几片文本片,取值范围0 - 50表示不进行chunk diffusion| |chunk_group|--|bool||False|文本聚合,默认不聚合,非结构化文件可开启,开启后按文档及顺序对切片重新聚合排序返回| |rerank_model|--|string||`"m3-v2-rerank"`|rerank模型选择,仅在rerank_switch为True时生效,可选`"m3-v2-rerank"`(轻量小模型,多语言能力强,推理速度快)| |rerank_only_chunk|--|bool||False|是否仅根据chunk内容计算重排分数,True为只根据chunk内容计算,False为根据chunk title + 内容一起计算| |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|prompt_tokens<br>completion_tokens<br>total_tokens|int|检索向量化阶段的token用量| |rerank_token_usage|--|int|在重排阶段的token用量| |rewrite_token_usage|--|int|query改写的token用量| |result_list|--|list|返回切片信息| |id|--|string|索引的主键| |content|--|string|切片内容(非结构化文件为切片内容;faq文件为答案;结构化文件为参与索引的字段和取值,以K:V对拼接,用\n区隔)| |score|--|float|检索得分| |point_id|--|string|切片id| |chunk_title|--|string|切片的标题| |chunk_id|--|int|chunk的id| |process_time|--|int|检索耗时| |rerank_score|--|float|重排得分| |doc_info|doc_id<br>doc_name<br>create_time<br>doc_type<br>doc_meta<br>source<br>title|string/int|文档信息(文档id名字创建时间类型元信息来源标题)| |recall_position|--|int|检索召回位次| |rerank_position|--|int|重排位次| |table_chunk_fields|field_name<br>field_value|string|结构化数据检索返回单行全量数据(字段名称字段取值)| |original_question|--|string|faq数据检索召回答案对应的原始问题| |chunk_type|--|string|切片所属类型| |chunk_attachment|uuid<br>caption<br>type<br>link|string|检索召回附件(原始图片等)的临时下载链接(chunk_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不存在| ## 七完整示例 ### (一)请求消息 ```bash 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 } }' ``` ### (二)响应消息 1. **执行成功返回** ```json 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" } ``` 2. **执行失败返回** ```json HTTP/1.1 400 OK Content-Length: 43 Content-Type: application/json {"code":1000003, "message":"invalid request:%s", "request_id": "021695029757920fd001de6666600000000000000000002569b8f"} ```