rafal-qa/slopo

Embedding-based discovery of duplicated logic for projects too large or messy to maintain reliably

解决的问题

Slopo 是一款 CLI 工具,旨在寻找“最难检测”的代码重复——特别是那些以不同方式实现但逻辑相似,且传统复制粘贴检测器会遗漏的代码。它针对的是 AI 编程代理或人类开发者在大型或维护不佳的代码库中,可能重复实现现有解决方案的盲点。

运作原理

该工具使用嵌入模型将代码片段的含义表示为向量。通过计算这些嵌入之间的余弦相似度,Slopo 即使在语法不同的情况下也能识别功能相似的代码。它将源代码拆分为“代码单元”(函数与块),去除注释,并根据相似度分数及其在代码库中的距离(优先考虑距离较远的代码)对潜在重复项进行排名。

目标对象

它适用于在大型或杂乱代码库中工作,且难以找到现有实现内容的开发者;也适用于使用 AI 编程代理(如 Claude Code 或 Codex)的开发者,他们希望通过提供潜在重复项的重点报告来降低 Token 成本并提高精确度。

特色亮点

  • 多语言支持:适用于 Python, TypeScript, JavaScript, Java, Kotlin, C, C++, C#, Go, Rust, PHP, Elixir, Ruby 与 Swift。
  • AI 代理整合:包含专为 Claude Code 与 Codex 设计的技能,可自动审查与筛选重复项。
  • 灵活的模型支持:通过 LiteLLM 兼容于 Jina AI, Voyage AI 以及通过 Ollama 运行的本地模型。
  • 基于距离的排名:提升在不同模块中或同一文件中距离较远的相似代码的优先级,以突显最隐蔽的重复项。

相关

  • Dispatch
  • 项目
  • 项目
  • Dispatch
  • 项目