tharunprinz/GITPEN-AI

GitHub: tharunprinz/GITPEN-AI

一款集成多种 AI 模型的全栈 GitHub 仓库分析器,提供架构洞察、代码健康度评分、安全漏洞检测及上下文聊天问答。

Stars: 3 | Forks: 0

# GITPEN AI
![GITPEN AI Banner](https://img.shields.io/badge/GITPEN-AI-8b5cf6?style=for-the-badge&logo=github&logoColor=white) **一款由 AI 驱动的代码仓库分析器和架构助手。** [![React](https://img.shields.io/badge/React-19.2.0-61DAFB?style=flat-square&logo=react&logoColor=white)](https://reactjs.org/) [![Vite](https://img.shields.io/badge/Vite-7.3.1-646CFF?style=flat-square&logo=vite&logoColor=white)](https://vitejs.dev/) [![Node.js](https://img.shields.io/badge/Node.js-Express-339933?style=flat-square&logo=node.js&logoColor=white)](https://nodejs.org/) [![MongoDB](https://img.shields.io/badge/MongoDB-Atlas-47A248?style=flat-square&logo=mongodb&logoColor=white)](https://www.mongodb.com/) [![Google Gemini](https://img.shields.io/badge/Google-Gemini%20API-4285F4?style=flat-square&logo=google&logoColor=white)](https://ai.google.dev/) [![OpenRouter](https://img.shields.io/badge/OpenRouter-API-FF6B6B?style=flat-square)](https://openrouter.ai/)
## 概述 GITPEN AI 是一个全栈应用程序,用于分析 GitHub 代码仓库,提供架构洞察、代码健康度评分以及可行的改进建议。它利用 **Google Gemini** 进行结构分析,并利用 **OpenRouter** 实现基于代码仓库上下文的自然语言聊天。 该应用程序会获取代码仓库的元数据、文件结构和提交历史,然后通过 AI 模型处理这些数据,以生成摘要、风险评估和贡献者统计信息。结果会被缓存到 MongoDB 中,以优化性能并降低 API 成本。 ## 功能 - **代码仓库分析**:自动提取技术栈、文件结构和提交历史 - **🤖 深度代码分析(全新)**:Groq AI 会分析实际的源代码文件,以评估其质量、安全性和性能 - **代码健康度评分**:基于可维护性、结构和代码质量的算法评分(0-100) - **AI 聊天机器人**:由 OpenRouter(Claude、GPT-4、Llama 3、Nemotron)驱动的上下文感知聊天界面 - **贡献者洞察**:可视化展示顶级贡献者和近期活动 - **可行的改进建议**:AI 生成的建议,会引用具体的文件路径 - **🛡️ 安全分析**:识别安全漏洞,并提供严重程度级别和建议 - **⚡ 性能洞察**:检测性能瓶颈和优化机会 - **🎯 智能文件选择**:Groq AI 会智能识别出 10-15 个最关键的文件进行分析 - **智能缓存**:基于 MongoDB 的缓存策略(24小时),以降低 API 成本 - **动态模型选择**:通过环境变量切换 AI 提供商,无需更改代码 - **响应式 UI**:采用毛玻璃效果设计和紫色主题,针对桌面和移动端进行了优化 - **安全**:API 密钥仅存储在服务端,绝不会暴露给前端 ## 前置条件 在开始之前,请确保您具备以下条件: - **Node.js**(v16 或更高版本) - **npm** 或 **yarn** - **MongoDB Atlas 账户**(免费版即可) - [在此注册](https://www.mongodb.com/cloud/atlas) - **GitHub Personal Access Token** - [在此生成](https://github.com/settings/tokens)(需要 `repo` 权限) - **Google Gemini API Key** - [在此获取密钥](https://makersuite.google.com/app/apikey) - **OpenRouter API Key** - [在此获取密钥](https://openrouter.ai/keys) ## 安装说明 ### 1. 克隆代码仓库 ``` git clone https://github.com/tharunprinz/GITPEN-AI.git cd GITPEN-AI ``` ### 2. 安装依赖项 ``` # 安装 backend 依赖 cd backend npm install # 安装 frontend 依赖 cd ../frontend npm install ``` ### 3. 配置 #### 后端环境变量 创建一个名为 `backend/.env` 的文件并添加以下内容: ``` # Server 配置 PORT=5001 # MongoDB Atlas 连接 MONGODB_URI=mongodb_url # GitHub API Token(必需) GITHUB_TOKEN=ghp_your_github_personal_access_token # Google Gemini API(用于分析的主要 AI) GEMINI_API_KEY=your_gemini_api_key_here # Groq API(新增 - 用于深度代码分析) GROQ_API_KEY=your_groq_api_key_here # OpenRouter API(用于 Chat 功能) OPENROUTER_API_KEY=your_openrouter_api_key_here # Fallback/custom models(可选) CHAT_MODEL=meta-llama/llama-3.1-70b-instruct ``` **重要说明:** - `GITHUB_TOKEN`:在 https://github.com/settings/tokens 生成,需具有 `repo` 权限 - `MONGODB_URI`:从 MongoDB Atlas → Connect → Drivers 获取 - `GEMINI_API_KEY`:可在 Google AI Studio 获取免费版 - `GROQ_API_KEY`:**全新** - 在 https://console.groq.com/keys 获取免费密钥(用于代码分析) - `OPENROUTER_API_KEY`:聊天功能所必需 #### 前端环境变量 创建一个名为 `frontend/.env` 的文件并添加以下内容: ``` VITE_API_URL=http://localhost:5001 ``` ## 使用说明 ### 1. 启动后端服务器 ``` cd backend npm run dev ``` 后端将运行在 **http://localhost:5001** ### 2. 启动前端开发服务器 打开一个新的终端: ``` cd frontend npm run dev ``` 前端将运行在 **http://localhost:5173** ### 3. 分析代码仓库 1. 打开浏览器并导航至 **http://localhost:5173**(或 3000) 2. 输入公开的 GitHub 代码仓库 URL(例如:`https://github.com/expressjs/express`) 3. 点击 **Analyze** 并等待 AI 处理该代码仓库 4. 查看包含洞察、健康度评分和改进建议的仪表板 5. 使用 **AI Chat** 提出有关该代码仓库的问题 ## 项目结构 ``` GITPEN-AI/ │ ├── backend/ │ ├── config/ │ │ └── db.js # MongoDB connection │ ├── controllers/ │ │ ├── scanController.js # Analysis logic │ │ └── chatController.js # Chat logic │ ├── models/ │ │ ├── Scan.js # MongoDB schema for scans │ │ └── ChatSession.js # MongoDB schema for chat │ ├── routes/ │ │ ├── scanRoutes.js # Scan API routes │ │ └── chatRoutes.js # Chat API routes │ ├── services/ │ │ ├── geminiService.js # Gemini AI service │ │ ├── githubService.js # GitHub API client │ │ ├── groqService.js # Groq AI service │ │ └── openRouterService.js # OpenRouter chat service │ ├── scratch/ # Scratch test files │ ├── .env # Environment variables │ ├── server.js # Express server │ └── package.json │ ├── frontend/ │ ├── src/ │ │ ├── pages/ │ │ │ ├── Home.jsx # Landing page │ │ │ ├── Dashboard.jsx # Analysis dashboard │ │ │ └── ScanDetails.jsx # Scan details and chat │ │ ├── services/ │ │ │ └── api.js # Axios API client │ │ ├── App.jsx # Main app component │ │ ├── main.jsx # Entry point │ │ └── index.css # Main styles │ ├── .env # Frontend environment │ ├── tailwind.config.js # Tailwind configuration │ ├── vite.config.js # Vite configuration │ └── package.json │ ├── .gitignore ├── package.json # Root dependencies └── README.md # This file ``` ## API Endpoints ### 分析代码仓库 ``` POST /api/scan Content-Type: application/json { "repoUrl": "https://github.com/owner/repo" } ``` ### 与代码仓库聊天 ``` POST /api/chat/:scanId Content-Type: application/json { "message": "What does this project do?" } ``` ### 获取扫描历史 ``` GET /api/scan/history ``` ### 获取扫描详情 ``` GET /api/scan/:id ``` ### 获取文件内容 ``` GET /api/scan/:id/file?path=path/to/file.js ``` ## 技术栈 ### 前端 - React - UI 库 - Vite - 构建工具 - React Router - 路由 - Tailwind CSS - 样式 - Lucide React - 图标 - React Hot Toast - 通知 - Axios - HTTP 客户端 ### 后端 - Node.js - 运行时 - Express - Web 框架 - MongoDB + Mongoose - 数据库 - Google Generative AI - Gemini 集成 - OpenRouter SDK - 多模型 AI - Groq SDK - 快速推理 - Axios - GitHub API 客户端 - CORS - 跨域支持 - dotenv - 环境配置 ## 许可证 本项目基于 **MIT License** 授权。
**作者:[tharunprinz](https://github.com/tharunprinz)** *通过智能代码分析实现安全*
标签:AI代码分析, GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, 架构分析, 自定义脚本