使用大型语言模型的自动修复程序·乔利的博客

主要观点:

  • Semgrep 是一个能通过匹配抽象语法树(AST)来搜索代码的工具,可通过 playground 测试模式,在同类工具中能力较强。
  • Semgrep 不仅能搜索还支持重写匹配,有简单的规则定义示例。
  • 内置的自动修复功能有限,正在探索用大型语言模型(LLM)来修复 Semgrep 匹配,创建了 semgrepx 工具,将匹配输入 LLM 并替换为响应,如使用“semgrep -l go --pattern 'log.$A(...)' --json > matches.json ; semgrepx llm 'update this go to use log.Printf' < matches.json”,且 Anthropic 的 Claude 3 Opus 模型在该任务中表现更好,会匹配较大表达式提供更多上下文并大量使用 llm 的模板功能。

关键信息:

  • Semgrep 搜索代码的方式及 playground 地址。
  • 简单的 Semgrep 规则定义示例。
  • 用 semgrepx 结合 LLM 修复匹配的操作及相关注意事项。

重要细节:

阅读 14
0 条评论