This commit is contained in:
Hua
2025-04-30 11:54:09 +08:00
parent 8eadc1498c
commit 719e7a82b5
24 changed files with 172 additions and 3250 deletions

192
README.md
View File

@ -1,80 +1,152 @@
# ai-code-review
# AI 代码审查服务
一个基于AI的代码审查工具支持多种Git平台和AI模型
这是一个基于 AI 的代码审查服务,支持多种 Git 平台和 AI 服务
## 功能特点
- 支持多Git平台(GitLab、Gitee、Gogs等)
- 支持多种AI模型(OpenAI、Ollama等)
- 支持AI服务负载均衡
- 提供Web界面进行配置管理
- 支持自动禁用异常的AI服务
- 支持多Git 平台GitLab、Gitea
- 支持多种 AI 服务:OpenAI、Ollama
- 自动代码审查
- 详细的审查报告
- 可配置的审查规则
- 支持自定义提示词
## 快速开始
1. 下载并编译项目:
### 环境要求
- JDK 17+
- Maven 3.8+
- Git 平台GitLab/Gitea
- AI 服务OpenAI/Ollama
### 配置
1. 复制配置文件模板:
```bash
git clone https://github.com/your-username/ai-code-review.git
cd ai-code-review
go build
cp src/main/resources/application.yml.template src/main/resources/application.yml
```
2. 配置config.yaml:
2. 编辑配置文件:
```yaml
port: 53321
admin_token: "your-admin-token" # 管理页面访问令牌
ais:
- name: "your-ai"
type: "ollama" # 或 "openai"
api_key: ""
url: "http://localhost:11434" # AI服务地址
model: "your-model" # 使用的模型名称
temperature: 0
stream: false
priority: 0 # 添加优先级配置
system_msg: |
你是一个代码审查员,你的职责是识别提交代码中的错误、性能问题和需要优化的地方。
你还负责提供建设性的反馈,并建议最佳实践来提高代码的整体质量。
server:
port: 53321
logging:
level:
com.codereview: DEBUG
admin:
token: your-admin-token
ai:
services:
- type: openai
enabled: true
api-key: your-openai-api-key
model: gpt-3.5-turbo
temperature: 0.7
system-msg: 你是一个代码审查助手
- type: ollama
enabled: false
url: http://localhost:11434
model: codellama
temperature: 0.7
system-msg: 你是一个代码审查助手
在审查代码时:
- 审查代码变更(差异)并提供反馈
- 仔细检查是否真的存在错误或需要优化的空间,突出显示它们
- 不要突出显示小问题和细节
- 如果有多个评论,请使用要点符号
- 你不需要解释代码的功能
- 请使用中文给出反馈
- 如果你认为不需要优化或修改,请只回复 666
weight: 1
enabled: true
auto_disable: true # 使用自己的自动禁用配置
max_failures: 5 # 覆盖全局配置
reset_after: 60 # 覆盖全局配置
git:
- name: "your-git"
type: "gitlab" # 或 "gitee", "gogs"
token: "your-git-token"
webhook_secret: "your-webhook-secret"
api_base: "your-git-api-base"
signature_header: X-Gitlab-Token
event_header: X-Gitlab-Event
platforms:
- name: gitlab
type: gitlab
api-base: https://gitlab.com/api/v4
token: your-gitlab-token
webhook-secret: your-webhook-secret
- name: gitea
type: gitea
api-base: https://gitea.example.com/api/v1
token: your-gitea-token
webhook-secret: your-webhook-secret
```
3. 运行服务:
### 构建
```bash
./ai-code-review
mvn clean package
```
4. 访问管理界面:
- 打开浏览器访问 `http://localhost:53321`
- 使用配置文件中的admin_token登录
- 在Web界面中管理AI和Git平台配置
5. 配置Git平台:
- 在你的Git平台中添加Webhook
- Webhook URL设置为: `http://your-server:53321/api/webhook/git-name`
- 设置Webhook密钥与配置文件中的webhook_secret一致
### 运行
## 注意事项
```bash
java -jar target/ai-code-review.jar
```
- 请确保AI服务和Git平台的API地址可以正常访问
- 妥善保管各类密钥和Token
- 建议在生产环境中使用HTTPS
## 使用指南
### 配置 Git 平台 Webhook
1. GitLab:
- 进入项目设置 -> Webhooks
- URL: `http://your-server:53321/webhook/gitlab`
- Secret Token: 配置文件中设置的 webhook-secret
- 触发事件: Push events
2. Gitea:
- 进入仓库设置 -> Webhooks
- URL: `http://your-server:53321/webhook/gitea`
- Secret: 配置文件中设置的 webhook-secret
- 触发事件: Push events
### 访问管理界面
- URL: `http://your-server:53321/admin`
- 使用配置文件中设置的 admin-token 进行认证
## 开发指南
### 项目结构
```
src/main/java/com/codereview/
├── config/ # 配置类
├── controller/ # 控制器
├── service/ # 服务接口
├── service/impl/ # 服务实现
└── util/ # 工具类
```
### 添加新的 Git 平台支持
1. 创建新的 WebhookEvent 实现类
2. 在 WebhookController 中添加处理逻辑
3. 更新配置文件结构
### 添加新的 AI 服务支持
1. 创建新的 AIService 实现类
2. 在配置文件中添加服务配置
3. 更新 AIServiceFactory
## 常见问题
1. Webhook 验证失败
- 检查 webhook-secret 配置
- 确认请求头中的签名
2. AI 服务调用失败
- 检查 API 密钥配置
- 确认服务是否可用
- 查看日志获取详细信息
## 贡献指南
1. Fork 项目
2. 创建特性分支
3. 提交更改
4. 推送到分支
5. 创建 Pull Request
## 许可证
MIT License