feat(iit): Phase 1.5 AI对话集成REDCap真实数据完成

- feat: ChatService集成DeepSeek-V3实现AI对话(390行)
- feat: SessionMemory实现上下文记忆(最近3轮对话,170行)
- feat: 意图识别支持REDCap数据查询(关键词匹配)
- feat: REDCap数据注入LLM(queryRedcapRecord, countRedcapRecords, getProjectInfo)
- feat: 解决LLM幻觉问题(基于真实数据回答,明确system prompt)
- feat: 即时反馈(正在查询...提示)
- test: REDCap查询测试通过(test0102项目,10条记录,ID 7患者详情)
- docs: 创建Phase1.5开发完成记录(313行)
- docs: 更新Phase1.5开发计划(标记完成)
- docs: 更新MVP开发任务清单(Phase 1.5完成)
- docs: 更新模块当前状态(60%完成度)
- docs: 更新系统总体设计文档(v2.6)
- chore: 删除测试脚本(test-redcap-query-for-ai.ts, check-env-config.ts)
- chore: 移除REDCap测试环境变量(REDCAP_TEST_*)

技术亮点:
- AI基于REDCap真实数据对话,不编造信息
- 从数据库读取项目配置,不使用环境变量
- 企业微信端测试通过,用户体验良好

测试通过:
-  查询项目记录总数(10条)
-  查询特定患者详情(ID 7)
-  项目信息查询
-  上下文记忆(3轮对话)
-  即时反馈提示

影响范围:IIT Manager Agent模块
This commit is contained in:
2026-01-03 22:48:10 +08:00
parent 4794640f5d
commit b47079b387
158 changed files with 1273 additions and 110 deletions

View File

@@ -0,0 +1,73 @@
/**
* 检查test0102项目是否在数据库中
*
* 运行方式:
* ```bash
* cd backend
* npm run tsx src/modules/iit-manager/check-test-project-in-db.ts
* ```
*/
import { PrismaClient } from '@prisma/client';
import dotenv from 'dotenv';
dotenv.config();
const prisma = new PrismaClient();
async function main() {
console.log('='.repeat(70));
console.log('🔍 检查test0102项目在数据库中的配置');
console.log('='.repeat(70));
console.log();
try {
// 查询项目
const project = await prisma.iitProject.findFirst({
where: {
redcapProjectId: '16'
}
});
if (project) {
console.log('✅ test0102项目已在数据库中');
console.log();
console.log('📋 项目信息:');
console.log(` 数据库ID: ${project.id}`);
console.log(` 项目名称: ${project.name}`);
console.log(` REDCap项目ID: ${project.redcapProjectId}`);
console.log(` REDCap URL: ${project.redcapUrl}`);
console.log(` API Token: ${project.redcapApiToken.substring(0, 8)}***`);
console.log(` 状态: ${project.status}`);
console.log(` 上次同步: ${project.lastSyncAt || '从未同步'}`);
console.log(` 创建时间: ${project.createdAt}`);
console.log();
console.log('✅ 项目配置完整,可以直接使用!');
console.log();
console.log('🚀 下一步:');
console.log(' 直接运行测试脚本(无需环境变量):');
console.log(' npm run tsx src/modules/iit-manager/test-redcap-query-from-db.ts');
} else {
console.log('❌ test0102项目不在数据库中');
console.log();
console.log('📝 需要先将项目添加到数据库');
console.log();
console.log('💡 解决方案:');
console.log(' 运行插入脚本:');
console.log(' npm run tsx src/modules/iit-manager/insert-test-project.ts');
}
console.log();
console.log('='.repeat(70));
} catch (error: any) {
console.error('❌ 查询失败:', error.message);
console.error(' 请检查数据库连接和表结构');
} finally {
await prisma.$disconnect();
}
}
main();