search_knowledge 用于对知识库进行检索和前后处理,当前会默认对原始文本加工后的知识内容进行检索。
| 参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
|---|---|---|---|---|---|
| collection_name | -- | string | 否 | -- | 知识库名称 |
project_name | -- | string | 否 | default | 知识库所属项目,获取方式参见文档API 接入与技术支持 |
resource_id | -- | string | 否 | -- | 知识库唯一 ID |
query | -- | string | 是 | -- | 检索文本
|
image_query | -- | Optional[string] | 否 | -- | 检索图片
|
limit | -- | int | 否 | 10 | 检索结果数量
|
| query_param | Optional[Dict[str, Any]] | 否 | 检索的过滤和返回设置 | ||
include_path_list | List[str] | 否 | -- | 检索目录范围 | |
doc_filter | map | 否 | -- | 检索过滤条件
| |
dense_weight | -- | float | 否 | 0.5 | 混合检索中稠密向量的权重
|
| pre_processing | Optional[Dict[str, Any]] | 检索预处理 | |||
need_instruction | bool | 否 | False | 是否拼接 instruction 进行检索
| |
| return_token_usage | bool | 否 | False | 是否返回 search 流程中各阶段的 token 使用量 | |
rewrite | bool | 否 | False | 是否对 query 进行改写 | |
messages | json | 否 | -- | 多轮对话信息
| |
| post_processing | Optional[Dict[str, Any]] | 检索后处理 | |||
rerank_switch | bool | 否 | False | 自动对结果做 rerank
| |
retrieve_count | int | 否 | 25 | 进入重排的切片数量,默认为 25 | |
chunk_diffusion_count | int | 否 | 0 | 检索阶段返回命中切片的上下几片邻近切片 | |
chunk_group | bool | 否 | False | 文本聚合 | |
rerank_model | string | 否 | "base-multilingual-rerank" | rerank 模型选择
| |
rerank_threshold | float | 否 | -- | 阈值过滤 | |
rerank_instruction | string | 否 | -- | rerank 指令 | |
rerank_only_chunk | bool | 否 | False | 是否仅根据 chunk 内容计算重排分数
| |
get_attachment_link | bool | 否 | False | 是否获取切片中图片的临时下载链接
|
| 字段 | 类型 | 参数说明 |
|---|---|---|
| code | Optional[int] | 状态码 |
| message | Optional[str] | 返回信息 |
| request_id | Optional[str] | 标识每个请求的唯一标识符 |
| data | Optional[SearchKnowledgeResult] | SearchKnowledgeResult |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| count | Optional[int] | 检索结果返回的条数 |
| rewrite_query | Optional[str] | query 改写的结果 |
| token_usage | Optional[Dict[str, Any]] | Token 使用信息 |
| result_list | List[PointInfo] | 检索召回切片信息列表 |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| collection_name | Optional[str] | 知识库名称 |
| point_id | Optional[str] | 切片 id |
content | Optional[str] | 切片内容 |
| md_content | Optional[str] | markdown 格式的解析结果(表格切片可通过 chunk_type == table 判断) |
| html_content | Optional[str] | html 格式的解析结果(表格切片可通过 chunk_type == table 判断) |
| description | Optional[str] | 文档描述(当前仅支持图片文档) |
| table_chunk_fields | Optional[List[PointTableChunkField]] | 结构化数据检索返回单行全量数据 |
| original_question | Optional[str] | faq 数据检索召回答案对应的原始问题 |
| score | Optional[float] | 向量化语义检索得分 |
| chunk_title | Optional[str] | 切片标题 |
| chunk_id | Optional[int] | 切片位次 id(代表在原始文档中的位次顺序) |
| process_time | Optional[int] | 切片处理完成的时间 |
| rerank_score | Optional[float] | 重排得分 |
| doc_info | Optional[PointDocInfo] | PointDocInfo |
| chunk_type | Optional[str] | 切片所属类型 |
| chunk_source | Optional[str] | 切片来源 |
| chunk_attachment | Optional[List[ChunkAttachment]] | 附件临时下载链接(有效期 10 分钟) |
| original_coordinate | Optional[Dict[str, Any]] | 切片在所属文档的原始位置坐标 |
| audio_start_time | Optional[int] | 音频切片的起始时间(ms) |
| audio_end_time | Optional[int] | 音频切片的结束时间(ms) |
| update_time | Optional[int] | 更新时间 |
| chunk_status | Optional[str] | 切片状态 |
| video_frame | Optional[str] | 视频帧 |
| video_url | Optional[str] | 视频链接 |
| video_start_time | Optional[int] | 视频切片的起始时间(ms) |
| video_end_time | Optional[int] | 视频切片的结束时间(ms) |
| video_outline | Optional[Dict[str, Any]] | 视频大纲 |
| audio_outline | Optional[Dict[str, Any]] | 音频大纲 |
| sheet_name | Optional[str] | sheet 名称 |
| project | Optional[str] | 项目名 |
| resource_id | Optional[str] | 知识库唯一 id |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| doc_id | Optional[str] | 所属文档 id |
| doc_name | Optional[str] | 所属文档名字 |
| create_time | Optional[int] | 文档创建时间 |
| doc_type | Optional[str] | 所属原始文档类型 |
| doc_meta | Optional[str] | 所属文档的 meta 信息 |
| source | Optional[str] | 所属文档知识来源(url,tos 等) |
| title | Optional[str] | 所属文档标题 |
| status | Optional[DocStatus] | DocStatus |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| process_status | Optional[int] | 处理状态 |
| failed_code | Optional[int] | 失败错误码 |
| failed_msg | Optional[str] | 失败错误信息 |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| uuid | Optional[str] | 附件的唯一标识 |
| caption | Optional[str] | 图片所属标题,若未识别到标题则值为 "\n" |
| type | Optional[str] | image 等 |
| link | Optional[str] | 临时下载链接,有效期 10 分钟 |
| info_link | Optional[str] | 附件 info_link |
| column_name | Optional[str] | 附件列名 |
| 字段 | 类型 | 参数说明 |
|---|---|---|
| field_name | Optional[str] | 字段名 |
| field_value | Optional[Any] | 字段值 |
| 状态码 | http状态码 | 返回信息 | 状态码说明 |
|---|---|---|---|
| 0 | 200 | success | 成功 |
| 1000001 | 401 | unauthorized | 缺乏鉴权信息 |
| 1000002 | 403 | no permission | 权限不足 |
| 1000003 | 400 | invalid request:%s | 非法参数 |
| 1000005 | 400 | collection not exist | collection 不存在 |
首次使用知识库 SDK ,可参考 使用说明
本示例演示了知识库 Python SDK 中 SearchKnowledge 的基础使用方法,通过指定知识库名称和查询语句实现知识库检索,使用前需配置 API Key 鉴权参数。
import os from vikingdb.knowledge import VikingKnowledge from vikingdb.auth import APIKey from vikingdb.knowledge.models.search import SearchKnowledgeRequest def main(): api_key = os.getenv("VIKINGDB_API_KEY") or "" endpoint = "api-knowledgebase.mlp.cn-beijing.volces.com" region = "cn-beijing" client = VikingKnowledge( host=endpoint, region=region, auth=APIKey(api_key=api_key), scheme="https" ) collection = client.collection( collection_name="<YOUR_COLLECTION_NAME>", project_name="default", ) try: resp = collection.search_knowledge(SearchKnowledgeRequest( query="<YOUR_QUERY>", limit=10, dense_weight=0.5, query_param={"include_path_list": ["/dir/"]} )) print(f"Response: {resp}") except Exception as e: print(f"SearchKnowledge failed, err: {e}") if __name__ == "__main__": main()