feat: Update backend configuration and environment variable examples, creating backup environment files.

This commit is contained in:
vinland100 2026-02-26 16:23:13 +08:00
parent ccffef1997
commit 9d9462ae55
4 changed files with 275 additions and 25 deletions

238
backend/.env.bak Normal file
View File

@ -0,0 +1,238 @@
# =============================================
# DeepAudit Backend 配置文件
# =============================================
# 复制此文件为 .env 并填入实际配置
# =============================================
# 数据库配置
# =============================================
# PostgreSQL 数据库连接配置
# Docker Compose 部署时使用 db 作为服务器地址
POSTGRES_SERVER=localhost
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=deepaudit
# 完整数据库连接字符串(可选,会覆盖上述配置)
# DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost/deepaudit
# =============================================
# 安全配置
# =============================================
# JWT 签名密钥 - 生产环境必须修改为随机字符串!
# 建议使用: openssl rand -hex 32
SECRET_KEY=44c222c64424e93e41a12b74e85f800a8a87608a30bc18ce7dd722be48e61b6c
# JWT 加密算法
ALGORITHM=HS256
# Token 过期时间(分钟),默认 8 天
ACCESS_TOKEN_EXPIRE_MINUTES=11520
# =============================================
# LLM 通用配置
# =============================================
# 支持的 provider:
# - LiteLLM 适配器: openai, gemini, claude, qwen, deepseek, zhipu, moonshot, ollama
# - 原生适配器: baidu, minimax, doubao
LLM_PROVIDER=openai
# API 密钥
LLM_API_KEY=sk-efd56221e9d4497e831e43398ee535ed
# 模型名称(留空使用 provider 默认模型)
# OpenAI: gpt-4o-mini, gpt-4o, gpt-3.5-turbo
# Gemini: gemini-2.0-flash, gemini-1.5-pro
# Claude: claude-3-5-sonnet-20241022, claude-3-haiku-20240307
# Qwen: qwen-turbo, qwen-plus, qwen-max
# DeepSeek: deepseek-chat, deepseek-coder
# Zhipu: glm-4-flash, glm-4
# Moonshot: moonshot-v1-8k, moonshot-v1-32k
# Ollama: llama3, codellama, qwen2.5, deepseek-coder
# LLM_MODEL=qwen3-next-80b-a3b-instruct
# 改用代码模型
LLM_MODEL=qwen3-coder-flash
# 自定义 API 端点API 中转站)
# 示例: https://your-proxy.com/v1
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# 请求超时时间(秒)
LLM_TIMEOUT=300
# 生成温度0-1越低越确定性
LLM_TEMPERATURE=0.7
# 最大生成 Token 数 最高支持32768
LLM_MAX_TOKENS=32768
# =============================================
# 各平台独立配置(可选)
# =============================================
# 如果需要同时配置多个平台,可以单独设置
# 运行时可通过 /admin 页面切换
# OpenAI
# OPENAI_API_KEY=sk-xxx
# OPENAI_BASE_URL=https://api.openai.com/v1
# Google Gemini
# GEMINI_API_KEY=xxx
# Anthropic Claude
# CLAUDE_API_KEY=sk-ant-xxx
# 阿里云通义千问
# QWEN_API_KEY=sk-xxx
# DeepSeek
# DEEPSEEK_API_KEY=sk-xxx
# 智谱 AI
# ZHIPU_API_KEY=xxx
# 月之暗面 Kimi
# MOONSHOT_API_KEY=sk-xxx
# 百度文心一言(格式: api_key:secret_key
# BAIDU_API_KEY=your_api_key:your_secret_key
# MiniMax
# MINIMAX_API_KEY=xxx
# 字节豆包
# DOUBAO_API_KEY=xxx
# Ollama 本地模型
# OLLAMA_BASE_URL=http://localhost:11434/v1
# =============================================
# Agent 审计配置 (Multi-Agent v3.0.0 核心必须)
# =============================================
# Agent 审计开关(必须开启,是核心功能)
AGENT_ENABLED=true
# Agent 最大迭代次数
AGENT_MAX_ITERATIONS=5
# Agent 单次审计超时时间(秒)
AGENT_TIMEOUT=1800
# Redis 配置Agent 任务队列 - 必须)
# Docker Compose 部署时使用 redis 作为服务器地址
REDIS_URL=redis://localhost:6379/0
# =============================================
# 嵌入模型配置RAG 功能,独立于主 LLM
# =============================================
# 嵌入模型 provider: openai, ollama, cohere, huggingface
# 生产环境中需在docker-compose.yml中配置
EMBEDDING_PROVIDER=openai
# 嵌入模型名称
# OpenAI: text-embedding-3-small, text-embedding-3-large, text-embedding-ada-002
# Ollama: nomic-embed-text, mxbai-embed-large
EMBEDDING_MODEL=text-embedding-v4
# 嵌入模型维度
EMBEDDING_DIMENSION=1024
# 嵌入模型 API Key留空则使用 LLM_API_KEY
EMBEDDING_API_KEY=sk-efd56221e9d4497e831e43398ee535ed
# 注意在生产环境中在docker-compose.yml中配置
# 嵌入模型 Base URL留空则使用默认值
# EMBEDDING_BASE_URL=http://127.0.0.1:8003/v1 # 不再使用本地
EMBEDDING_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # 阿里云
# =============================================
# 向量数据库配置RAG 功能)
# =============================================
# 向量数据库类型: chroma
VECTOR_DB_TYPE=chroma
# ChromaDB 配置(本地模式)
CHROMA_PERSIST_DIRECTORY=./data/chroma
# =============================================
# 沙箱配置(漏洞验证 - 核心必须)
# =============================================
# 沙箱功能开关(必须开启,是漏洞验证的核心组件)
SANDBOX_ENABLED=true
# 沙箱 Docker 镜像
# 构建方式 1: docker compose build sandbox
# 构建方式 2: cd docker/sandbox && ./build.sh
SANDBOX_IMAGE=deepaudit/sandbox:latest
# 沙箱内存限制
SANDBOX_MEMORY_LIMIT=512m
# 沙箱 CPU 限制(核心数)
SANDBOX_CPU_LIMIT=1.0
# 是否禁用沙箱网络(安全建议开启)
SANDBOX_NETWORK_DISABLED=true
# 沙箱执行超时时间(秒)
SANDBOX_TIMEOUT=30
# =============================================
# Git 仓库配置
# =============================================
# GitHub Personal Access Token
# 获取地址: https://github.com/settings/tokens
# 权限要求: repo (私有仓库) 或 public_repo (公开仓库)
GITHUB_TOKEN=
# GitLab Personal Access Token
# 获取地址: https://gitlab.com/-/profile/personal_access_tokens
# 权限要求: read_repository
GITLAB_TOKEN=
# Gitea Access Token
# 获取地址: https://[your-gitea-instance]/user/settings/applications
# 权限要求: read_repository
# GITEA_TOKEN=f02b82fa51f26f2b13ed2ca67afe3faee49892b7 # http://sl.vrgon.com:3000/ 账号vinland100
# GITEA_TOKEN=896be9e332f3c60933a5eb931973db450b69b842 # http://182.96.17.140:82/
GITEA_TOKEN=379a049b8d78965fdff474fc8676bca7e9c70248 # http://sl.vrgon.com:3000/ 账号ai-bot
# Gitea Webhook Secret
GITEA_WEBHOOK_SECRET=zheke@703
# =============================================
# 扫描配置
# =============================================
# 单次扫描最大文件数
MAX_ANALYZE_FILES=500
# 单文件最大大小(字节),默认 200KB
MAX_FILE_SIZE_BYTES=204800
# LLM 并发请求数(注意 API 限流)
LLM_CONCURRENCY=20
# LLM 请求间隔(毫秒),避免触发限流
LLM_GAP_MS=0
# =============================================
# 存储配置
# =============================================
# ZIP 文件存储目录
ZIP_STORAGE_PATH=./uploads/zip_files
# =============================================
# 输出配置
# =============================================
# 分析结果输出语言
# zh-CN: 中文
# en-US: 英文
OUTPUT_LANGUAGE=zh-CN
# 注意生产环境中在docker-compose.yml中配置
# Gitea 配置
## gitea host url用于自动在PR下面回复
GITEA_HOST_URL=http://127.0.0.1:82
## ai-bot账号issue读写权限token
GITEA_BOT_TOKEN=7d6c0192fd3ea285e36822d62851138d2b872b23

