feat(iit-manager): Integrate Dify knowledge base for hybrid retrieval

Completed features:
- Created Dify dataset (Dify_test0102) with 2 processed documents
- Linked test0102 project with Dify dataset ID
- Extended intent detection to recognize query_protocol intent
- Implemented queryDifyKnowledge method (semantic search Top 5)
- Integrated hybrid retrieval (REDCap data + Dify documents)
- Fixed AI hallucination bugs (intent detection + API field path)
- Developed debugging scripts
- Completed end-to-end testing (5 scenarios passed)
- Generated comprehensive documentation (600+ lines)
- Updated development plans and module status

Technical highlights:
- Single project single knowledge base architecture
- Smart routing based on user intent
- Prevent AI hallucination by injecting real data/documents
- Session memory for multi-turn conversations
- Reused LLMFactory for DeepSeek-V3 integration

Bug fixes:
- Fixed intent detection missing keywords
- Fixed Dify API response field path error

Testing: All scenarios verified in WeChat production environment

Status: Fully tested and deployed
This commit is contained in:
2026-01-04 15:44:11 +08:00
parent b47079b387
commit dfc472810b
162 changed files with 3093 additions and 62 deletions

View File

@@ -970,6 +970,116 @@ REDCap录入数据 → Node.js实时捕获<10ms
---
### 📊 Phase 1.5AI对话能力2026-01-03 & 2026-01-04
**任务目标**在企业微信中实现AI对话查询能力
**实际完成时间**
- Day 3 下午2026-01-03基础对话 + REDCap集成
- Day 4 上午2026-01-04Dify知识库集成
**任务完成度**100%
#### 核心成果Phase 1.5
| 交付物 | 代码量 | 状态 |
|-------|--------|------|
| ChatService.ts对话服务 | 485行 | ✅ 完成 |
| SessionMemory.ts会话记忆 | 120行 | ✅ 完成 |
| WechatCallbackController对话集成 | 更新 | ✅ 完成 |
| Dify知识库关联 | 脚本 | ✅ 完成 |
| 意图识别优化 | 扩展 | ✅ 完成 |
| Bug修复字段路径 | 关键修复 | ✅ 完成 |
| 调试脚本2个 | 280行 | ✅ 完成 |
| 开发记录文档 | 600+行 | ✅ 完成 |
| **总计** | **~1,485行** | **✅ 完成** |
#### 关键里程碑
🎯 **混合检索架构实现**
```
用户提问(企业微信)
意图识别ChatService.detectIntent
┌───────────────┬───────────────┬──────────────┐
│ query_protocol│ query_record │ count_records│
│ (文档查询) │ (记录查询) │ (统计查询) │
└───────┬───────┴───────┬───────┴──────┬───────┘
↓ ↓ ↓
Dify API REDCap API REDCap API
(知识库) (患者数据) (患者数据)
↓ ↓ ↓
文档片段 JSON数据 JSON数据
↓ ↓ ↓
└───────────────┴──────────────┘
构建LLM Prompt
(System + Context + Data)
DeepSeek-V3
AI回答
```
#### 功能验证
**测试项目**: test0102
- REDCap PID: 16, 11条记录
- Dify Dataset ID: `b49595b2-bf71-4e47-9988-4aa2816d3c6f`
- 文档: 研究方案、CRF表格2个文件已处理
**测试场景**
| 场景 | 用户问题 | 数据源 | 结果 | 状态 |
|------|---------|--------|------|------|
| 文档查询 | "这个研究的排除标准是什么?" | Dify | 基于文档准确回答 | ✅ 通过 |
| CRF查询 | "CRF表格中有哪些观察指标" | Dify | 基于文档准确回答 | ✅ 通过 |
| 患者查询 | "ID 7的患者情况" | REDCap | 完全匹配真实数据 | ✅ 通过 |
| 统计查询 | "目前入组了多少人?" | REDCap | 准确统计11人 | ✅ 通过 |
| 混合查询 | "这个研究的主要研究目的是什么?" | Dify | 基于文档回答 | ✅ 通过 |
| 上下文记忆 | 多轮对话 | SessionMemory | 记得上一轮内容 | ✅ 通过 |
#### 技术亮点
1. **混合检索**同时支持结构化数据REDCap和非结构化文档Dify
2. **智能路由**:根据意图自动选择数据源
3. **防止幻觉**:所有回答基于真实数据/文档,绝不编造
4. **上下文记忆**SessionMemory保存最近3轮对话
5. **复用LLMFactory**零配置使用DeepSeek-V3
6. **即时反馈**"正在查询"消息,避免用户焦虑
#### 问题排查与修复
**关键Bug修复**
| 问题 | 根因 | 解决方案 | 状态 |
|------|------|---------|------|
| AI编造答案 | 意图识别关键词不全(缺"入选"等) | 扩充关键词列表 | ✅ 已修复 |
| Dify内容为undefined | 错误的API响应字段路径 | 修正为`record.segment.document.name``record.segment.content` | ✅ 已修复 |
**调试工具**
- `debug-dify-injection.ts`追踪Dify结果注入流程
- `inspect-dify-response.ts`查看Dify API实际返回结构
#### 核心能力
1.**实时数据查询**通过REDCap API查询患者CRF数据
2.**研究方案查询**通过Dify知识库检索研究方案、CRF、伦理文件
3.**智能理解**:自然语言提问,无需记忆命令
4.**上下文理解**:多轮对话,支持代词解析
5.**数据真实性**:所有回答基于真实数据,绝不编造
6.**混合检索**:同时查询多个数据源,统一呈现
#### 参考文档
- [Phase 1.5开发计划](./Phase1.5-AI对话能力开发计划.md)
- [Phase 1.5开发完成记录 (REDCap)](../06-开发记录/Phase1.5-AI对话集成REDCap完成记录.md)
- [Dify知识库集成开发记录](../06-开发记录/2026-01-04-Dify知识库集成开发记录.md)
- [IIT Manager Agent 技术路径与架构设计](../02-技术设计/IIT%20Manager%20Agent%20技术路径与架构设计.md)
---
### Day 4完善与文档2026-01-046小时
#### 上午优化与测试3小时