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
- 项目