运行时依赖
安装命令
点击复制技能文档
知识库只读查询器 (KB Reader)
⚠️ 重要提示: 这是一个严格只读的查询系统,无法创建、上传、修改或删除任何数据。使用前必须确保已有管理员通过 kb-管理器 初始化了系统环境。
专门用于查询和读取企业知识库内容的轻量级系统,不支持文档上传和管理功能。
使用方法 对话式查询 直接提问进行智能问答 支持语义搜索和关键词匹配 自动从知识库中检索相关内容 命令行使用 # 进入对话模式 python mAIn.py chat
# 直接查询 python mAIn.py 查询 <查询内容>
# 列出文档(只读) python mAIn.py 列出
# 显示统计(只读) python mAIn.py stats
示例 智能问答 用户: 公司的休假政策是什么? 助手: 根据知识库文档,休假政策包括:
- 年假:每年15天带薪年假
- 病假:每年10天带薪病假
- 远程办公:每周可远程2天
文档查看 用户: 列出 documents 助手: 📚 知识库文档列表:
- 公司政策.pdf (45 chunks)
- 员工手册.docx (23 chunks)
🚀 快速开始
- 安装依赖
- 配置API密钥
方式一:环境变量
# DashScope (阿里云千问) - 推荐 $env:DASHSCOPE_API_KEY='your-dashscope-key'
# 或者 OpenAI $env:OPENAI_API_KEY='your-openAI-key'
- 确保知识库已初始化
⚠️ 重要: kb-reader 是只读系统,无法创建或初始化知识库。使用前必须确保 kb-管理器 已经初始化了系统环境。
# 1. 检查系统目录是否存在 python mAIn.py stats
# 2. 如果提示"系统数据目录不存在",说明需要先用 kb-管理器 初始化 # kb-reader 无法自行创建系统环境,必须由管理员使用 kb-管理器 完成初始化
如果系统未初始化,请联系管理员或在有 kb-管理器 的环境中运行:
cd python mAIn.py 设置up
- 测试查询
# 测试查询功能 python mAIn.py 查询 "测试查询"
📋 使用方法 智能查询 直接提问,系统会自动搜索相关文档 支持中文和英文查询 示例: 公司的休假政策是什么? 如何申请病假? 远程办公的规定是什么? 文档浏览 python mAIn.py 列出 - 查看所有文档 python mAIn.py stats - 显示统计信息 python mAIn.py 搜索 <查询> - 详细搜索文档内容 ⚙️ 配置选项
在 config.json 中设置:
{ "embedding提供者": "dashscope", "embedding模型": "text-embedding-v3", "embeddingBaseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1", "retrievalTopK": 5, "milvusUri": "系统自动配置", "collectionName": "enterprise_kb", "documentsDir": "系统自动配置" }
📁 系统数据目录
kb-reader 自动访问系统级知识库目录:
Windows: C:/ProgramData/kb-data/ Linux/Mac: /usr/local/分享/kb-data/ 或 ~/.local/分享/kb-data/
kb-data/ ├── chroma_db/ # 向量数据库 (只读访问) └── documents/ # 原始文档 (只读访问)
🔗 与kb-管理器的关系
kb-管理器: 负责创建和管理知识库,具有完整的读写权限
✅ 创建系统目录 (python mAIn.py 设置up) ✅ 上传和管理文档 ✅ 删除和修改数据 ✅ 初始化数据库
kb-reader: 只能读取kb-管理器创建的知识库,严格只读权限
❌ 无法创建系统目录 ❌ 无法上传文档 ❌ 无法修改或删除数据 ❌ 无法初始化数据库 ✅ 仅能查询和浏览现有数据
数据共享: 两个技能s访问同一个系统目录,实现数据共享
权限分离: kb-reader无法修改或删除数据,确保数据安全
部署灵活: 可以部署在不同的代理上,实现分布式知识库访问
📋 使用前提 系统环境: 必须已经有管理员使用 kb-管理器 初始化了系统环境 只读权限: kb-reader 无法创建、修改或删除知识库数据 数据存在: 知识库中必须已经有文档数据(由 kb-管理器 上传) API配置: 需要配置相同的嵌入模型API密钥 依赖关系: kb-reader 完全依赖 kb-管理器 创建的系统环境 🏗️ 技术特性 严格只读: 代码层面限制,无任何写入或修改功能 高效检索: 基于向量相似度和关键词匹配 多种查询模式: 支持语义搜索、关键词搜索和混合搜索 轻量级: 最小化依赖,专注查询功能 兼容性: 可以读取kb-管理器创建的知识库 安全设计: 无权限创建、修改或删除任何数据 🔧 故障排除 知识库不存在 # 如果提示知识库不存在,kb-reader 无法自行解决此问题 # 必须联系管理员或在有 kb-管理器 的环境中初始化
# 检查系统状态 python mAIn.py stats
# 如果显示"系统数据目录不存在",需要管理员运行: # cd # python mAIn.py 设置up
注意: kb-reader 作为只读系统,无权限创建系统目录或初始化数据库。
无查询结果 # 检查知识库是否有数据 python mAIn.py stats
# 如果没有数据,需要管理员使用 kb-管理器 上传文档 # kb-reader 无法上传文档,只能查询已存在的数据
注意: kb-reader 无法上传文档,如需添加文档请联系管理员。
API密钥问题 # 检查环境变量 (Windows) echo $env:DASHSCOPE_API_KEY
# 检查环境变量 (Linux/Mac) echo $DASHSCOPE_API_KEY
# 设置API密钥 (Windows) $env:DASHSCOPE_API_KEY='your-API-key'
# 设置API密钥 (Linux/Mac) 导出 DASHSCOPE_API_KEY='your-API-key'
权限问题 # 如果遇到权限错误,检查系统目录权限 # Windows: C:/ProgramData/kb-data/ # Linux/Mac: /usr/local/分享/kb-data/ 或 ~/.local/分享/kb-data/
# 确保kb-管理器有创建目录的权限 cd ../kb-管理器 python mAIn.py 设置up
🌐 部署场景 场景1: 单机多代理 同一台机器上的多个代理 ├── 代理-Admin (kb-管理器) ├── 代理-User1 (kb-reader) ├── 代理-User2 (kb-reader) └── 共享系统目录: C:/ProgramData/kb-data/
场景2: 分布式部署 多台机器,共享网络存储 ├── 机器A: 代理-Admin (kb-管理器) → 网络存储 ├── 机器B: 代理-User1 (kb-reader) → 网络存储 └── 机器C: 代理-User2 (kb-reader) → 网络存储
场景3: 容器化部署 Docker容器间数据共享 ├── ContAIner-Admin: kb-管理器 + 数据卷 ├── ContAIner-User1: kb-reader + 数据卷 └── ContAIner-User2: kb-reader + 数据卷
🔒 安全特性 严格只读权限: 代码层面强制只读,任何写入操作都会抛出异常 无创建权限: 无法创建目录、数据库或集合 本地访问: 仅访问本地知识库文件 API安全: 支持多种API提供商,密钥加密存储 数据隔离: 与kb-管理器共享数据但权限完全隔离 故障安全: 如果系统环境不存在,会立即报错而不是尝试创建 📊 性能指标 搜索延迟: <500ms (本地向量搜索) 内存占用: 最小化内存使用 并发支持: 支持多用户同时查询