Sem:基于 Git 的语义理解工具,功能强大且支持多技术栈,准确率提升 2.3 倍!
2026/6/7 8:38:09 网站建设 项目流程

Sem:功能丰富的语义理解工具

Sem 是基于 Git 的语义理解工具,支持差异对比、责任追溯、影响分析、日志查看,且以函数为单位,而非代码行。用户可复制命令 `brew install sem-cli`,并在项目目录 `~/project` 中操作。

同一提交的不同视角展示

在同一提交中,左侧是 Git 展示的内容,右侧是实际发生的变更。使用 `git diff` 和 `sem diff` 有不同结果,3 个实体在 1 个文件中发生了变更,与原始的代码行差异对比相比,AI 代理在使用 `sem` 输出时的准确性提高了 2.3 倍。

六个命令,一个二进制文件

Sem 的所有功能可在任何 Git 仓库中使用,无需配置和插件。其六个命令分别为:

  • `sem diff`:查看变更内容,基于实体级别的差异对比,支持重命名检测、结构哈希和单词级别的内联高亮显示。
  • `sem blame`:追溯变更责任人,按实体显示每个函数、类或方法的最后一次提交信息。
  • `sem impact`:分析变更影响,通过跨文件依赖图展示依赖给定函数的所有实体,以及受影响的测试。
  • `sem log`:查看实体演变历史,查看特定函数的所有提交记录。
  • `sem entities`:查看路径下的实体,列出指定路径下的所有函数、类、方法和类型及其行号范围。
  • `sem context`:为 AI 提供智能上下文,基于令牌预算的上下文窗口,包含目标实体、其依赖项和被依赖项,可适配任何大语言模型(LLM)的提示。

所有命令都支持 `--json` 选项,以输出机器可读的结果。

支持多种技术栈

Sem 支持 26 种编程语言和 5 种数据格式,只需一个二进制文件。典型差异对比时间为 8 毫秒,支持 26 种语言,无需配置,下载量达 4000+。编程语言包括 TypeScript、JavaScript、Python 等;数据格式包括 JSON、YAML、TOML、CSV、Markdown。

立即试用,操作简便

用户可通过以下命令试用 Sem:

$ brew install sem-cli
$ sem setup
✓ 创建包装脚本
✓ 设置全局 Git 配置 diff.external = sem
✓ 安装预提交钩子

完成!现在在任何仓库中运行 `git diff` 都将使用 `sem`。若要恢复原状,运行:sem unsetup

只需一个命令,所有 `git diff` 都将变为 `sem diff`,无需配置文件。也可以使用命令 `cargo install --git https://github.com/Ataraxy-Labs/sem sem-cli` 进行安装。Sem 由 Ataraxy Labs 开发。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询