Ummon

Ummon

使用知识图谱解锁代码洞察:将代码与概念连接起来,轻松查询,增强AI辅助。

⚠️ 警告:此项目处于早期开发阶段,尚未稳定。API 和功能在不同版本之间可能会有重大变化。

Ummon 是一个代码分析工具,它从代码库构建知识图谱,增强代码理解、改进 AI 辅助,并支持复杂查询。通过创建代码实体与领域概念之间的连接,使得对复杂软件系统的推理变得更简单。

安装

cargo install ummon

核心功能

  • 知识图谱构建:索引代码,映射实体关系,支持多种语言
  • 高级查询系统:使用结构化查询或自然语言探索代码库
  • 领域模型提取:识别业务实体与概念,连接实现细节

基本使用

1. 索引代码库

# 基本索引
ummon index /path/to/codebase

# 启用领域模型提取
ummon index /path/to/codebase --enable-domain-extraction

2. 查询代码库

# 自然语言查询
ummon query "show all authentication functions"

# 结构化查询
ummon query "select functions where name like 'auth%'" --no-llm

# 遍历查询(查找关系)
ummon query "functions calling functions where name like 'validate%'" --no-llm

3. 格式化输出

# JSON 格式输出
ummon query "select functions" --format json

# 树形结构输出
ummon query "select functions" --format tree

4. AI 辅助

ummon assist "implement a user registration function"

配置

Ummon 使用环境变量处理敏感信息:

  • OPENROUTER_API_KEY: LLM 服务的 API 密钥(用于查询和领域提取)

语言支持

  • Rust: 类/结构体、特征、实现、函数、模块
  • Python: 类、函数、装饰器、导入
  • JavaScript: 类、函数、箭头函数、导入
  • Java: 类、接口、方法、构造函数、字段

更多资源

查看查询系统文档了解更多详细查询选项。

许可证

APACHE 许可证