统一入口:KnowledgeBase
无论使用哪种后端,均通过统一的 veadk.knowledgebase.KnowledgeBase 接入。它根据 backend 选择存储后端,并提供一致的知识注入与检索接口。知识注入支持三种来源:
- 从文件导入:
kb.add_from_files([...]); - 从目录导入:
kb.add_from_directory("./docs"); - 从文本导入:
kb.add_from_text([...])。
通用参数
KnowledgeBase 的字段对所有后端通用:
向量类后端(
local、opensearch、redis、milvus、tos_vector)会对知识文本做向量化,需要安装扩展依赖并配置 embedding 模型。viking、context_search 与 openviking 在服务端处理资源,无需本地 embedding。选择后端
调试可用local;使用托管检索服务时可选择 viking、context_search 或 openviking;已有向量存储时可选择 opensearch、redis、milvus 或 tos_vector。
绑定到智能体
把knowledgebase 传给 Agent 后,智能体会自动获得 load_knowledgebase 工具,在回答问题时自主决定是否检索知识库。
直接检索
除了智能体运行时自动检索,也可以直接调用search 做语义搜索,用于调试或自定义 RAG。top_k 为 0 时使用构造时设定的值。