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

@@ -1,10 +1,10 @@
# IIT Manager Agent模块 - 当前状态与开发指南
> **文档版本:** v1.5
> **文档版本:** v1.6
> **创建日期:** 2026-01-01
> **维护者:** IIT Manager开发团队
> **最后更新:** 2026-01-03 🎉 **Phase 1.5完成 - AI对话集成REDCap真实数据**
> **重大里程碑:** ✅ AI基于REDCap真实数据对话解决LLM幻觉问题
> **最后更新:** 2026-01-04 🎉 **Dify知识库集成完成 - 混合检索实现**
> **重大里程碑:** ✅ 混合检索架构实现REDCap实时数据 + Dify文档知识库
> **文档目的:** 反映模块真实状态,记录开发历程
---
@@ -36,8 +36,8 @@ IIT Manager Agent研究者发起试验管理助手是一个基于企业微
- AI能力Dify RAG + DeepSeek/Qwen
### 当前状态
- **开发阶段**:🎉 **Phase 1.5完成 - AI对话集成REDCap真实数据**
- **整体完成度**60%Day 1-3 + Phase 1.5完成)
- **开发阶段**:🎉 **Phase 1.5完成 - 混合检索架构实现**
- **整体完成度**65%Day 1-3 + Phase 1.5完成 + Dify集成完成
- **已完成功能**
- ✅ 数据库Schema创建iit_schema5个表
- ✅ Prisma Schema编写223行类型定义
@@ -47,7 +47,7 @@ IIT Manager Agent研究者发起试验管理助手是一个基于企业微
-**企业微信可信域名配置成功**devlocal.xunzhengyixue.com
-**REDCap本地Docker环境部署成功**15.8.0
-**REDCap对接技术方案确定**DET + REST API
-**REDCap测试项目创建**test0102, PID 16, 10条记录)
-**REDCap测试项目创建**test0102, PID 16, 11条记录)
-**REDCap实时集成完成**DET + REST API + WebhookController + SyncManager
-**企业微信推送服务完成**WechatService, 314行
-**企业微信回调处理完成**WechatCallbackController, 501行
@@ -59,28 +59,36 @@ IIT Manager Agent研究者发起试验管理助手是一个基于企业微
-**质控Worker完善**(质控逻辑 + 企业微信推送 + 审计日志)
-**🎯 端到端测试通过**REDCap → Node.js → 企业微信,<2秒延迟
-**🎯 MVP闭环完全打通**100%消息成功率)
-**🚀 Phase 1.5: AI对话集成完成**
- ✅ ChatService集成390行)
- ✅ SessionMemory170行上下文记忆
-**🚀 Phase 1.5: AI对话集成完成**2026-01-03 & 2026-01-04
- ✅ ChatService集成485行)
- ✅ SessionMemory120行上下文记忆
- ✅ REDCap数据查询集成queryRedcapRecord, countRedcapRecords
-意图识别(关键词匹配
-**Dify知识库集成**queryDifyKnowledge
-**混合检索实现**REDCap实时数据 + Dify文档知识库
-**智能路由**(根据意图自动选择数据源)
- ✅ 意图识别优化(扩充医学关键词库)
- ✅ 数据注入LLM基于真实数据不编造
- ✅ 即时反馈("正在查询"
-测试通过查询ID 710条记录统计
-**Dify Dataset关联**test0102 → b49595b2-bf71-4e47-9988-4aa2816d3c6f
-**Bug修复**Dify API字段路径错误修正
- ✅ 测试通过5个场景REDCap查询、Dify文档查询、混合查询
- **未开发功能**
- ⏳ Function CallingLLM自主决策- Phase 2
-Dify知识库集成研究方案查询- Phase 2
-多项目支持(项目切换- Phase 2
- ⏳ 文档API上传自动化上传到Dify- Phase 2
- ⏳ 数据质量AgentAI质控逻辑- Phase 2
- ⏳ 任务驱动引擎 - Phase 2
- ⏳ 患者随访Agent - Phase 2
- ⏳ 微信小程序前端 - Phase 3
- ⏳ REDCap双向回写 - Phase 2
- **部署状态**:✅ AI对话正常运行基于真实数据回答
- **部署状态**:✅ AI对话正常运行支持REDCap实时数据 + Dify文档查询
- **已知问题**:无
- **临时措施**
- ⚠️ 使用关键词匹配识别意图Phase 2升级为Function Calling
- ⚠️ SessionMemory基于内存Phase 2改为Redis
- ⚠️ 默认查询第一个active项目Phase 2支持项目选择
- ⚠️ Dify文档通过Web界面手动上传Phase 2开发API自动上传
- ⚠️ 单项目单知识库Phase 2支持多知识库
- ⚠️ UserID从环境变量获取`WECHAT_TEST_USER_ID`- Phase 2改进
- ⚠️ 定时轮询暂时禁用REDCap DET已足够- Phase 2添加
@@ -95,9 +103,8 @@ IIT Manager Agent研究者发起试验管理助手是一个基于企业微
| **Day 1环境初始化** | ✅ 已完成 | 2026-01-01 | 数据库Schema + 企业微信配置 + 模块骨架 |
| **REDCap环境准备** | ✅ 已完成 | 2026-01-02 | REDCap Docker部署 + 对接方案确定 |
| **Day 2REDCap拉取** | ✅ 已完成 | 2026-01-02 | RedcapAdapter(271行) + WebhookController(327行) + SyncManager(398行) |
| **Day 3质控Agent** | ⏳ 待开始 | - | ComplianceService + DetectionService |
| **Day 4企微推送** | ⏳ 待开始 | - | WechatService + CardGenerator |
| **Day 5影子状态** | ⏳ 待开始 | - | ActionService + 状态机 |
| **Day 3企微推送** | ✅ 已完成 | 2026-01-03 | WechatService(314行) + WechatCallbackController(501行) + 质控Worker |
| **Phase 1.5AI对话** | ✅ 已完成 | 2026-01-03 & 2026-01-04 | ChatService(485行) + SessionMemory(120行) + Dify集成 |
| **Day 6-7小程序** | ⏳ 待开始 | - | Taro前端 + 审批界面 |
| **Day 8回写+集成** | ⏳ 待开始 | - | REDCap回写 + 端到端测试 |
| **Day 9-10完善+测试** | ⏳ 待开始 | - | 错误处理 + 日志 + 性能优化 |
@@ -700,6 +707,104 @@ npx ts-node src/modules/iit-manager/test-wechat-push.ts
## 🔄 十、更新日志
### 2026-01-04Dify知识库集成完成 - 混合检索实现 ✅
**完成内容**
- ✅ **Dify知识库创建**Dify_test01022个文档已处理
- ✅ **项目关联配置**test0102 → Dataset ID: b49595b2-bf71-4e47-9988-4aa2816d3c6f
- ✅ **意图识别扩展**新增query_protocol意图扩充医学关键词
- ✅ **Dify查询集成**queryDifyKnowledge方法Top 5语义检索
- ✅ **混合检索实现**同时支持REDCap数据 + Dify文档
- ✅ **智能路由**(根据意图自动选择数据源)
- ✅ **Bug修复**Dify API字段路径错误record.segment.document.name
- ✅ **调试工具开发**debug-dify-injection.ts、inspect-dify-response.ts
- ✅ **端到端测试**5个场景全部通过
- ✅ **开发记录文档**600+行完整记录)
**关键成果**
- 🎉 **混合检索架构实现**(结构化数据 + 非结构化文档)
- 🎉 **AI回答完全基于真实数据/文档**(防止幻觉)
- 🎉 **智能路由机制**(根据问题自动选择数据源)
- 🎉 **完整排查流程记录**(从问题发现到根因修复)
**技术亮点**
1. **单项目单知识库架构**MVP快速落地方案
2. **语义检索**Dify semantic_search, Top 5
3. **数据注入LLM**格式化文档片段注入System Prompt
4. **完整调试链路**(从意图识别 → Dify调用 → LLM注入
5. **关键Bug快速定位**(通过调试脚本发现字段路径错误)
**测试验证**
| 测试场景 | 用户问题 | 数据源 | 结果 | 响应时间 |
|---------|---------|--------|------|---------|
| 文档查询 | "这个研究的排除标准是什么?" | Dify | ✅ 准确 | ~5s |
| CRF查询 | "CRF表格中有哪些观察指标" | Dify | ✅ 准确 | ~5s |
| 患者查询 | "ID 7的患者情况" | REDCap | ✅ 准确 | ~5s |
| 统计查询 | "目前入组了多少人?" | REDCap | ✅ 准确 (11人) | ~4s |
| 混合查询 | "这个研究的主要研究目的是什么?" | Dify | ✅ 准确 | ~5s |
**问题排查记录**
1. **问题**AI编造答案不查询Dify
- **根因1**:意图识别关键词不全(缺"入选"、"诊断标准"等)
- **解决**:扩充关键词正则表达式
- **根因2**Dify API字段路径错误record.document_name → record.segment.document.name
- **解决**:修正字段访问路径
2. **调试工具**
- `debug-dify-injection.ts`追踪Dify结果是否正确注入LLM
- `inspect-dify-response.ts`查看Dify API实际返回结构
**技术债务**
- ⚠️ Dify文档通过Web界面手动上传Phase 2开发API自动上传
- ⚠️ 单项目单知识库Phase 2支持多知识库
- ⚠️ 检索参数固定top_k=5Phase 2支持动态调优
**参考文档**
- [Dify知识库集成开发记录](./06-开发记录/2026-01-04-Dify知识库集成开发记录.md)
- [IIT Manager Agent 技术路径与架构设计](./02-技术设计/IIT%20Manager%20Agent%20技术路径与架构设计.md)
**下一步**
- 🔄 **Phase 2**多项目支持、文档API上传、Function Calling
---
### 2026-01-03Day 3完成 - 企业微信集成 + Phase 1.5 AI对话 ✅
**完成内容**
-**WechatService开发**314行消息推送服务
-**WechatCallbackController开发**501行回调处理 + 对话集成)
-**质控Worker完善**336行质控逻辑 + 企微推送 + 审计日志)
-**Worker注册修复**initIitManager调用
-**数据库字段修复**action_type
-**端到端测试通过**REDCap → Node.js → 企微,<2秒
-**Phase 1.5: ChatService开发**390行AI对话服务
-**SessionMemory开发**170行上下文记忆
-**REDCap数据查询集成**queryRedcapRecord, countRedcapRecords
-**意图识别实现**(关键词匹配)
-**LLM集成**DeepSeek-V3, LLMFactory复用
-**防止幻觉**数据注入LLM基于真实数据回答
**关键成果**
- 🎉 **MVP闭环完全打通**REDCap → Node.js → 企微 → AI对话
- 🎉 **AI基于REDCap真实数据对话**解决LLM幻觉问题
- 🎉 **上下文记忆实现**最近3轮对话
- 🎉 **端到端延迟<2秒**(超出预期)
**技术亮点**
1. **异步Worker架构**符合Postgres-Only最佳范式
2. **企业微信消息加解密**(完整实现签名验证和加解密)
3. **异步回复模式**setImmediate 确保5秒内响应
4. **复用LLMFactory**零配置使用DeepSeek-V3
5. **SessionMemory内存存储**无需Redis快速实现
**参考文档**
- [Day3-企业微信集成与端到端测试完成记录](./06-开发记录/Day3-企业微信集成与端到端测试完成记录.md)
- [Phase 1.5开发完成记录](./06-开发记录/Phase1.5-AI对话集成REDCap完成记录.md)
---
### 2026-01-02REDCap环境就绪 + 对接方案确定 ✅
**完成内容**