Conversation
XiaoCow666
approved these changes
Sep 19, 2026
XiaoCow666
left a comment
Owner
There was a problem hiding this comment.
CodeSense 自动评审
未发现会导致接口无法运行、知识证据泄露、核心流式问答回归或任务目标未完成的阻塞问题。SSE 的空回答与流中断现在会携带安全证据回执,前端能够显示错误并渲染该回执。
合并后可以继续改进的地方
- 浏览器在服务端错误事件到达前发生真实网络断开时,前端只能走通用网络异常分支,无法保留尚未接收的知识证据;PR 描述已明确这一边界,建议后续通过浏览器端端到端演练确认用户体验。
- 学生页集成测试目前主要断言渲染后的脚本包含错误处理钩子字符串,尚未直接执行浏览器端 SSE 错误事件后的证据渲染行为;可在后续增加浏览器自动化测试。
已有验证信息
- PR 提供的定向测试证据:
python -m pytest tests/test_code_advice_knowledge.py tests/test_knowledge_evidence_integration.py -q --disable-warnings,7 passed,退出码 0。 - PR 提供的全量测试证据:
python -m pytest -q --disable-warnings,749 passed,退出码 0。 - PR 描述声称 Python 静态编译、
git diff --check及页面脚本语法校验通过。
评审事件:61fee020-b3fc-11f1-85a2-d145913b7c2c
XiaoCow666
approved these changes
Sep 22, 2026
XiaoCow666
left a comment
Owner
There was a problem hiding this comment.
未发现所提供 diff 中存在必须修改的问题,可以合并。
本次仅完成静态审查,未运行命令或测试。已检查范围:
routes/api.py::generate():空回答、LLM 中断和其他异常统一构造 error 事件,并附带已有的knowledge_fields,便于失败时显示证据回执。templates/submit_code.html:streamErrorPayload将 SSE 错误传递到外层异常处理,使用服务端提示并调用renderKnowledgeReceipt()。services/knowledge_optimization.py、services/knowledge_rag.py:调用预算在 embedding 执行前检查,计数按请求创建;默认 provider 保持cjk_ngram。services/knowledge_evidence.py:公共投影保留timeout、rate_limited及对应回退码。- 新增测试覆盖服务端中断事件、预算拒绝、provider 选择和状态投影。
后续建议(不阻塞):
tests/test_knowledge_evidence_integration.py新增断言只检查 HTML 中的字符串。建议补充浏览器行为验证:回答产生部分内容后收到 error 事件,确认页面显示错误提示和证据回执,并能重新发送问题。tests/test_code_advice_knowledge.py的中断用例替换了检索函数和 LLM client,因此能够验证 Flask 接口的事件组装,外部 provider 中断行为仍需单独验证。请在 PR description 中保留这一范围说明。- 合并前针对最终提交运行
python -m pytest tests/test_code_advice_knowledge.py tests/test_knowledge_evidence_integration.py tests/test_knowledge_optimization.py tests/test_knowledge_rag.py tests/test_knowledge_evidence.py -q --disable-warnings,在 PR description 记录提交 SHA、命令和实际结果;所述749 passed属于贡献者提供的结果,本次未独立复验。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
变更范围
阶段十五:把阶段十四的知识证据能力接入学生代码工作台真实流式问答入口,并补齐 AI 流中断时的可恢复失败路径。
routes/api.py:/api/code_advice 的 SSE 空回答、LLM 中断和未知异常统一返回安全的知识证据状态;不新增跨作业检索数据。templates/submit_code.html:前端不再吞掉 SSE error 事件;显示可理解的错误信息,并保留本次检索的知识证据回执。tests/test_code_advice_knowledge.py:补充真实接口中断集成测试。tests/test_knowledge_evidence_integration.py:验证学生提交页和证据回执/失败处理钩子。KNOWLEDGE_RAG_STAGE15.md:记录入口、复现、回滚和风险。本分支基于阶段十四 commit
e4cd81e(PR #61);阶段十四先合并后,本 PR 可视为其上的阶段十五增量。验证命令及结果
python -m pytest tests/test_code_advice_knowledge.py tests/test_knowledge_evidence_integration.py -q --disable-warningspython -m pytest -q --disable-warningsgit diff --check:通过。事实与推断边界
已确认:真实 Flask 登录会话、作业权限、/submit 页面、/api/code_advice SSE 成功路径和流中断路径均能保持安全证据投影;旧的 done/非流式成功路径未改变。
未验证:真实外部 AI provider、浏览器端真实网络断线、生产 Redis、生产数据库和线上部署。生产 provider 成本、全局配额和 SLA 仍需单独决策。
回滚与后续风险
回滚本 PR commit 即可恢复原错误事件和前端处理,不涉及数据库结构、权限、部署或核心成功响应字段。仍建议补一次真实浏览器网络中断演练,并在 PR #61/本 PR 评审和隔离验证通过后再标记阶段任务完成。