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 深度合并 |
权重策略
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. 部署
一键部署
# 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 # 实例配置模板