Skip to content

chore: sync local code#137

Open
yzj-hsz wants to merge 1 commit into
xiaozhejiya:mainfrom
wyh16:chore/sync-local-code-20260608
Open

chore: sync local code#137
yzj-hsz wants to merge 1 commit into
xiaozhejiya:mainfrom
wyh16:chore/sync-local-code-20260608

Conversation

@yzj-hsz

@yzj-hsz yzj-hsz commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • 修复错题 RAG 索引的事务边界,调整 backend/core/rag.py 的写入流程,避免索引刷新时因内部 commit/rollback 打断外层业务事务;对应在题目编辑、答案更新、作答更新和手动重建索引流程中显式处理提交与回滚
  • 增强 PostgreSQL / pgvector 初始化兼容性,在 backend/db/__init__.py 中新增扩展预检查、向量列补建和 ivfflat 索引补建逻辑;在 backend/db/models.py 中为 RagDocumentChunk 增加 embedding_vector 字段,并通过自定义类型兼容 PostgreSQL 与 SQLite
  • 补充 PostgreSQL 初始化测试,新增 backend/tests/test_db_init.py,覆盖 vector 扩展创建、缺失向量列自动补建、索引创建以及已存在列时跳过重复 ALTER TABLE 的场景
  • 修正题目和项目删除时的 RAG 清理逻辑,删除题目时同步删除对应 RagDocumentChunk,删除项目时批量清理项目下题目的 RAG chunk,避免遗留脏索引数据
  • 收紧错题入库约束,POST /api/save-to-db 现在要求明确传入并解析错题项目 project_id,避免题目落入空项目;同时补充接口测试覆盖缺少项目和正常导入到指定项目的场景
  • 兼容历史模型配置格式,backend/core/model_selection.py 中恢复对逗号分隔模型名的解析,避免旧数据格式影响模型选择逻辑
  • 调整聊天流式接口的执行顺序,在 backend/routes/chat.py 中先校验会话是否存在,再解析模型选择,避免不存在会话时提前返回模型配置错误
  • 修复若干工作流与导出边界行为,包括 backend/src/workflow.py 中 OCR 批次构建与去重逻辑、backend/src/utils.py 中错题导出对 question_id 的兼容过滤和无分组标题层级处理,并补充对应测试说明与用例

Test plan

  • backend/tests/test_db_init.py 覆盖 PostgreSQL 初始化流程,可验证 vector 扩展、embedding_vector 列和 ivfflat 索引的自动创建逻辑
  • 删除题目后同步删除对应 RagDocumentChunk,并在批次清空时一并删除空批次,backend/tests/test_migrate_and_delete_question.py 已覆盖
  • POST /api/save-to-db 在缺少 project_id 时返回 400,传入有效项目时可正常导入并绑定到目标错题库,backend/tests/test_web_routes.py 已覆盖
  • OCR 工作流在纯图片、纯 PDF、混合文件场景下正确选择解析路径,不会多余调用异步图片解析,backend/tests/test_workflow_helpers.py 已覆盖
  • 聊天流式测试补齐系统托管 OpenAI provider 数据,保证相关路由测试在新的模型选择顺序下可稳定通过,backend/tests/test_chat_routes.py 已同步更新
  • 题目编辑、答案更新、用户作答更新后的 RAG 自动刷新,仍建议补做一次端到端手工验证
  • POST /api/rag/reindex 在真实 PostgreSQL / pgvector 环境下的整链路重建效果,仍建议补做一次联调验证
  • 错题导出在仅有 question_id、无 uid 的历史数据场景下的 Markdown 结构展示,仍建议补做一次人工验收

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant