本文档提供项目中所有环境变量的完整参考,包括用途、类型、默认值和示例。
- 用途: FastAPI 服务监听端口
- 类型: 整数
- 默认值:
2048 - 示例:
PORT=8000 - 说明: 主 API 服务的 HTTP 端口,所有
/v1/*端点通过此端口访问
- 用途: GUI 启动器的默认 FastAPI 端口
- 类型: 整数
- 默认值:
2048 - 示例:
DEFAULT_FASTAPI_PORT=3048 - 说明: 当使用 GUI 或命令行启动时的默认端口,与
PORT配合使用
- 用途: Camoufox 浏览器调试端口
- 类型: 整数
- 默认值:
9222 - 示例:
DEFAULT_CAMOUFOX_PORT=9223 - 说明: Camoufox 内部启动时使用的 CDP (Chrome DevTools Protocol) 端口
- 用途: 集成流式代理服务端口
- 类型: 整数
- 默认值:
3120 - 特殊值:
0- 禁用流式代理服务 - 示例:
STREAM_PORT=3121 - 说明: 内置流式代理服务的监听端口,用于三层响应获取机制的第一层
- 用途: HTTP 代理服务器地址
- 类型: 字符串 (URL)
- 默认值: 空
- 示例:
HTTP_PROXY=http://127.0.0.1:7890 - 说明: 用于 HTTP 请求的上游代理
- 用途: HTTPS 代理服务器地址
- 类型: 字符串 (URL)
- 默认值: 空
- 示例:
HTTPS_PROXY=http://127.0.0.1:7890 - 说明: 用于 HTTPS 请求的上游代理
- 用途: 统一代理配置(优先级高于 HTTP_PROXY/HTTPS_PROXY)
- 类型: 字符串 (URL)
- 默认值:
http://127.0.0.1:7890 - 示例:
UNIFIED_PROXY_CONFIG=socks5://127.0.0.1:1080 - 说明: 推荐使用此配置,会同时应用到 HTTP 和 HTTPS 请求
- 用途: 代理绕过列表
- 类型: 字符串(分号或逗号分隔)
- 默认值: 空
- 示例:
NO_PROXY=localhost;127.0.0.1;*.local - 说明: 指定不通过代理的主机名或 IP 地址
- 用途: 服务器日志级别
- 类型: 字符串
- 默认值:
INFO - 可选值:
DEBUG,INFO,WARNING,ERROR,CRITICAL - 示例:
SERVER_LOG_LEVEL=DEBUG - 说明: 控制 FastAPI 服务器的日志详细程度
- 用途: 是否重定向 print 输出到日志
- 类型: 布尔值
- 默认值:
false - 示例:
SERVER_REDIRECT_PRINT=true - 说明: 启用后,所有
print()语句会被重定向到日志系统
- 用途: 启用调试日志
- 类型: 布尔值
- 默认值:
false - 示例:
DEBUG_LOGS_ENABLED=true - 说明: 启用后会输出更详细的调试信息
- 用途: 启用跟踪日志
- 类型: 布尔值
- 默认值:
false - 示例:
TRACE_LOGS_ENABLED=true - 说明: 启用最详细的跟踪级别日志,用于深度调试
- 用途: 自动保存认证信息到文件
- 类型: 布尔值
- 默认值:
false - 示例:
AUTO_SAVE_AUTH=true - 说明: 启用后会自动保存 Google 认证 Cookie 到
auth_profiles/目录
- 用途: 认证保存超时时间(秒)
- 类型: 整数
- 默认值:
30 - 示例:
AUTH_SAVE_TIMEOUT=60 - 说明: 等待认证文件保存完成的最大时间
- 用途: 自动确认登录
- 类型: 布尔值
- 默认值:
true - 示例:
AUTO_CONFIRM_LOGIN=false - 说明: 启用后会自动点击登录确认按钮
- 用途: Camoufox WebSocket 端点 URL
- 类型: 字符串 (WebSocket URL)
- 默认值: 空(由启动脚本自动设置)
- 示例:
CAMOUFOX_WS_ENDPOINT=ws://127.0.0.1:9222 - 说明: Playwright 连接 Camoufox 浏览器的 WebSocket 地址
- 用途: 启动模式
- 类型: 字符串
- 默认值:
normal - 可选值:
normal- 普通模式(有 UI)headless- 无头模式(无 UI)virtual_display- 虚拟显示模式direct_debug_no_browser- 直接调试模式(不启动浏览器)
- 示例:
LAUNCH_MODE=headless - 说明: 控制浏览器的启动方式
- 用途: WebSocket 端点捕获超时(秒)
- 类型: 整数
- 默认值:
45 - 示例:
ENDPOINT_CAPTURE_TIMEOUT=60 - 说明: 等待 Camoufox 浏览器启动并返回 WebSocket 端点的最大时间
- 用途: 默认温度参数
- 类型: 浮点数
- 默认值:
1.0 - 范围:
0.0-2.0 - 示例:
DEFAULT_TEMPERATURE=0.7 - 说明: 控制模型输出的随机性,值越高越随机
- 用途: 默认最大输出 token 数
- 类型: 整数
- 默认值:
65536 - 示例:
DEFAULT_MAX_OUTPUT_TOKENS=8192 - 说明: 限制模型生成文本的最大长度
- 用途: 默认 Top-P 参数(核采样)
- 类型: 浮点数
- 默认值:
0.95 - 范围:
0.0-1.0 - 示例:
DEFAULT_TOP_P=0.9 - 说明: 控制采样的多样性,值越小结果越集中
- 用途: 默认停止序列
- 类型: JSON 数组
- 默认值:
["用户:"] - 示例:
DEFAULT_STOP_SEQUENCES=["\\n\\nUser:", "\\n\\nAssistant:"] - 说明: 遇到这些序列时停止生成,注意需要正确转义特殊字符
- 用途: 是否启用 URL Context 功能
- 类型: 布尔值
- 默认值:
false - 示例:
ENABLE_URL_CONTEXT=true - 说明: 启用后可以在请求中包含 URL 上下文(参考:https://ai.google.dev/gemini-api/docs/url-context)
- 用途: 是否默认启用思考预算限制
- 类型: 布尔值
- 默认值:
false - 示例:
ENABLE_THINKING_BUDGET=true - 说明: 启用后会使用指定的思考预算,不启用时模型自行决定
- 用途: 默认思考预算量(token)
- 类型: 整数
- 默认值:
8192 - 示例:
DEFAULT_THINKING_BUDGET=16384 - 说明: 当 API 请求未提供
reasoning_effort参数时使用此值
- 用途: 是否默认启用 Google Search 功能
- 类型: 布尔值
- 默认值:
false - 示例:
ENABLE_GOOGLE_SEARCH=true - 说明: 当 API 请求未提供
tools参数时,此配置决定是否启用 Google 搜索工具
所有超时配置单位均为毫秒(ms),除非特别说明。
- 用途: 响应完成总超时时间
- 类型: 整数(毫秒)
- 默认值:
300000(5 分钟) - 示例:
RESPONSE_COMPLETION_TIMEOUT=600000 - 说明: 等待 AI Studio 完成响应的最大时间
- 用途: 轮询前的初始等待时间
- 类型: 整数(毫秒)
- 默认值:
500 - 示例:
INITIAL_WAIT_MS_BEFORE_POLLING=1000 - 说明: 开始轮询响应状态前的等待时间
- 用途: 非流式模式轮询间隔
- 类型: 整数(毫秒)
- 默认值:
300 - 示例:
POLLING_INTERVAL=500 - 说明: 非流式请求检查响应状态的间隔
- 用途: 流式模式轮询间隔
- 类型: 整数(毫秒)
- 默认值:
180 - 示例:
POLLING_INTERVAL_STREAM=200 - 说明: 流式请求检查响应状态的间隔
- 用途: 静默超时时间
- 类型: 整数(毫秒)
- 默认值:
60000(1 分钟) - 示例:
SILENCE_TIMEOUT_MS=120000 - 说明: 如果在此时间内无新内容输出,则认为请求超时
- 用途: 加载动画检查延迟
- 类型: 整数(毫秒)
- 默认值:
500 - 说明: 检查页面加载动画状态前的延迟
- 用途: 最终状态检查超时
- 类型: 整数(毫秒)
- 默认值:
1500 - 说明: 等待页面达到最终状态的超时时间
- 用途: 完成后缓冲时间
- 类型: 整数(毫秒)
- 默认值:
700 - 说明: 响应完成后的额外等待时间,确保所有内容已加载
- 用途: 清空聊天验证超时
- 类型: 整数(毫秒)
- 默认值:
4000 - 示例:
CLEAR_CHAT_VERIFY_TIMEOUT_MS=5000 - 说明: 验证聊天是否已清空的超时时间
- 用途: 清空聊天验证间隔
- 类型: 整数(毫秒)
- 默认值:
4000 - 示例:
CLEAR_CHAT_VERIFY_INTERVAL_MS=2000 - 说明: 检查聊天是否已清空的间隔
- 用途: 点击操作超时
- 类型: 整数(毫秒)
- 默认值:
3000 - 说明: 等待页面元素可点击的超时时间
- 用途: 剪贴板读取超时
- 类型: 整数(毫秒)
- 默认值:
3000 - 说明: 读取浏览器剪贴板内容的超时时间
- 用途: 元素等待超时
- 类型: 整数(毫秒)
- 默认值:
10000 - 说明: 等待页面元素出现的通用超时时间
- 用途: 伪流式延迟
- 类型: 浮点数(秒)
- 默认值:
0.01 - 示例:
PSEUDO_STREAM_DELAY=0.02 - 说明: 伪流式输出时每个数据块之间的延迟
- 用途: GUI 启动器的默认代理地址
- 类型: 字符串 (URL)
- 默认值:
http://127.0.0.1:7890 - 示例:
GUI_DEFAULT_PROXY_ADDRESS=http://127.0.0.1:1080 - 说明: 在 GUI 启动器中预填充的代理地址
- 用途: GUI 启动器的默认流式端口
- 类型: 整数
- 默认值:
3120 - 示例:
GUI_DEFAULT_STREAM_PORT=3121 - 说明: 在 GUI 启动器中预填充的流式代理端口
- 用途: GUI 启动器的默认 Helper 端点
- 类型: 字符串 (URL)
- 默认值: 空
- 示例:
GUI_DEFAULT_HELPER_ENDPOINT=http://helper.example.com - 说明: 外部 Helper 服务的 URL(可选)
- 用途: 是否启用油猴脚本注入功能
- 类型: 布尔值
- 默认值:
false - 示例:
ENABLE_SCRIPT_INJECTION=true - 说明:
⚠️ 注意:此功能在当前版本已失效,保留配置仅为兼容性
- 用途: 油猴脚本文件路径
- 类型: 字符串(相对路径)
- 默认值:
browser_utils/more_modles.js - 示例:
USERSCRIPT_PATH=custom_scripts/my_script.js - 说明: 相对于项目根目录的脚本文件路径
- 用途: 代理服务的模型名称标识
- 类型: 字符串
- 默认值:
AI-Studio_Proxy_API - 示例:
MODEL_NAME=Custom_Proxy - 说明: 在
/v1/models端点返回的代理自身模型名称
- 用途: 聊天完成 ID 前缀
- 类型: 字符串
- 默认值:
chatcmpl- - 示例:
CHAT_COMPLETION_ID_PREFIX=custom- - 说明: 生成聊天完成响应 ID 时的前缀
- 用途: 默认回退模型 ID
- 类型: 字符串
- 默认值:
no model list - 示例:
DEFAULT_FALLBACK_MODEL_ID=gemini-pro - 说明: 当无法获取模型列表时使用的回退模型名称
- 用途: 排除模型列表文件名
- 类型: 字符串
- 默认值:
excluded_models.txt - 示例:
EXCLUDED_MODELS_FILENAME=my_excluded.txt - 说明: 包含要从模型列表中排除的模型 ID 的文件名
- 用途: AI Studio URL 匹配模式
- 类型: 字符串
- 默认值:
aistudio.google.com/ - 说明: 用于识别 AI Studio 页面的 URL 模式
- 用途: 模型列表端点 URL 包含字符串
- 类型: 字符串
- 默认值:
MakerSuiteService/ListModels - 说明: 用于拦截模型列表请求的 URL 特征字符串
- 用途: 用户输入开始标记符
- 类型: 字符串
- 默认值:
__USER_INPUT_START__ - 说明: 用于标记用户输入开始位置的内部标记
- 用途: 用户输入结束标记符
- 类型: 字符串
- 默认值:
__USER_INPUT_END__ - 说明: 用于标记用户输入结束位置的内部标记
- 用途: 流超时日志的最大初始错误数
- 类型: 整数
- 默认值:
3 - 示例:
STREAM_MAX_INITIAL_ERRORS=5 - 说明: 在抑制重复错误日志前允许的最大错误次数
- 用途: 抑制后的警告间隔(秒)
- 类型: 浮点数
- 默认值:
60.0 - 示例:
STREAM_WARNING_INTERVAL_AFTER_SUPPRESS=120.0 - 说明: 错误被抑制后,再次显示警告的时间间隔
- 用途: 初始爆发后的抑制持续时间(秒)
- 类型: 浮点数
- 默认值:
400.0 - 示例:
STREAM_SUPPRESS_DURATION_AFTER_INITIAL_BURST=600.0 - 说明: 初始错误爆发后,抑制重复日志的时长
将所有配置集中在项目根目录的 .env 文件中:
# 复制模板
cp .env.example .env
# 编辑配置
nano .env配置项按以下优先级顺序生效(从高到低):
- 命令行参数 - 临时覆盖配置
- 环境变量 -
.env文件或系统环境变量 - 默认值 - 代码中定义的默认值
- ✅
.env文件已在.gitignore中,不会被提交 - ✅ 不要在
.env.example中包含真实的敏感信息 - ✅ 定期更新和审查配置
- ✅ 使用足够复杂的密钥和凭据
启用详细日志进行调试:
DEBUG_LOGS_ENABLED=true
TRACE_LOGS_ENABLED=true
SERVER_LOG_LEVEL=DEBUG
SERVER_REDIRECT_PRINT=true生产环境推荐配置:
SERVER_LOG_LEVEL=WARNING
DEBUG_LOGS_ENABLED=false
TRACE_LOGS_ENABLED=false
RESPONSE_COMPLETION_TIMEOUT=600000
SILENCE_TIMEOUT_MS=120000启动服务后,检查日志确认配置是否正确加载:
# 查看启动日志
tail -f logs/app.log
# 检查配置端点
curl http://127.0.0.1:2048/api/info
# 健康检查
curl http://127.0.0.1:2048/health最后更新: 2024年11月 版本: v0.6.0
如果发现文档中的错误或遗漏,请提交 Issue 或 Pull Request。