Spaces:
Runtime error
Runtime error
File size: 9,268 Bytes
927965d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 |
# 环境变量配置指南
本文档详细介绍如何使用 `.env` 文件来配置 AI Studio Proxy API 项目,实现统一的配置管理。
## 概述
项目采用基于 `.env` 文件的现代化配置管理系统,提供以下优势:
### 主要优势
- ✅ **版本更新无忧**: 一个 `git pull` 就完成更新,无需重新配置
- ✅ **配置集中管理**: 所有配置项统一在 `.env` 文件中,清晰明了
- ✅ **启动命令简化**: 无需复杂的命令行参数,一键启动
- ✅ **安全性**: `.env` 文件已被 `.gitignore` 忽略,不会泄露敏感配置
- ✅ **灵活性**: 支持不同环境的配置管理(开发、测试、生产)
- ✅ **Docker 兼容**: Docker 和本地环境使用相同的配置方式
- ✅ **模块化设计**: 配置项按功能分组,便于理解和维护
## 快速开始
### 1. 复制配置模板
```bash
cp .env.example .env
```
### 2. 编辑配置文件
根据您的需要修改 `.env` 文件中的配置项:
```bash
# 编辑配置文件
nano .env
# 或使用其他编辑器
code .env
```
### 3. 启动服务
配置完成后,启动变得非常简单:
```bash
# 图形界面启动(推荐新手)
python gui_launcher.py
# 命令行启动(推荐日常使用)
python launch_camoufox.py --headless
# 调试模式(首次设置或故障排除)
python launch_camoufox.py --debug
```
**就这么简单!** 无需复杂的命令行参数,所有配置都在 `.env` 文件中预设好了。
## 启动命令对比
### 使用 `.env` 配置前(复杂)
```bash
# 之前需要这样的复杂命令
python launch_camoufox.py --headless --server-port 2048 --stream-port 3120 --helper '' --internal-camoufox-proxy 'http://127.0.0.1:7890'
```
### 使用 `.env` 配置后(简单)
```bash
# 现在只需要这样
python launch_camoufox.py --headless
```
**配置一次,终身受益!** 所有复杂的参数都在 `.env` 文件中预设,启动命令变得极其简洁。
## 主要配置项
### 服务端口配置
```env
# FastAPI 服务端口
PORT=8000
DEFAULT_FASTAPI_PORT=2048
DEFAULT_CAMOUFOX_PORT=9222
# 流式代理服务配置
STREAM_PORT=3120
```
### 代理配置
```env
# HTTP/HTTPS 代理设置
HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
# 统一代理配置 (优先级更高)
UNIFIED_PROXY_CONFIG=http://127.0.0.1:7890
# 代理绕过列表
NO_PROXY=localhost;127.0.0.1;*.local
```
### 日志配置
```env
# 服务器日志级别
SERVER_LOG_LEVEL=INFO
# 启用调试日志
DEBUG_LOGS_ENABLED=false
TRACE_LOGS_ENABLED=false
# 是否重定向 print 输出到日志
SERVER_REDIRECT_PRINT=false
```
### 认证配置
```env
# 自动保存认证信息
AUTO_SAVE_AUTH=false
# 认证保存超时时间 (秒)
AUTH_SAVE_TIMEOUT=30
# 自动确认登录
AUTO_CONFIRM_LOGIN=true
```
### API 默认参数
```env
# 默认温度值 (0.0-2.0)
DEFAULT_TEMPERATURE=1.0
# 默认最大输出令牌数
DEFAULT_MAX_OUTPUT_TOKENS=65536
# 默认 Top-P 值 (0.0-1.0)
DEFAULT_TOP_P=0.95
# 默认停止序列 (JSON 数组格式)
DEFAULT_STOP_SEQUENCES=["用户:"]
# 是否在处理请求时自动打开并使用 "URL Context" 功能
# 参考: https://ai.google.dev/gemini-api/docs/url-context
ENABLE_URL_CONTEXT=true
# 是否默认启用 "指定思考预算" 功能 (true/false),不启用时模型一般将自行决定思考预算
# 当 API 请求中未提供 reasoning_effort 参数时,将使用此值。
ENABLE_THINKING_BUDGET=false
# "指定思考预算量" 的默认值 (token)
# 当 API 请求中未提供 reasoning_effort 参数时,将使用此值。
DEFAULT_THINKING_BUDGET=8192
# 是否默认启用 "Google Search" 功能 (true/false)
# 当 API 请求中未提供 tools 参数时,将使用此设置作为 Google Search 的默认开关状态。
ENABLE_GOOGLE_SEARCH=false
```
### 超时配置
```env
# 响应完成总超时时间 (毫秒)
RESPONSE_COMPLETION_TIMEOUT=300000
# 轮询间隔 (毫秒)
POLLING_INTERVAL=300
POLLING_INTERVAL_STREAM=180
# 静默超时 (毫秒)
SILENCE_TIMEOUT_MS=60000
```
### GUI 启动器配置
```env
# GUI 默认代理地址
GUI_DEFAULT_PROXY_ADDRESS=http://127.0.0.1:7890
# GUI 默认流式代理端口
GUI_DEFAULT_STREAM_PORT=3120
# GUI 默认 Helper 端点
GUI_DEFAULT_HELPER_ENDPOINT=
```
### 脚本注入配置 v3.0 🆕
```env
# 是否启用油猴脚本注入功能
ENABLE_SCRIPT_INJECTION=true
# 油猴脚本文件路径(相对于项目根目录)
# 模型数据直接从此脚本文件中解析,无需额外配置文件
USERSCRIPT_PATH=browser_utils/more_modles.js
```
**脚本注入功能 v3.0 重大升级**:
- **🚀 Playwright 原生拦截**: 使用 Playwright 路由拦截,100% 可靠性
- **🔄 双重保障机制**: 网络拦截 + 脚本注入,确保万无一失
- **📝 直接脚本解析**: 从油猴脚本中自动解析模型列表,无需配置文件
- **🔗 前后端同步**: 前端和后端使用相同的模型数据源
- **⚙️ 零配置维护**: 脚本更新时自动获取新的模型列表
- **🔄 自动适配**: 油猴脚本更新时无需手动更新配置
**与 v1.x 的主要区别**:
- 移除了 `MODEL_CONFIG_PATH` 配置项(已废弃)
- 不再需要手动维护模型配置文件
- 工作机制从"配置文件 + 脚本注入"改为"直接脚本解析 + 网络拦截"
详细使用方法请参见 [脚本注入指南](script_injection_guide.md)。
## 配置优先级
配置项的优先级顺序(从高到低):
1. **命令行参数** - 直接传递给程序的参数
2. **环境变量** - 系统环境变量或 `.env` 文件中的变量
3. **默认值** - 代码中定义的默认值
## 常见配置场景
### 场景 1:使用代理
```env
# 启用代理
HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
# GUI 中也使用相同代理
GUI_DEFAULT_PROXY_ADDRESS=http://127.0.0.1:7890
```
### 场景 2:调试模式
```env
# 启用详细日志
DEBUG_LOGS_ENABLED=true
TRACE_LOGS_ENABLED=true
SERVER_LOG_LEVEL=DEBUG
SERVER_REDIRECT_PRINT=true
```
### 场景 3:生产环境
```env
# 生产环境配置
SERVER_LOG_LEVEL=WARNING
DEBUG_LOGS_ENABLED=false
TRACE_LOGS_ENABLED=false
# 更长的超时时间
RESPONSE_COMPLETION_TIMEOUT=600000
SILENCE_TIMEOUT_MS=120000
```
### 场景 4:自定义端口
```env
# 避免端口冲突
DEFAULT_FASTAPI_PORT=3048
DEFAULT_CAMOUFOX_PORT=9223
STREAM_PORT=3121
```
### 场景 5:启用脚本注入 v3.0 🆕
```env
# 启用脚本注入功能 v3.0
ENABLE_SCRIPT_INJECTION=true
# 使用自定义脚本(模型数据直接从脚本解析)
USERSCRIPT_PATH=browser_utils/my_custom_script.js
# 调试模式查看注入效果
DEBUG_LOGS_ENABLED=true
# 流式代理配置(与脚本注入配合使用)
STREAM_PORT=3120
```
**v3.0 脚本注入优势**:
- 使用 Playwright 原生网络拦截,无时序问题
- 前后端模型数据100%同步
- 零配置维护,脚本更新自动生效
## 配置优先级
项目采用分层配置系统,按以下优先级顺序确定最终配置:
1. **命令行参数** (最高优先级)
```bash
# 命令行参数会覆盖 .env 文件中的设置
python launch_camoufox.py --headless --server-port 3048
```
2. **`.env` 文件配置** (推荐)
```env
# .env 文件中的配置
DEFAULT_FASTAPI_PORT=2048
```
3. **系统环境变量** (最低优先级)
```bash
# 系统环境变量
export DEFAULT_FASTAPI_PORT=2048
```
### 使用建议
- **日常使用**: 在 `.env` 文件中配置所有常用设置
- **临时调整**: 使用命令行参数进行临时覆盖,无需修改 `.env` 文件
- **CI/CD 环境**: 可以通过系统环境变量进行配置
## 注意事项
### 1. 文件安全
- `.env` 文件已被 `.gitignore` 忽略,不会被提交到版本控制
- 请勿在 `.env.example` 中包含真实的敏感信息
- 如需分享配置,请复制并清理敏感信息后再分享
### 2. 格式要求
- 环境变量名区分大小写
- 布尔值使用 `true`/`false`
- 数组使用 JSON 格式:`["item1", "item2"]`
- 字符串值如包含特殊字符,请使用引号
### 3. 重启生效
修改 `.env` 文件后需要重启服务才能生效。
### 4. 验证配置
启动服务时,日志会显示加载的配置信息,可以通过日志验证配置是否正确。
## 故障排除
### 配置未生效
1. 检查 `.env` 文件是否在项目根目录
2. 检查环境变量名是否正确(区分大小写)
3. 检查值的格式是否正确
4. 重启服务
### 代理配置问题
1. 确认代理服务器地址和端口正确
2. 检查代理服务器是否正常运行
3. 验证网络连接
### 端口冲突
1. 检查端口是否被其他程序占用
2. 使用 GUI 启动器的端口检查功能
3. 修改为其他可用端口
## 更多信息
- [安装指南](installation-guide.md)
- [高级配置](advanced-configuration.md)
- [故障排除](troubleshooting.md)
|