Commit Graph

8 Commits

Author SHA1 Message Date
lacerate551
258be54df7 sync(server-release): 从 main 同步逻辑改动(不含 API 格式变更)
同步内容:
- knowledge/manager.py: VLM max_tokens 512→2048 + reasoning_content fallback
- services/feedback.py: FAQ max_tokens 200→512
- services/session.py: 消息排序增加 id DESC 次级排序
- knowledge/image_cleanup.py: 新增图片/VLM缓存孤儿文件清理模块
- knowledge/collection.py: 集合删除时清理孤儿文件 + list_collections 磁盘扫描策略
- knowledge/document.py: 文档删除时清理孤儿文件
- api/chat_routes.py: 新增 _rescue_bm25_divergence 函数(BM25-CE分歧救援)
- core/intent_analyzer.py: 使用 get_intent_client 专用客户端 + 移除短追问缓存跳过逻辑
- cleanup_orphans.py: 独立孤儿文件清理脚本
2026-06-21 14:49:46 +08:00
lacerate551
184511f4ec fix(server-release): 从 main 同步表格图片修复
纯逻辑同步,不涉及 API 格式变更:

1. chat_routes.py:
   - 新增 _replace_table_image_placeholders(): 将答案中 [图片]
     和 [N张图片] 占位符替换为 ![id](url) markdown 图片语法
   - _filter_images_by_answer: 补充 [图片]/![ 图片意图检测
   - import re 提升到模块级

2. manager.py:
   - 跨页表格 HTML 合并修复: BS 解析后追加 <tr> 行(原来直接
     拼接两个 <table> 导致第二表行被 html_table_to_markdown 丢弃)
   - 表头跳过逻辑改为对比第一行
   - 新增 text_level/bbox/table_type/table_nest_level/sub_type 元数据
2026-06-21 00:54:19 +08:00
lacerate551
2c84cb8a5f feat(server-release): 从 main 同步切片层级结构修复与解析增强
- parsers/mineru_parser.py: MinerU V2 解析增强 + 切片层级结构修复
- parsers/heading_rules.py: 标题识别规则引擎增强
- knowledge/manager.py: 跨页表格合并与切片后处理优化

切片数从旧版 819 降至 437(与本地 VLM 解析的 448 接近)
2026-06-20 22:00:57 +08:00
lacerate551
8f75c51c59 feat(server-release): 从 main 同步子章节级图片过滤 + VLM/LLM 推理模型兼容
- chat_routes: 子章节级图片过滤(section_path 传递、叶子节点匹配、发散检测)
- chat_routes: _FIGURE_ANSWER_KEYWORDS 移除单字"图""表",正则图号兜底
- lazy_enhance: defer_chromadb 参数避免后台线程 SQLite 写锁竞争
- lazy_enhance: 缓存内容校验(>=5字)和空结果保护
- llm_utils: reasoning_content 兜底(剥离 <think> 标签)+ 流式 reasoning 支持
- intent_analyzer: SYSTEM_PROMPT 增加追问补全逻辑
- manager: VLM 描述/摘要 max_tokens 提升至 2048 + Windows fcntl 兼容

不改变端口、API 接口和响应数据字段。
2026-06-20 20:27:01 +08:00
lacerate551
fda1b2f049 feat: 从 main 分支迁移解析器与检索优化(不影响 API 接口)
- 新增 heading_rules.py 标题规则引擎,替换硬编码正则链
- 重写 mineru_parser.py:v2 格式兼容、表单自动检测
- manager.py: 跨页表格合并规则收紧(防误合并)+ LLM token 上限提升
- engine.py: embedding 缓存 + 同 section 表格邻居扩展 + prompt 改进
- router.py: 路由分类 token 上限提升至 512
2026-06-10 12:10:22 +08:00
lacerate551
148559ee3c fix(knowledge): 全量修复多 worker 元数据竞态问题
1. collection.py: create/delete/update/exists 方法开头加 _load_metadata()
2. list_collections: 去掉磁盘扫描自动补充和 stale 清理逻辑,
   改为以元数据为唯一真相源,异常集合只跳过不删不改
3. manager.py: _load/_save_metadata 加 fcntl 文件锁防并发写覆盖,
   Windows 兼容(fcntl try/import 包裹)
2026-06-10 11:17:57 +08:00
lacerate551
cb75b9b274 fix(boundary): 修复多库边界问题、版本管理及删除清理
多库检索与存储修复:
- RRF 融合去重改用 (collection, chunk_id) 复合键,修复同名文件结果被吞
- DocStore 存储路径加 collection 前缀,修复跨库同名切片数据覆盖
- search_multiple 去重改用复合键
- chunk_id 解析改用 rsplit 兼容下划线文件名

上传与版本管理修复:
- 同名文件上传改为覆盖模式,自动清理旧切片
- 修复首次上传不创建版本记录
- 修复覆盖上传版本号回退到 v1
- sync ADDED 分支改用动态版本号生成
- _generate_version_id 改为基于全部版本递增
- 废止/恢复操作同步 SQLite 版本记录
- mark_document_as_superseded 改为仅更新 SQLite

删除清理修复:
- 删除文档时同步清理 SQLite 版本记录和变更日志
- 删除向量库时同步清理该库所有版本记录
- cleanup 改为清理 SQLite 记录而非 ChromaDB

测试:
- test_version_management.py: 27 条版本管理单元测试
- test_edge_cases.py: 28 条边界用例测试
- test_upload_dedup.py: 5 条上传去重测试
- e2e_risk_test.py: 27 条端到端风险测试

文档:
- 新增风险边界问题修复注意事项.md(面向后端的对接文档)
- 新增向量库边界风险分析.md
- 更新多篇现有文档
2026-06-04 23:58:44 +08:00
lacerate551
100d1a06eb init: RAG 知识库服务初始提交
- 后端 API(Flask + Gunicorn)
- RAG 引擎(混合检索 + 云端 Reranker + 引用溯源)
- 文档解析(MinerU + 多格式支持)
- Docker 生产部署配置
- 排除前端项目、敏感配置、模型文件
2026-06-04 17:35:27 +08:00