当前位置: 首页 > news >正文

个人报告6:学习资料上传与可配置解释来源

更新日期2026-05-22更新主题学习资料上传与可配置解释来源C 层解释增强初版一、更新概述本次在既有B 阶段静态检测PythonSQL 注入、硬编码密钥、危险函数之上落地了C 层解释增强的第一版能力用户可在插件中上传自己的学习资料在分析检出漏洞后通过模态对话框选择解释所依据的资料来源由后端生成更完整的中文漏洞说明与修改方案。该能力不改变漏洞检测规则本身而是在 /analyze 返回结果之后通过新接口 /enrich-explanations 对 RiskItem 的 reason、how_to_fix 等字段进行二次 enrich。二、新增功能2.1 插件学习资料管理命令说明CodeGuard 导师上传学习资料从本地选择 .txt / .md 等文本文件上传PDF 会提示先转为文本CodeGuard 导师管理学习资料查看已上传资料列表支持删除资料保存在插件全局状态globalState键名 codeguard.referenceMaterials上限最多20份单份内容约10 万字符每条资料包含id、title、content、uploadedAt管理学习资料2.2 插件检出漏洞后的解释来源选择分析命令选中片段 / 当前文件在至少检出 1 条漏洞且配置项 codeGuardTutor.promptExplanationSource 为 true默认时会弹出居中模态对话框三选一① 仅根据我上传的资料— 从已上传文本中按漏洞类型关键词匹配段落生成说明② 参考我的资料与网上资源— 合并上传资料与内置公开安全知识③ 仅参考网上资源— 仅使用后端内置 OWASP/CWE 风格知识不发起外网请求用户也可选择「跳过使用引擎默认说明」保留 B 阶段转换后的原始文案。说明若本次分析未检出任何漏洞不会出现该对话框输出面板会提示可使用样例文件验证。2.3 后端解释 enrich 服务新增路由POST /enrich-explanations输入漏洞列表、源码片段、解释来源模式、可选参考资料列表输出enrich 后的 risks以及 materials_used、web_references_used 元数据实现模块backend/core/context/explanation_service.py资料匹配逻辑离线按漏洞类型SQLInjection、HardcodedSecret、DangerousFunction 等维护关键词表对上传资料标题与正文打分选取相关段落摘录约数百字无关键词命中时可回退使用首份资料的前几段网上资源离线内置按风险类型映射 OWASP/CWE 风格说明与修复建议当前为本地字典非实时爬取或调用外部 API降级策略选择「仅根据上传资料」但未上传任何资料时自动降级为网上资源避免返回空解释三、架构与数据流用户执行分析命令 → POST /analyzeB 阶段检测 result_converter → 若 risks.length 0 → 模态框选择 explanation_source → POST /enrich-explanationsC 层explanation_service → 合并 enrich 后的 risks 写回响应 → 输出面板 / Toast 展示与《开发框架契约》中A / B / C 分层对齐A插件资料 CRUD、来源选择、展示 enrich 结果B检测无改动仍由 dispatch_analysis convert_intermediate_result_to_response 完成C解释本次新增core/context/由 analyze 与 enrich-explanations 分步编排四、接口说明4.1POST /enrich-explanations请求体JSON示例{explanation_source:materials_and_web,reference_materials:[{id:uuid,title:实验三 SQL 安全,content:本章要求使用参数化查询……,uploaded_at:2026-05-22T10:00:00.000Z}],risks:[/* AnalyzeResponse.risks 中的 RiskItem 列表 */],source_code:……,language:python,file_path:/path/to/file.py}explanation_source 枚举值含义materials_only仅引用上传资料materials_and_web上传资料 内置公开知识web_only仅内置公开知识响应体字段字段说明explanation_source实际使用的来源模式risksenrich 后的风险列表reason、how_to_fix 等已更新materials_used引用到的资料标题列表web_references_used引用到的公开参考标识如 OWASP SQL Injection插件侧 enrich URL 由 codeGuardTutor.backendUrl 推导将/analyze替换为/enrich-explanations。五、配置项配置键类型默认值说明codeGuardTutor.promptExplanationSourcebooleantrue检出漏洞后是否弹出解释来源模态框既有配置backendUrl、requestTimeoutMs 等保持不变。六、交互与体验优化同日修订初版使用顶部QuickPick选择来源易被进度通知、输出面板抢焦点用户反馈「看不到选项」。同日已调整为使用showInformationMessage modal: true居中模态对话框去掉第二步「是否生成详细说明」确认选定来源后直接调用 enrich未检出漏洞时在输出面板输出明确提示行更新插件启动方式.txt中的操作说明与样例路径七、涉及文件清单7.1 新增文件路径说明backend/schemas/explain_schema.pyenrich 请求/响应与ReferenceMaterial模型backend/core/context/__init__.pyC 层包入口backend/core/context/explanation_service.py解释生成与资料匹配核心逻辑backend/api/routes/explain.py/enrich-explanations路由backend/tests/test_explanation_service.py解释服务单元测试vscode-extension/src/userMaterials.ts资料存储、上传/管理、来源选择 UI7.2 修改文件路径说明backend/app.py注册explain_routervscode-extension/src/extension.ts注册新命令、分析后 enrich 流程、展示 enrich 元数据vscode-extension/package.json新命令、新配置项、activationEvents插件启动方式.txt补充资料上传与解释来源选项说明八、已知限制与后续方向项目说明外网检索「网上资源」为后端内置知识库非实时联网LLM未接入大模型解释以模板 资料摘录 关键词匹配为主跨文件分析跨文件补全检出漏洞后暂未自动弹出解释来源选项主分析路径已支持PDF上传时不解析 PDF需用户自行转为文本flow_trace完整传播链仍在 B 阶段内部enrich 主要消费RiskItem已有字段九、小结本次更新完成了「用户资料 可选解释来源 → 漏洞说明与修改方案」的端到端闭环教学场景下可先上传实验讲义再在检出漏洞后按课程要求选择解释依据提升说明与课程资料的一致性。后续可能会扩展接入 API在 explanation_service 中按 explanation_source 组装 prompt 跨文件结果统一 enrichWebview 展示引用段落 资料向量化检索RAG替代关键词匹配 。目前智能支持文件内漏洞解答跨文件还有点bug输出也不好看。最近解决一下这些问题下次博客应该会写这个方面。后面可能会尝试接入api连网查资料先去平台上找点好用的大模型试试水。
http://www.zskr.cn/news/1359645.html

