CodeSense 是一个智能代码仓库分析工具,利用AI模型自动分析代码库结构、理解项目架构,并生成全面的技术报告。
- 🤖 AI智能分析: 使用OpenAI模型(GPT-4、GPT-3.5)理解代码结构
- 📁 智能代码探索: 自动导航代码仓库,智能选择文件读取
- 🏗️ 架构识别: 识别功能模块、包结构和依赖关系
- 📊 全面报告: 生成详细的Markdown技术分析报告
- 🔍 上下文感知: 维护对话历史,智能压缩上下文
- 🛡️ 安全保障: 限制文件访问范围,防止目录穿越
- 🌐 多语言支持: 支持中文(zh)和英文(en)输出
- Go 1.26 或更高版本
- OpenAI API密钥(或兼容的API端点)
go install github.com/yuhua2000/codesense@latest# 克隆仓库
git clone https://github.com/yuhua2000/codesense.git
cd codesense
# 构建项目
go build -o codesense main.go
# 或全局安装
go installexport OPENAI_API_KEY="你的API密钥"
codesense -path /你的/代码/路径 -model gpt-4-turbo使用方法: codesense [选项]
选项:
-path string
代码仓库路径 (默认 ".")
-model string
AI模型名称 (如 "gpt-4-turbo", "gpt-3.5-turbo")
-key string
OpenAI API密钥 (可选,可使用OPENAI_API_KEY环境变量)
-url string
API基础URL (可选,默认为OpenAI官方端点)
-lang string
输出语言: zh (中文) 或 en (英文) (默认 "zh")
-output string
输出报告文件路径 (可选,默认输出到终端)- 使用GPT-4分析当前目录:
codesense -model gpt-4-turbo -lang en- 分析指定项目并保存到文件:
codesense -path ~/projects/awesome-project -model gpt-4-turbo -output analysis.md- 使用自定义API端点:
codesense -path . -model gpt-4-turbo -url "https://api.openai.com/v1/" -key "sk-..."codesense/
├── main.go # 主入口点和CLI接口
├── agent.go # 代码分析智能代理,包含AI交互循环
├── openai.go # OpenAI API客户端实现
├── file.go # 文件系统操作(列出、读取、搜索)
├── prompt.go # 分析提示词和模板
├── utils.go # 工具函数和解析器
├── go.mod # Go模块定义
└── go.sum # 依赖校验和
- 目录扫描: 首先扫描目标目录结构(默认扫描2层深度)
- AI代理初始化: 创建带有分析提示的AI代理
- 智能探索: AI代理根据项目结构决定读取哪些文件
- 上下文管理: 维护并压缩对话历史,避免超出token限制
- 报告生成: 将分析结果合成完整的Markdown报告
AI代理在执行过程中可以执行以下命令:
list_dir- 列出目录内容read_file- 读取文件内容(支持大文件分块读取)grep- 在文件中搜索模式finish- 完成分析并生成最终报告
工具生成的报告包含以下部分:
# 项目概述
• 项目描述和目的
• 核心功能和业务价值
• 技术架构概览
# 技术分析
• 编程语言和技术栈
• 框架和依赖分析
• 关键方法和入口点
# 功能清单
• 功能模块(3-6个最重要的模块)
• 模块职责和关系
• 关键实现方法
# 实现细节
• 关键目录和包
• 核心代码入口点
• 重要实现细节查看 info.md 查看CodeSense工具分析自身代码库生成的实际报告,展示了工具的自我分析能力。
export OPENAI_API_KEY="你的API密钥"
export OPENAI_BASE_URL="https://api.openai.com/v1/" # 可选支持的模型(通过OpenAI API):
gpt-4-turbo-previewgpt-4gpt-3.5-turbo- 其他兼容模型
# 克隆并构建
git clone https://github.com/yuhua2000/codesense.git
cd codesense
go build
# 运行测试
go test ./...- Fork仓库
- 创建功能分支
- 进行修改
- 提交Pull Request
欢迎贡献!请随时提交Pull Request。
- Fork本仓库
- 创建功能分支 (
git checkout -b feature/新功能) - 提交更改 (
git commit -m '添加新功能') - 推送到分支 (
git push origin feature/新功能) - 提交Pull Request
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
- OpenAI Go SDK 提供OpenAI API客户端
- Go社区提供的优秀工具和库
- 需要OpenAI API访问权限(或兼容API)
- 大型代码库受token限制
- 分析深度受API成本和性能限制
- 单个文件读取有大小限制
如有问题或建议:
- 查看 Issues 页面
- 如果问题未被解决,请创建新issue
CodeSense - 用AI让代码分析更智能 🚀"