# 数据库设计文档 ## 📚 文档导航 ### 核心表设计 - [diagnosis_record](tables/diagnosis_record.md) - 诊断记录表(核心) - [case_library](tables/case_library.md) - 案例库表 - [api_document](tables/api_document.md) - 文档元数据表 ### 架构设计 - [Agent 架构设计](architecture/agent-architecture.md) - Agent 协作 + Skill + Harness - [知识库检索架构](architecture/knowledge-retrieval-architecture.md) - L0+L1 混合检索架构 ⭐新增 - [知识库检索使用指南](architecture/knowledge-retrieval-usage.md) - 文档编写和使用说明 ⭐新增 - [会话管理](architecture/session-management.md) - Redis + MySQL 会话管理 - [实施规划](architecture/implementation-plan.md) - 分阶段实施计划 - [证据评分与用户反馈](architecture/confidence-feedback.md) - evidence_score 规则引擎 + feedback API ⭐新增 --- ## 一、设计原则 ### 1.1 核心原则 - ✅ **简单优先**:满足诊断流程需要,避免过度设计 - ✅ **渐进增强**:先实现核心功能,再逐步扩展 - ✅ **数据分离**:诊断结果持久化(MySQL),会话上下文临时化(Redis) - ✅ **适度冗余**:避免过度范式化,适当冗余提升查询性能 ### 1.2 系统定位 **自动化诊断系统** - 核心:一键诊断 → 返回完整报告 - 辅助:支持追问,但不是主要场景 - 特点:大部分用户单次诊断即结束,少数用户会追问细节 --- ## 二、表结构总览 ### 2.1 核心表关系 ``` ┌─────────────────────┐ │ diagnosis_record │ 诊断记录(核心) │ - 每次诊断一条 │ └──────────┬──────────┘ │ 1:1 ↓ ┌─────────────────────┐ │ case_library │ 案例库(知识沉淀) │ - 诊断成功→案例 │ └─────────────────────┘ ┌─────────────────────┐ │ api_document │ 文档元数据(管理层) │ - 状态追踪/去重 │ └──────────┬──────────┘ │ doc_id ↓ ┌─────────────────────┐ │ Milvus │ 文档内容(检索层) │ - 向量检索 │ └─────────────────────┘ ┌─────────────────────┐ │ Redis Session │ 会话管理(临时) │ - 30分钟过期 │ │ - 支持追问 │ └─────────────────────┘ ``` ### 2.2 表统计 | 表名 | 类型 | 预估数据量 | 用途 | |------|------|-----------|------| | diagnosis_record | 核心 | 3.6万/年 | 诊断记录 | | case_library | 核心 | 500-1000 | 案例库 | | api_document | 核心 | 100-200 | 文档管理 | --- ## 三、技术栈 ### 3.1 数据存储 ``` MySQL 8.0+ ├─ 元数据管理 ├─ 事务支持 └─ JSON 字段支持 Redis 6.0+ ├─ 会话存储 ├─ 缓存 └─ TTL 自动过期 Milvus 2.6+ ├─ 向量存储 ├─ 语义检索 └─ 混合检索 ``` ### 3.2 开发框架 ``` Spring Boot 3.2 Spring AI Alibaba 1.1.0 Milvus SDK Java 2.6.10 DashScope SDK ``` --- ## 四、快速开始 ### 4.1 创建数据库 ```sql -- 1. 创建数据库 CREATE DATABASE diagnosis_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 2. 执行建表脚本(按顺序) SOURCE tables/diagnosis_record.sql; SOURCE tables/case_library.sql; SOURCE tables/api_document.sql; ``` ### 4.2 初始化 Milvus ```java // 创建 Collection MilvusClientFactory.createCollection(); ``` ### 4.3 配置 Redis ```yaml spring: redis: host: localhost port: 6379 database: 0 ``` --- ## 五、版本历史 | 版本 | 日期 | 变更内容 | |------|------|---------| | v1.0 | 2024-06-15 | 初版,定义核心表结构 | | v2.0 | 2024-06-15 | diagnosis_record 字段泛化,支持多种故障类型 | | v2.1 | 2024-06-22 | 文档拆分,增加 api_document 表 | --- ## 六、维护说明 - 每个表的详细设计在 `tables/` 目录下 - 架构设计文档在 `architecture/` 目录下 - 修改表结构时,同步更新对应的 Markdown 文档 - 重大变更需记录在版本历史中