View File

@ -57,7 +57,7 @@ class Settings(BaseSettings):
BAIDU_API_KEY: Optional[str] = None # 格式: api_key:secret_key BAIDU_API_KEY: Optional[str] = None # 格式: api_key:secret_key
MINIMAX_API_KEY: Optional[str] = None MINIMAX_API_KEY: Optional[str] = None
DOUBAO_API_KEY: Optional[str] = None DOUBAO_API_KEY: Optional[str] = None
OLLAMA_BASE_URL: Optional[str] = "http://localhost:11434/v1" OLLAMA_BASE_URL: Optional[str] = None
# GitHub配置 # GitHub配置
GITHUB_TOKEN: Optional[str] = None GITHUB_TOKEN: Optional[str] = None
@ -67,7 +67,7 @@ class Settings(BaseSettings):
# Gitea配置 # Gitea配置
GITEA_TOKEN: Optional[str] = None GITEA_TOKEN: Optional[str] = None
GITEA_HOST_URL: Optional[str] = "http://localhost:3000" GITEA_HOST_URL: Optional[str] = None
GITEA_BOT_TOKEN: Optional[str] = None GITEA_BOT_TOKEN: Optional[str] = None
GITEA_WEBHOOK_SECRET: Optional[str] = None GITEA_WEBHOOK_SECRET: Optional[str] = None

