# AIreview **Repository Path**: laihuan110/AIreview ## Basic Information - **Project Name**: AIreview - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-28 - **Last Updated**: 2025-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🐛 Java BUG检测智能体 一个专门针对Java代码的智能BUG检测工具,支持**OpenAI GPT**和**Kimi K2**模型,使用AI技术深度分析Java代码,识别各种类型的BUG并提供详细的修复建议。 ## ✨ 核心功能 - 🔍 **专业Java分析**: 专门针对Java语言特性进行深度BUG检测 - 🤖 **多AI模型支持**: 支持OpenAI GPT和Kimi K2模型 - ⚡ **快速预扫描**: 基于正则表达式的快速问题识别 - 🎯 **精准分类**: 按严重程度分类BUG (高/中/低风险) - 📊 **详细报告**: 生成美观的HTML报告和简洁的摘要 - 🔧 **修复建议**: 提供具体的BUG修复方案和代码示例 ## 🤖 支持的AI模型 ### OpenAI GPT系列 - **gpt-3.5-turbo**: 性价比高,适合日常检测 - **gpt-4**: 检测质量更高,适合重要项目 - **gpt-4-turbo**: 更快的GPT-4版本 ### Kimi K2系列 (推荐) - **moonshot-v1-8k**: 8K上下文,适合一般代码分析 - **moonshot-v1-32k**: 32K上下文,适合大文件分析 - **moonshot-v1-128k**: 128K上下文,适合超大文件分析 ## 🐛 重点检测的BUG类型 ### 🔴 严重BUG (Critical) - **空指针异常** (NullPointerException) - **数组越界** (ArrayIndexOutOfBoundsException) - **内存泄漏** (Memory Leaks) - **SQL注入** (SQL Injection) - **资源泄漏** (Resource Leaks) - **死锁问题** (Deadlocks) ### 🟡 重要BUG (Major) - **线程安全问题** (Thread Safety Issues) - **异常处理不当** (Improper Exception Handling) - **性能问题** (Performance Issues) - **并发问题** (Concurrency Issues) - **资源管理问题** (Resource Management) ### 🟢 一般BUG (Minor) - **代码质量问题** (Code Quality Issues) - **命名规范** (Naming Conventions) - **代码重复** (Code Duplication) - **潜在逻辑错误** (Potential Logic Errors) ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置API密钥 ```bash cp .env.example .env ``` 编辑 `.env` 文件: #### 使用Kimi K2 (推荐) ```env AI_PROVIDER=kimi KIMI_API_KEY=your_kimi_api_key_here KIMI_MODEL=moonshot-v1-8k ``` #### 使用OpenAI GPT ```env AI_PROVIDER=openai OPENAI_API_KEY=your_openai_api_key_here OPENAI_MODEL=gpt-3.5-turbo ``` ### 3. 测试连接 ```bash # 测试AI服务连接 python main.py --test-connection ``` ### 4. 运行BUG检测 ```bash # 检测当前目录的Java项目 python main.py # 检测指定Java项目 python main.py --path /path/to/java/project # 只显示高风险BUG python main.py --severity high # 快速预扫描模式 python main.py --quick-only ``` ## 📋 命令行选项 ```bash python main.py [OPTIONS] 选项: -p, --path TEXT Java项目路径 (默认: 当前目录) -o, --output TEXT 报告输出目录 (默认: java_bug_reports) -m, --max-files INTEGER 最大检测文件数 (默认: 30) -s, --severity [all|high|medium] 只显示指定严重程度的BUG --dry-run 只扫描Java文件,不进行实际检测 --quick-only 只进行快速预扫描 --test-connection 测试AI服务连接 --help 显示帮助信息 ``` ## 🔧 配置说明 ### AI提供商配置 | 配置项 | 说明 | 示例值 | |--------|------|--------| | AI_PROVIDER | AI提供商选择 | `kimi` 或 `openai` | | KIMI_API_KEY | Kimi API密钥 | `sk-xxx` | | KIMI_MODEL | Kimi模型名称 | `moonshot-v1-8k` | | OPENAI_API_KEY | OpenAI API密钥 | `sk-xxx` | | OPENAI_MODEL | OpenAI模型名称 | `gpt-3.5-turbo` | ### 高级配置 | 配置项 | 说明 | 默认值 | |--------|------|--------| | MAX_TOKENS | 最大输出Token数 | `3000` | | TEMPERATURE | 生成温度 | `0.1` | | REQUEST_TIMEOUT | 请求超时时间(秒) | `60` | ## 💰 成本对比 ### Kimi K2 (推荐) - **moonshot-v1-8k**: ¥0.012/1K tokens - **moonshot-v1-32k**: ¥0.024/1K tokens - **moonshot-v1-128k**: ¥0.06/1K tokens ### OpenAI GPT - **gpt-3.5-turbo**: $0.002/1K tokens - **gpt-4**: $0.03/1K tokens - **gpt-4-turbo**: $0.01/1K tokens ### 成本估算示例 | 文件数量 | 平均大小 | 预估Token | Kimi成本 | OpenAI成本 | |---------|---------|-----------|----------|------------| | 10个 | 5KB | 15K | ¥0.18 | $0.03-0.45 | | 30个 | 5KB | 45K | ¥0.54 | $0.09-1.35 | | 50个 | 5KB | 75K | ¥0.90 | $0.15-2.25 | ## 📊 检测示例 ### 空指针异常检测 ```java // ❌ 检测到的问题 String str = null; int length = str.length(); // 潜在的NullPointerException // ✅ 修复建议 if (str != null) { int length = str.length(); } // 或使用Optional Optional.ofNullable(str).map(String::length).orElse(0); ``` ### 资源泄漏检测 ```java // ❌ 检测到的问题 FileInputStream fis = new FileInputStream("file.txt"); // 文件流未关闭,可能导致资源泄漏 // ✅ 修复建议 try (FileInputStream fis = new FileInputStream("file.txt")) { // 使用try-with-resources自动关闭资源 } ``` ## 📈 报告格式 ### HTML详细报告 - 🎨 美观的可视化界面 - 📊 统计图表和风险分布 - 📦 按Java包分组显示 - 🤖 显示使用的AI模型信息 - 🔍 预扫描结果展示 - 🔧 详细的修复建议 ### Markdown摘要报告 - 📋 简洁的统计摘要 - 🤖 AI模型使用统计 - 🏆 最常见问题排行 - 📝 优先修复建议 - 📈 Token消耗统计 ## 🔧 故障排除 ### 连接测试 ```bash # 测试AI服务连接 python main.py --test-connection ``` ### 常见问题 1. **API密钥错误** - 检查 `.env` 文件中的API密钥配置 - 确保选择了正确的AI提供商 2. **网络连接问题** - 确保网络可以访问对应的API服务 - 检查防火墙和代理设置 3. **模型不存在** - 检查模型名称是否正确 - 确认API密钥有权限访问该模型 4. **Token超限** - 减少MAX_TOKENS设置 - 限制单次处理的文件数量 ### 调试技巧 ```bash # 检查配置 python main.py --test-connection # 查看扫描结果 python main.py --dry-run # 快速预扫描 python main.py --quick-only ``` ## 🌟 为什么选择Kimi K2? 1. **成本优势**: 相比GPT-4便宜很多,性能相近 2. **长文本处理**: 支持128K上下文,适合大文件分析 3. **中文友好**: 对中文理解更好,报告质量高 4. **稳定性好**: 服务稳定,响应速度快 5. **无需翻墙**: 国内可直接访问 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进这个Java BUG检测工具! ## 📄 许可证 MIT License --- **⚠️ 注意**: - 使用前请确保有有效的API密钥 - 建议先在小项目上测试 - 推荐使用Kimi K2模型获得更好的性价比