CodeReview/docs/CONFIGURATION.md

299 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 配置说明
本文档详细介绍 DeepAudit 的所有配置选项,包括后端环境变量、前端配置和运行时配置。
## 目录
- [配置方式概览](#配置方式概览)
- [后端配置](#后端配置)
- [前端配置](#前端配置)
- [运行时配置](#运行时配置)
- [API 中转站配置](#api-中转站配置)
---
## 配置方式概览
DeepAudit 采用前后端分离架构,数据存储在后端 PostgreSQL 数据库中。
配置优先级(从高到低):
| 配置方式 | 适用场景 | 优先级 |
|---------|---------|--------|
| 运行时配置(浏览器 /admin | 快速切换 LLM、调试 | 最高 |
| 后端环境变量 | 生产部署、团队共享 | 中 |
| 默认值 | 开箱即用 | 最低 |
---
## 后端配置
后端配置文件位于 `backend/.env`,首次使用请复制示例文件:
```bash
cp backend/env.example backend/.env
```
### 完整配置参考
```env
# =============================================
# DeepAudit Backend 配置文件
# =============================================
# ========== 数据库配置 ==========
POSTGRES_SERVER=localhost # 数据库服务器地址
POSTGRES_USER=postgres # 数据库用户名
POSTGRES_PASSWORD=postgres # 数据库密码
POSTGRES_DB=deepaudit # 数据库名称
# DATABASE_URL= # 完整数据库连接字符串(可选,会覆盖上述配置)
# ========== 安全配置 ==========
SECRET_KEY=your-super-secret-key # JWT 签名密钥(生产环境必须修改!)
ALGORITHM=HS256 # JWT 加密算法
ACCESS_TOKEN_EXPIRE_MINUTES=11520 # Token 过期时间(分钟),默认 8 天
# ========== LLM 通用配置 ==========
LLM_PROVIDER=openai # LLM 提供商(见下方支持列表)
LLM_API_KEY=sk-your-api-key # API 密钥
LLM_MODEL= # 模型名称(留空使用默认模型)
LLM_BASE_URL= # 自定义 API 端点API 中转站)
LLM_TIMEOUT=150 # 请求超时时间(秒)
LLM_TEMPERATURE=0.1 # 生成温度0-1越低越确定
LLM_MAX_TOKENS=4096 # 最大生成 Token 数
# ========== 各平台独立配置(可选) ==========
# 如果需要同时配置多个平台,可以单独设置
# OPENAI_API_KEY=sk-xxx
# OPENAI_BASE_URL=https://api.openai.com/v1
# GEMINI_API_KEY=xxx
# CLAUDE_API_KEY=xxx
# QWEN_API_KEY=xxx
# DEEPSEEK_API_KEY=xxx
# ZHIPU_API_KEY=xxx
# MOONSHOT_API_KEY=xxx
# BAIDU_API_KEY=api_key:secret_key # 百度格式特殊
# MINIMAX_API_KEY=xxx
# DOUBAO_API_KEY=xxx
# OLLAMA_BASE_URL=http://localhost:11434/v1
# ========== Git 仓库配置 ==========
GITHUB_TOKEN= # GitHub Personal Access Token
GITLAB_TOKEN= # GitLab Personal Access Token
# ========== 扫描配置 ==========
MAX_ANALYZE_FILES=50 # 单次扫描最大文件数
MAX_FILE_SIZE_BYTES=204800 # 单文件最大大小(字节),默认 200KB
LLM_CONCURRENCY=3 # LLM 并发请求数
LLM_GAP_MS=2000 # 请求间隔(毫秒),避免限流
# ========== 存储配置 ==========
ZIP_STORAGE_PATH=./uploads/zip_files # ZIP 文件存储目录
# ========== 输出配置 ==========
OUTPUT_LANGUAGE=zh-CN # 输出语言zh-CN中文| en-US英文
```
### 支持的 LLM 提供商
| Provider | 说明 | 适配器类型 |
|----------|------|-----------|
| `openai` | OpenAI GPT 系列 | LiteLLM |
| `gemini` | Google Gemini | LiteLLM |
| `claude` | Anthropic Claude | LiteLLM |
| `qwen` | 阿里云通义千问 | LiteLLM |
| `deepseek` | DeepSeek | LiteLLM |
| `zhipu` | 智谱 AI (GLM) | LiteLLM |
| `moonshot` | 月之暗面 Kimi | LiteLLM |
| `ollama` | Ollama 本地模型 | LiteLLM |
| `baidu` | 百度文心一言 | 原生适配器 |
| `minimax` | MiniMax | 原生适配器 |
| `doubao` | 字节豆包 | 原生适配器 |
### 配置示例
#### OpenAI
```env
LLM_PROVIDER=openai
LLM_API_KEY=sk-your-api-key
LLM_MODEL=gpt-4o-mini
```
#### 通义千问
```env
LLM_PROVIDER=qwen
LLM_API_KEY=sk-your-dashscope-key
LLM_MODEL=qwen-turbo
```
#### Ollama 本地模型
```env
LLM_PROVIDER=ollama
LLM_MODEL=llama3
LLM_BASE_URL=http://localhost:11434/v1
```
#### 百度文心一言
```env
LLM_PROVIDER=baidu
LLM_API_KEY=your_api_key:your_secret_key
LLM_MODEL=ernie-bot-4
```
---
## 前端配置
前端配置文件位于 `frontend/.env`,首次使用请复制示例文件:
```bash
cp frontend/.env.example frontend/.env
```
### 完整配置参考
```env
# ========== 后端 API 配置 ==========
VITE_API_BASE_URL=/api # 后端 API 地址
# ========== 应用配置 ==========
VITE_APP_ID=deepaudit
# ========== 代码分析配置 ==========
VITE_MAX_ANALYZE_FILES=40 # 最大分析文件数
VITE_LLM_CONCURRENCY=2 # LLM 并发数
VITE_LLM_GAP_MS=500 # 请求间隔(毫秒)
VITE_OUTPUT_LANGUAGE=zh-CN # 输出语言
```
### 配置说明
| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| `VITE_API_BASE_URL` | 后端 API 地址Docker 部署时使用 `/api` | `/api` |
| `VITE_MAX_ANALYZE_FILES` | 单次扫描最大文件数 | `40` |
| `VITE_LLM_CONCURRENCY` | 前端 LLM 并发请求数 | `2` |
| `VITE_LLM_GAP_MS` | 前端请求间隔 | `500` |
| `VITE_OUTPUT_LANGUAGE` | 分析结果输出语言 | `zh-CN` |
---
## 运行时配置
DeepAudit 支持在浏览器中进行运行时配置,无需重启服务。
### 访问方式
1. 登录系统后,访问 `/admin` 系统管理页面
2. 或点击侧边栏的"系统管理"菜单
### 可配置项
#### LLM 配置
- LLM 提供商选择
- API Key 配置
- 模型选择
- 自定义 API 端点(中转站)
- 超时时间
- 温度参数
- 最大 Token 数
#### 分析参数
- 最大分析文件数
- 并发请求数
- 请求间隔时间
- 输出语言
#### Git 集成
- GitHub Token
- GitLab Token
### 配置优先级
运行时配置 > 后端环境变量 > 默认值
---
## 数据存储
DeepAudit 采用前后端分离架构,所有数据存储在后端 PostgreSQL 数据库中。
### 架构说明
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 前端 │────▶│ 后端 API │────▶│ PostgreSQL │
│ (React) │ │ (FastAPI) │ │ 数据库 │
└─────────────┘ └─────────────┘ └─────────────┘
```
### 特点
- ✅ 数据持久化存储
- ✅ 支持多用户
- ✅ 支持用户认证
- ✅ 数据导入/导出功能
- ✅ 团队协作
### 数据管理
`/admin` 页面的"数据库管理"标签页中,可以:
- **导出数据**: 将所有数据导出为 JSON 文件备份
- **导入数据**: 从 JSON 文件恢复数据
- **清空数据**: 删除所有数据(谨慎操作)
- **健康检查**: 检查数据库连接状态
---
## API 中转站配置
许多用户使用 API 中转服务来访问 LLM更稳定、更便宜、解决网络问题
### 后端配置(推荐)
```env
LLM_PROVIDER=openai
LLM_API_KEY=中转站提供的Key
LLM_BASE_URL=https://your-proxy.com/v1
LLM_MODEL=gpt-4o-mini
```
### 运行时配置
1. 访问系统管理页面(`/admin`
2. 在"系统配置"标签页中:
- 选择 LLM 提供商
- 填入中转站提供的 API Key
- 设置自定义 API 基础 URL
3. 保存配置
### 常见中转站
| 中转站 | 说明 |
|--------|------|
| [OpenRouter](https://openrouter.ai/) | 支持多种模型 |
| [API2D](https://api2d.com/) | 国内访问友好 |
| [CloseAI](https://www.closeai-asia.com/) | 价格实惠 |
### 注意事项
1. 确保中转站支持你选择的模型
2. 中转站的 API 格式需要与 OpenAI 兼容
3. 部分中转站可能有请求限制
---
## 更多资源
- [部署指南](DEPLOYMENT.md) - 详细的部署说明
- [LLM 平台支持](LLM_PROVIDERS.md) - 各 LLM 平台的配置方法
- [常见问题](FAQ.md) - 配置相关问题解答