View File

@ -21,7 +21,7 @@ POSTGRES_DB=deepaudit
# ============================================= # =============================================
# JWT 签名密钥 - 生产环境必须修改为随机字符串! # JWT 签名密钥 - 生产环境必须修改为随机字符串!
# 建议使用: openssl rand -hex 32 # 建议使用: openssl rand -hex 32
SECRET_KEY=your-super-secret-key-change-this-in-production SECRET_KEY=44c222c64424e93e41a12b74e85f800a8a87608a30bc18ce7dd722be48e61b6c
# JWT 加密算法 # JWT 加密算法
ALGORITHM=HS256 ALGORITHM=HS256
@ -38,7 +38,7 @@ ACCESS_TOKEN_EXPIRE_MINUTES=11520
LLM_PROVIDER=openai LLM_PROVIDER=openai
# API 密钥 # API 密钥
LLM_API_KEY=sk-your-api-key LLM_API_KEY=sk-efd56221e9d4497e831e43398ee535ed
# 模型名称(留空使用 provider 默认模型) # 模型名称(留空使用 provider 默认模型)
# OpenAI: gpt-4o-mini, gpt-4o, gpt-3.5-turbo # OpenAI: gpt-4o-mini, gpt-4o, gpt-3.5-turbo
@ -49,20 +49,23 @@ LLM_API_KEY=sk-your-api-key
# Zhipu: glm-4-flash, glm-4 # Zhipu: glm-4-flash, glm-4
# Moonshot: moonshot-v1-8k, moonshot-v1-32k # Moonshot: moonshot-v1-8k, moonshot-v1-32k
# Ollama: llama3, codellama, qwen2.5, deepseek-coder # Ollama: llama3, codellama, qwen2.5, deepseek-coder
LLM_MODEL=
# LLM_MODEL=qwen3-next-80b-a3b-instruct
# 改用代码模型
LLM_MODEL=qwen3-coder-flash
# 自定义 API 端点API 中转站) # 自定义 API 端点API 中转站)
# 示例: https://your-proxy.com/v1 # 示例: https://your-proxy.com/v1
LLM_BASE_URL= LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# 请求超时时间(秒) # 请求超时时间(秒)
LLM_TIMEOUT=150 LLM_TIMEOUT=300
# 生成温度0-1越低越确定性 # 生成温度0-1越低越确定性
LLM_TEMPERATURE=0.7 LLM_TEMPERATURE=0.7
# 最大生成 Token 数 # 最大生成 Token 数 最高支持32768
LLM_MAX_TOKENS=30000 LLM_MAX_TOKENS=32768
# ============================================= # =============================================
# 各平台独立配置(可选) # 各平台独立配置(可选)
@ -124,21 +127,26 @@ REDIS_URL=redis://localhost:6379/0
# 嵌入模型配置RAG 功能,独立于主 LLM # 嵌入模型配置RAG 功能,独立于主 LLM
# ============================================= # =============================================
# 嵌入模型 provider: openai, ollama, cohere, huggingface # 嵌入模型 provider: openai, ollama, cohere, huggingface
# 生产环境中需在docker-compose.yml中配置
EMBEDDING_PROVIDER=openai EMBEDDING_PROVIDER=openai
# 嵌入模型名称 # 嵌入模型名称
# OpenAI: text-embedding-3-small, text-embedding-3-large, text-embedding-ada-002 # OpenAI: text-embedding-3-small, text-embedding-3-large, text-embedding-ada-002
# Ollama: nomic-embed-text, mxbai-embed-large # Ollama: nomic-embed-text, mxbai-embed-large
EMBEDDING_MODEL=text-embedding-3-small EMBEDDING_MODEL=text-embedding-v4
# 嵌入模型维度 # 嵌入模型维度
EMBEDDING_DIMENSION=2560 EMBEDDING_DIMENSION=1024
# 嵌入模型 API Key留空则使用 LLM_API_KEY # 嵌入模型 API Key留空则使用 LLM_API_KEY
EMBEDDING_API_KEY= EMBEDDING_API_KEY=sk-efd56221e9d4497e831e43398ee535ed
# 注意在生产环境中在docker-compose.yml中配置
# 嵌入模型 Base URL留空则使用默认值 # 嵌入模型 Base URL留空则使用默认值
EMBEDDING_BASE_URL= # EMBEDDING_BASE_URL=http://127.0.0.1:8003/v1 # 不再使用本地
EMBEDDING_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # 阿里云
# ============================================= # =============================================
# 向量数据库配置RAG 功能) # 向量数据库配置RAG 功能)
@ -179,34 +187,34 @@ SANDBOX_TIMEOUT=30
# 获取地址: https://github.com/settings/tokens # 获取地址: https://github.com/settings/tokens
# 权限要求: repo (私有仓库) 或 public_repo (公开仓库) # 权限要求: repo (私有仓库) 或 public_repo (公开仓库)
GITHUB_TOKEN= GITHUB_TOKEN=
# GitLab Personal Access Token # GitLab Personal Access Token
# 获取地址: https://gitlab.com/-/profile/personal_access_tokens # 获取地址: https://gitlab.com/-/profile/personal_access_tokens
# 权限要求: read_repository # 权限要求: read_repository
GITLAB_TOKEN= GITLAB_TOKEN=
# Gitea Access Token # Gitea Access Token
# 获取地址: https://[your-gitea-instance]/user/settings/applications # 获取地址: https://[your-gitea-instance]/user/settings/applications
# 权限要求: read_repository # 权限要求: read_repository
GITEA_TOKEN= # GITEA_TOKEN=f02b82fa51f26f2b13ed2ca67afe3faee49892b7 # http://sl.vrgon.com:3000/ 账号vinland100
# GITEA_TOKEN=896be9e332f3c60933a5eb931973db450b69b842 # http://182.96.17.140:82/
GITEA_TOKEN=379a049b8d78965fdff474fc8676bca7e9c70248 # http://sl.vrgon.com:3000/ 账号ai-bot
# Gitea Webhook Secret # Gitea Webhook Secret
GITEA_WEBHOOK_SECRET= GITEA_WEBHOOK_SECRET=zheke@703
# ============================================= # =============================================
# 扫描配置 # 扫描配置
# ============================================= # =============================================
# 单次扫描最大文件数 # 单次扫描最大文件数
MAX_ANALYZE_FILES=50 MAX_ANALYZE_FILES=500
# 单文件最大大小(字节),默认 200KB # 单文件最大大小(字节),默认 200KB
MAX_FILE_SIZE_BYTES=204800 MAX_FILE_SIZE_BYTES=204800
# LLM 并发请求数(注意 API 限流) # LLM 并发请求数(注意 API 限流)
LLM_CONCURRENCY=3 LLM_CONCURRENCY=20
# LLM 请求间隔(毫秒),避免触发限流 # LLM 请求间隔(毫秒),避免触发限流
LLM_GAP_MS=2000 LLM_GAP_MS=0
# ============================================= # =============================================
# 存储配置 # 存储配置
@ -222,9 +230,9 @@ ZIP_STORAGE_PATH=./uploads/zip_files
# en-US: 英文 # en-US: 英文
OUTPUT_LANGUAGE=zh-CN OUTPUT_LANGUAGE=zh-CN
# 注意生产环境中在docker-compose.yml中配置
# Gitea 配置 # Gitea 配置
# Gitea Host URL用于自动在 PR 下面回复 ## gitea host url用于自动在PR下面回复
GITEA_HOST_URL= GITEA_HOST_URL=http://127.0.0.1:82
## ai-bot账号issue读写权限token
# AI-Bot 账号 Issue/PR 读写权限 Token GITEA_BOT_TOKEN=7d6c0192fd3ea285e36822d62851138d2b872b23
GITEA_BOT_TOKEN=

4
frontend/.env.bak Normal file
View File

@ -0,0 +1,4 @@
# 核心 API 配置 (必填)
VITE_API_BASE_URL=/api/v1
# 应用标识 (可选)
VITE_APP_ID=deepaudit