# code-analysis-tool **Repository Path**: xmadog/code-analysis-tool ## Basic Information - **Project Name**: code-analysis-tool - **Description**: 项目代码自动分析工具(demo) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 源代码自动分析工具 基于Code-Grap的源代码自动分析工具,支持多语言代码分析,使用OpenAI API进行语义分析。 ## 功能特性 - 🚀 **多语言支持**: Python, JavaScript/TypeScript - 📦 **压缩包处理**: 支持.zip格式的源代码压缩包 - 🤖 **智能分析**: 使用qwen3-next-80b-a3b-thinking进行语义分析和功能匹配 - 🔄 **Code-Graph图存储**: 采用tree-sitter进行源代码的静态解析,将解析出的**Project**,**Package**,**Module**,**Class**,**Function**,**Method**,**Folder**,**File**,**ExternalPackage**等特征关系存在memgraph图数据中,为后续大模型的源代码分析提供丰富的上下文信息 - 📊 **RAG**: 使用Faiss进行轻量级向量存储 - 🛡️ **错误处理**: 完善的异常处理和监控机制 ## 系统架构 ### 核心组件 ``` ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ FastAPI API │───>│ 压缩包处理服务 │───> │ 代码解析引擎 │ │ │ │ │ │ - 项目结构分析 │ │ - 文件上传 │ │ -解压文件 │ │ - 语言检测 │ │ - 结果返回 │ │ │ │ - 语法关系解析 │ └─────────────────┘ └──────────────────┘ └─────────────────┘ │ ▼ ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ LLM服务 │ │ Faiss函数语义服务 │ │ Code-Graph服务 │ │ - 项目描述功能分析|<───│ |<─── │ │ │ - agent构建 │ │ - 函数级向量存储 │ │ - 语法关系存储 │ │ - 项目功能&函数生成| │ - 语义查询 │ │ - 节点关系查询 │ └─────────────────┘ └──────────────────┘ └─────────────────┘ ``` ### 数据流程图 ```mermaid graph TD A[用户上传压缩包+功能描述] --> B[FastAPI接收请求] B --> C[压缩包解压处理] C --> D[项目结构和代码分析] D --> E[项目结构语代码关系图存储] E --> F[函数节点数据向量化存储] A --> G[根据用户输入的项目功能描述总结生成“项目主要功能列表”] G --> H[根据每项项目主要功能查询相关函数节点,构建上下文进行模型推理] F --> H E --> H H --> I[结果格式化,输出最终结果] ``` ## 项目结构 ``` code-analysis-tool/ ├── api/ # FastAPI的restful api接口实现 ├── core/ # 核心逻辑 │ ├── code_parser/ # 代码解析器的实现 │ ├── fastapi_extension/ # FastAPI框架的扩展 | ├── model/ # 实体层 ├── servcie/ # 服务层 ├── test/ # 单元测试 └── utils/ # 工具函数&配置类 ``` ## 快速开始 ### 环境要求 - Python 3.11+ - OpenAI API Key - 至少4GB内存 ### 安装步骤 1. 克隆项目 ```bash git clone https://gitee.com/xmadog/code-analysis-tool.git cd code-analysis-tool ``` 2. 安装依赖 ```bash pip install -r requirements.txt ``` 3. 启动Memgraph database: ```bash docker run -d --rm -p 7687:7687 memgraph/memgraph-mage:latest ``` 4. 配置环境变量 ```bash vim ./utils/config.py # 编辑config.py文件,设置LLM_API_KEY等配置或者直接在运行时对LLM_API_KEY等环境变量进行配置 ``` 5. 启动服务 ```bash python app.py ``` ### Docker-Compose安装/启动 ⚠️ **警告:** 在Macos M1环境下编译docker镜像,出现依赖的pymgclient包运行时提示"ImportError: /home/pymgclient/mgclient.cpython-311-aarch64-linux-gnu.so: undefined symbol: zError"异常,目前未能解决。 配置环境变量 ```bash vim docker-compose.yml ``` 修改如下配置 ```yaml environment: #open_ai_api的接口url - LLM_API_URL=OPENAI_API_URL #open_ai_api的模型名称 - LLM_API_MODEL=OPNAI_API_MODEL #open_ai_api的key - LLM_API_KEY=OPEN_API_MODEL_KEY ``` 启动容器 ```bash docker-compose up ``` ### API使用 ```bash curl -X POST "http://localhost:8000/api/code/analyze" \ -F "code_zip=@your_project_code.zip" \ -F "description=项目主要功能介绍" ``` ## 配置说明 ```python { #项目名称 'title': env.str('TITLE','代码自动分析DEMO'), #项目版本 'version': env.str('VER','1.0.0'), #项目监听IP地址 'host': env.str('SERVER_HOST','0.0.0.0'), #项目监听端口地址 'port': env.int('SERVER_PORT',8000), #是否开启调试模式 'debug': env.bool('DEBUG',True), #是否开启自动变更重启功能 'reload': env.bool('RELOAD',True), #项目进程数 'workers': env.int('WORKERS',1), #日志相关配置 'log': { 'path': env.str('LOG_PATH','./logs'), 'level': env.str('LOG_LEVEL','INFO'), }, #图数据库配置 'memgraph': { 'host': env.str('GRAPHDB_HOST','127.0.0.1'), 'port': env.int('GRAPHDB_PORT',7687), }, #大模型接口配置 'llm': { 'key': env.str('LLM_API_KEY','你的API_KEY'), 'url': env.str('LLM_API_URL','https://openai.qiniu.com/v1'), 'model': env.str('LLM_API_MODEL','qwen3-next-80b-a3b-thinking'), } } ``` ## 许可证 MIT License ## 技术支持 如有问题请提交 Issue 或联系开发团队。