fix: 修正 LLM 渠道测试请求被拦截误报为网络异常 (#1223) - #1225
Conversation
🤖 自动审查报告
📁 修改的文件
🧠 AI 代码审查意见结论Ready to Merge 结构化结果
代码与文档审查细节
CI 检查状态
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bb7cb6ae0a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过。Issue #1223 指向的误分类会直接误导用户排查方向,本 PR 将 provider/gateway blocked 独立诊断有明确修复价值。
- 是否有对应 issue:有,Fixes #1223。
- PR 类型:fix/test/docs。后端错误分类、Web 提示、回归测试与 LLM 配置文档均有同步更新。
- description 完整性:完整。已说明动机、改动范围、兼容性风险、未更新 README 的原因、验证命令结果和最小回滚方式,符合 AGENTS.md 对用户可见行为与 changelog 的要求。
- 是否可直接合入:可。当前 CI 为 success,改动面覆盖后端分类、Web 展示、测试和中英文文档;
mergeable_state=blocked在本仓库规则下不单独构成阻断。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过。Issue #1223 的误分类会误导用户排查方向,拆分 provider/gateway blocked 诊断有明确修复价值。
- 是否有对应 issue:有,Fixes #1223。
- PR 类型:fix/test/docs + 修正后端错误分类、补充 Web 提示与回归测试,并同步 LLM 配置文档和 changelog。
- description 完整性:完整。已覆盖动机、范围、兼容性影响、README 未更新原因、验证命令结果和 revert 级回滚方案,符合 AGENTS.md 对用户可见行为变更的要求。
- 是否可直接合入:可。当前 CI 为 success,
mergeable_state=blocked在本仓库保护规则下不单独构成阻断;未发现必须修改的正确性问题。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过。Issue #1223 指向的 blocked 文案误分类会误导用户排查方向,拆分为独立诊断有明确修复价值。
- 是否有对应 issue:有,Fixes #1223。
- PR 类型:fix/docs/test + 后端错误分类修复、Web 提示补充、回归测试与 LLM 配置文档同步。
- description 完整性:完整。已说明动机、范围、兼容性影响、README 未更新原因、验证命令结果和 revert 级回滚方案,符合 AGENTS.md 对用户可见行为、文档和
docs/CHANGELOG.md的要求。 - 是否可直接合入:可。当前 CI 为 success;结合完整改动文件与 diff,本 PR 未修改 provider/model/Base URL/SDK 依赖默认值,也未改配置保存、迁移或清理逻辑;已有测试覆盖 blocked、quota/rate 优先级以及 firewall/network 负例,前序 review 指出的 firewall 误判风险已修正。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
* fix: classify blocked LLM channel tests (ZhuLinsen#1223) * fix: avoid firewall blocked false positives (ZhuLinsen#1223)
* fix: classify blocked LLM channel tests (ZhuLinsen#1223) * fix: avoid firewall blocked false positives (ZhuLinsen#1223)
* fix: classify blocked LLM channel tests (ZhuLinsen#1223) * fix: avoid firewall blocked false positives (ZhuLinsen#1223)
PR Type
Background And Problem
Issue #1223 反馈 LLM 渠道测试遇到
Your request was blocked等服务商或中转网关主动拦截错误时,会被误归类为网络异常或未知错误。这样会引导用户优先排查 Base URL、代理、TLS 等本地网络问题,而不是账号风控、地域限制、代理商网关策略、内容安全策略或请求来源限制。本 PR 将这类明确的 blocked 文案拆成独立诊断,避免与通用网络、鉴权或模型不可用错误混淆。
Scope Of Change
src/services/system_config_service.py/modelsHTTP 错误分类中新增request_blocked/provider_blocked。tests/test_system_config_service.pyapps/dsa-web/src/components/settings/LLMChannelEditor.tsxprovider_blocked排障提示。apps/dsa-web/src/components/settings/__tests__/LLMChannelEditor.test.tsxdocs/CHANGELOG.md、docs/llm-providers.md、docs/LLM_CONFIG_GUIDE.md、docs/LLM_CONFIG_GUIDE_EN.md。README.md,因为这不是首页级能力变化。Issue Link
Fixes #1223
Verification Commands And Results
关键输出/结论:
python -m pytest tests/test_system_config_service.py tests/test_system_config_api.py -q:119 passed。python -m py_compile src/services/system_config_service.py:通过。./scripts/ci_gate.sh:backend-gate: all checks passed,1731 passed, 2 deselected, 47 warnings, 151 subtests passed。npm ci:安装完成;npm audit汇总提示 10 个既有依赖漏洞,本 PR 未改动依赖。npm run test -- LLMChannelEditor.test.tsx:37 passed。npm run lint:通过。npm run build:通过;保留项目既有的 Vite chunk size warning。git diff --check:通过。Compatibility And Risk
error_code=request_blocked、details.reason=provider_blocked。.env、迁移或回填逻辑;旧配置不会被自动改写或清空。network_error对 blocked 场景自动重试,修复后会收到request_blocked且retryable=false。这是纠正误判,但属于可见行为变化。blocked,也不使用宽泛的request was blocked子串。Rollback Plan
最小回滚方式是 revert this PR。无需额外回滚配置、数据库、
.env或用户数据;回滚后 blocked 文案会恢复到旧的网络/鉴权/未知兜底分类。EXTRACT_PROMPT Change (if applicable)
未修改
src/services/image_stock_extractor.py或EXTRACT_PROMPT。展开 / Expand: Full EXTRACT_PROMPT
Checklist
docs/CHANGELOG.md;README.md仅在首页级信息变化时更新,细节优先写入docs/*.md/ If user-visible changes are included, relevant docs anddocs/CHANGELOG.mdare updated;README.mdis updated only for homepage-level changes, with details kept indocs/*.md