相关文章:

  • Flutter_01 工具准备1
  • 2026年全国青少年信息素养大赛初赛真题(算法应用主题赛C++小学组初赛真题2:文末附答案和解析)
  • 2026年全国青少年信息素养大赛初赛真题(算法应用主题赛C++小学组初赛真题1:文末附答案和解析)
  • DeepSeek-R1 在 CANN 上的推理部署
  • 最新论文降重工具横向测评|新手零踩雷选择指南
  • 钦州6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • RimSort终极指南:3步解决环世界MOD加载顺序混乱的完整方案
  • 股票低开必读:5条黄金口诀,教你反手掌握主动权
  • 从开题到定稿零返工:okbiye 毕业论文 AI 写作,把格式和内容难题都解决了
  • 资产治理:QNAP 存算融合架构理顺工程机械装配车间异构图纸流转
  • CTF-流量分析(布尔注入和时间盲注)
  • 【LeetCode刷题日记】一篇搞定二叉搜索树:从性质到实战,700.搜索+98.验证二叉搜索树
  • 布尔注入习题
  • 【限时公开】Midjourney火焰生成黄金三角法则:Chaos=35 + Style=raw + --sref 8921(附2024Q3火效Prompt库下载密钥)
  • GQA:多查少算的 Attention 头组合
  • Android面试-Kotlin作用域函数
  • 电商设计必备字体合集,收藏这篇就够了!
  • 紧急预警:未覆盖“幻觉漂移”和“上下文坍缩”的AI Agent测试=无效测试!3类高危长周期衰减场景的实时监测方案
  • 模拟IC设计原理图EDA工具推荐:新思科技如何重新定义模拟IC设计效率与精度
  • 论文检测优化新思路:okbiye 智能降重降 AI,高效合规完成文稿校准
  • 留学出国旅游必备!告别低头翻译,亲爱的翻译官AR眼镜才是真刚需
  • AI答案优化效果可以靠哪些第三方数据验证?
  • 为什么顶尖红圈所已部署Claude法律分析私有化集群?——揭秘3层脱敏架构、11项司法场景微调参数与审计留痕机制
  • 贵阳6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • CANN-昇腾NPU-模型加密-怎么保护知识产权
  • 韦斯试验——可程式恒温恒湿试验箱:功能与优势
  • 为什么92%的移动端应用留不住用户?Lovable开发框架的3个反直觉真相
  • Taotoken 的 Token Plan 套餐如何帮助我们预测并锁定开发成本
  • c语言中scanf的基本用法、返回值、占位符、赋值忽略符
  • 抖音批量下载神器:免费无水印下载工具的完整指南