Jelajahi Sumber

现在部署上去

liuchengsen 1 bulan lalu
induk
melakukan
f52f02c764
1 mengubah file dengan 66 tambahan dan 0 penghapusan
  1. 66 0
      docs/CHANGELOG_JAVA_PYTHON_PARITY.md

+ 66 - 0
docs/CHANGELOG_JAVA_PYTHON_PARITY.md

@@ -502,3 +502,69 @@ else:
 ⑤ 拼 Prompt → Qwen 生成 → 返回
 ```
+
+---
+
+## 九、第三轮变更:2020 药典补充 + 前端接真实 API + 线上部署(2026-07-20)
+
+### 9.1 变更明细
+
+#### 变更 4: `docx_ingest.py` — 2025/2020 版本共存
+
+**问题**: 原 `dedup_old_versions()` 逻辑将非 2025 版药品标记为 `is_active=FALSE`,导致 2020 数据被隐藏。
+
+**修改**: 去重函数改为空操作,2025 和 2020 版数据均保持 `active`。检索层通过 `RerankerService` 的版本优先级(2025 +0.05)自然将 2025 排在前面。
+
+#### 变更 5: `RetrieverService.java` — 2025 优先 / 2020 降级检索
+
+**修改**: `search()` 方法改为两轮策略:
+1. 第一轮:限定 `d.source_version = '2025年版'`
+2. 若结果 < 3 条或最高相似度 < 0.4,降级到全部版本(含 2020)
+3. 合并结果:2025 在前,2020 在后,去重
+
+新增 `embedWithCache()`:Embedding 向量缓存到 Redis(7 天 TTL),大幅降低 DashScope API 调用量。
+
+#### 变更 6: `pdf2020_ingest.py` — 新建 2020 药典 PDF 导入脚本
+
+**功能**: 解析 `pharmacopoeia_2020_volume1_toc.pdf`(463 页,一部 2711 种中药),提取药品条目并向量化入库。
+
+#### 变更 7: `static/index.html` — 前端从 Mock 切换为真实 API
+
+**问题**: 前端使用 `mockResponse()` 硬编码假数据,从未调用后端 API。
+
+**修改**: 完全重写 JavaScript:
+- 通过 `/api/v1/auth/guest` 获取 Token
+- 调用 `/api/v1/chat/stream`(SSE 流式)实时显示 AI 回答
+- 支持图片/视频上传(`/api/v1/chat/stream-image` 和 `stream-multimodal`)
+- 药品库调用 `/api/v1/drug/search` + `/api/v1/drug/{id}` 加载真实数据
+- 自动检测同主机 9000 端口
+
+#### 变更 8: `verify_import.py` — 新建导入完整性验证脚本
+
+逐项检查:DOCX 文件数 vs DB 药品数、漏读药品、孤儿 chunks、无 chunk 药品、向量维度、抽查特定药品 sections。
+
+#### 变更 9: `database/reset_schema.sql` — 新建数据库重置脚本
+
+一键清空所有表和数据,重建最新 schema。配合 `schema.sql` 使用。
+
+### 9.2 最终文件清单(本次提交)
+
+| 文件 | 操作 | 说明 |
+|------|------|------|
+| `RerankerService.java` | **新建** | 重排序服务(阈值+n-gram+去重+版本优先级) |
+| `ChatController.java` | 修改 | +上传端点 +conversation_id +注入RerankerService |
+| `ChatPersistenceService.java` | 修改 | title回退 + 分页优化 |
+| `PromptService.java` | 修改 | 禁止编造 + 剂型不混用 + 建议换关键词 |
+| `RetrieverService.java` | 修改 | 剂型后缀 + ILIKE + 2025优先降级 + Embedding缓存 |
+| `DrugService.java` | 修改 | 分类树层次化 |
+| `DrugRepository.java` | 修改 | 新增子分类查询 |
+| `DrugController.java` | 修改 | 响应键名 tree |
+| `AdminController.java` | 修改 | +top_drugs +daily_queries |
+| `application.yml` | 修改 | multipart 50MB |
+| `docx_ingest.py` | 修改 | DrugChunker切片 + 2025/2020共存 |
+| `pdf2020_ingest.py` | **新建** | 2020药典PDF导入 |
+| `verify_import.py` | **新建** | 导入完整性验证 |
+| `reset_schema.sql` | **新建** | 数据库重置脚本 |
+| `static/index.html` | **重写** | Mock→真实API |
+| `OPERATIONS_GUIDE.md` | **新建** | 线上部署完整方案 |
+| `CHANGELOG_JAVA_PYTHON_PARITY.md` | **新建** | 本变更文档 |