# qaagent67lite — 轻量级知识问答智能体 > BM25 + Wiki,无需向量数据库,适合小规模文档集 ## 1. 定位 | | qaagent67lambda | qaagent67lite | qaagent67wiki | |---|---|---|---| | **检索** | 4路 (BM25+Vector+Graph+Wiki) | **2路 (BM25+Wiki)** | Wiki only | | **文档量** | 500+ | **< 500** | 任意 | | **依赖** | Embedding 服务 + 向量库 | **纯 CPU** | LLM only | | **部署** | 需要 GPU/NPU | **任意机器** | 任意机器 | | **场景** | 大规模专业问答 | **小规模轻量问答** | 知识编译 | | **典型领域** | 海事法规、金融合规 | 财务制度、行政流程 | 任意 | ## 2. 架构 ``` 用户提问 ↓ 意图分类 (快速规则, 不用 LLM) ↓ ┌─────────────────┐ │ BM25 关键词检索 │──→ 原始文档片段 │ (topK=10) │ └─────────────────┘ ↓ SimpleMerge (RRF 融合) ↓ ┌─────────────────┐ │ Wiki 编译知识 │──→ 结构化 wiki 页面 │ (实体优先搜索) │ └─────────────────┘ ↓ LLM 回答 (标注来源) ``` ### Lambda 表达式 ``` λ = Classify(q) >> Par(BM25(q), WikiRead(q)) >> SimpleMerge(results) >> LLM(context, question) ``` ## 3. 与 lambda 的区别 ### 去掉的 | 组件 | 原因 | |------|------| | **Vector** (embedding) | 小文档集 BM25 已够用,省掉 embedding 服务依赖 | | **Graph** (知识图谱) | 文档少时关系稀疏,图谱价值不大 | | **Rerank** (重排序) | 2 路检索结果少,不需要重排 | | **LLM 分类** | 用规则分类代替,省 token | | **并行检索** | 只有 2 路,串行即可 | ### 保留的 | 组件 | 说明 | |------|------| | **BM25** | 关键词检索,对事实/数据/人名类问题效果好 | | **Wiki v2** | 编译知识,对综合/对比/流程类问题效果好 | | **Wiki Lint + Grow** | 知识库维护和持续生长 | | **Instance 机制** | agent-config.yml + instance.yml 深度合并 | ### 权重策略 ```yaml weights: fact: {bm25: 1.0, wiki: 0.3} # 事实问题以 BM25 为主 compare: {bm25: 0.5, wiki: 0.9} # 对比问题以 Wiki 为主 process: {bm25: 0.7, wiki: 0.8} # 流程问题两者均衡 person: {bm25: 0.9, wiki: 0.5} # 找人以 BM25 为主 temporal: {bm25: 1.0, wiki: 0.2} # 时效问题以 BM25 为主 ``` ## 4. 部署 ### 一键部署 ```bash # 1. 创建实例配置 cd agentexample/qaagent67lite cp scripts/instance.yml.template scripts/instance.yml # 编辑 instance.yml,修改 baseDir 指向数据目录 # 2. 放入原始文件 cp /path/to/your/docs/* /your/knowledge/raw/ # 3. 一键索引 + Wiki 编译 python scripts/setup.py # 4. 启动 python3 -m agentpaas agent create --name lite-qa \ --config agentexample/qaagent67lite/agent-config.yml python3 -m agentpaas chat lite-qa ``` ### setup.py 自动执行 ``` Step 1: 提取文本 (PDF/Word → txt) Step 2: 建 BM25 索引 (关键词 + 分块) Step 3: Wiki 编译 (LLM 读 → 写 wiki 页面) Step 4: 验证 (输出统计) ``` ## 5. 适用领域示例 | 领域 | 文档量 | 典型问题 | |------|--------|---------| | 财务制度 | 50-200 | "报销流程是什么?" "差旅标准多少?" | | 行政流程 | 30-100 | "请假怎么审批?" "固定资产采购流程?" | | 产品手册 | 20-80 | "XX 功能怎么用?" "故障如何排查?" | | 内部规范 | 50-150 | "代码审查标准?" "安全合规要求?" | ## 6. 文件清单 ``` qaagent67lite/ ├── agent-config.yml # 主配置 (BM25+Wiki, 无 Vector/Graph) ├── DESIGN.md # 本文件 └── scripts/ ├── setup.py # 一键部署: 提取→索引→Wiki编译 └── instance.yml.template # 实例配置模板 ```