java
This commit is contained in:
192
README.md
192
README.md
@ -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
|
Reference in New Issue
Block a user