mirror of
https://github.com/foxhui/WebAI2API.git
synced 2026-06-16 21:03:59 +08:00
215 lines
8.9 KiB
YAML
215 lines
8.9 KiB
YAML
# 日志等级: debug | info | warn | error
|
|
logLevel: info
|
|
|
|
server:
|
|
# 监听端口
|
|
port: 3000
|
|
# 鉴权 API Token 至少为 10 个字符 (可使用 npm run genkey 生成)
|
|
# 该配置会对 API 接口和 WebUI 生效
|
|
auth: sk-change-me-to-your-secure-key
|
|
# 流式请求心跳设置 (自动对 stream: true 的请求发送心跳防止超时)
|
|
keepalive:
|
|
# 心跳模式
|
|
# "comment": (推荐) 发送 :keepalive 注释,不污染数据
|
|
# "content": (备用) 发送空 delta,仅当客户端必须收到 JSON 包才重置超时时使用
|
|
mode: "comment"
|
|
|
|
backend:
|
|
# ========================================
|
|
# Pool 配置
|
|
# ========================================
|
|
pool:
|
|
# 全局调度策略:
|
|
# - least_busy (推荐): 优先分配给当前任务最少的 Worker
|
|
# - round_robin: 轮询分配 (A -> B -> C -> A)
|
|
# - random: 随机分配
|
|
# 任务分发时,会把所有 Instance 下的所有 Worker 扁平化看待
|
|
strategy: least_busy
|
|
|
|
# ========================================
|
|
# 故障转移配置
|
|
# ========================================
|
|
# 当适配器返回网络错误时,自动尝试其他支持相同模型的 Worker
|
|
failover:
|
|
enabled: true # 启用故障转移
|
|
maxRetries: 2 # 最多重试次数 (0=无限制)
|
|
imgDlRetry: false # 图片下载器重试,为图片生成结果单独提供重试机会
|
|
imgDlRetryMaxRetries: 2 # 图片下载器重试次数
|
|
|
|
# ========================================
|
|
# 生成等待时间
|
|
# ========================================
|
|
# 程序等待生成结果返回的最大超时时间,单位毫秒
|
|
waitTimeout: 120000
|
|
|
|
# ========================================
|
|
# 浏览器实例列表
|
|
# ========================================
|
|
# 每个 Instance 代表一个独立的浏览器进程 (Context + UserData + Proxy)
|
|
# 登录模式:
|
|
# npm start -- -login 启动第一个 Worker 进行登录
|
|
# npm start -- -login=workerName 启动指定名称的 Worker 进行登录
|
|
# 注意: Worker 名称在全局必须唯一
|
|
# ========================================
|
|
instances:
|
|
# ------------------------------------------------
|
|
# [实例 1] 默认浏览器实例
|
|
# ------------------------------------------------
|
|
- name: "browser_default" # 实例 ID (用于日志显示和Cookie获取)
|
|
# userDataMark 不设置时,数据存放在 data/camoufoxUserData
|
|
# 同一实例下的所有 Worker 共享浏览器数据和登录状态
|
|
# 使用 Google OAuth 等统一登录时,只需登录一次即可用于所有 Worker
|
|
|
|
# 该浏览器实例具备的能力 (适配器列表)
|
|
# 相当于在这个浏览器里打开了不同的标签页
|
|
workers:
|
|
- name: "default" # 唯一标识 (用于登录模式和日志显示)
|
|
# 适配器类型列表:
|
|
# lmarena (LMArena 图片生成)
|
|
# lmarena_text (LMArena 文本生成)
|
|
# gemini_biz (Gemini Business 图片、视频生成)
|
|
# gemini_biz_text (Gemini Business 文本生成)
|
|
# gemini (Google Gemini 图片、视频生成)
|
|
# gemini_text (Google Gemini 文本生成)
|
|
# zai_is (zAI 图片生成)
|
|
# zai_is_text (zAI 文本生成)
|
|
# nanobananafree_ai (NanoBananaFree 图片生成)
|
|
# zenmux_ai_text (ZenMux 文本生成)
|
|
# chatgpt (ChatGPT 图片生成)
|
|
# chatgpt_text (ChatGPT 文本生成)
|
|
# sora (Sora 视频生成)
|
|
# deepseek_text (DeepSeek 文本生成)
|
|
# doubao (豆包 图片生成)
|
|
# doubao_text (豆包 文本生成)
|
|
# test (浏览器检测,仅供调试使用)
|
|
type: lmarena # 适配器类型
|
|
|
|
# ------------------------------------------------
|
|
# 以下为多实例配置示例 (默认注释)
|
|
# ------------------------------------------------
|
|
|
|
# [实例 2] 独立数据目录 + 专属代理
|
|
# - name: "browser_us_01"
|
|
# userDataMark: "us_01" # 数据目录: data/camoufoxUserData_us_01
|
|
#
|
|
# # 实例级代理 (该实例下所有 Worker 共享此代理)
|
|
# proxy:
|
|
# enable: true
|
|
# type: socks5
|
|
# host: 192.168.1.10
|
|
# port: 1080
|
|
# user: myuser # 可选认证
|
|
# passwd: mypassword
|
|
#
|
|
# workers:
|
|
# - name: "us_lmarena"
|
|
# type: lmarena
|
|
#
|
|
# - name: "us_zai"
|
|
# type: zai_is
|
|
#
|
|
# # 聚合类型 Worker (单标签多后端)
|
|
# - name: "us_merged"
|
|
# type: merge
|
|
# mergeTypes: [gemini_biz, nanobananafree_ai]
|
|
# mergeMonitor: gemini_biz # 空闲时挂机监控的后端 (可选,留空则不启用)
|
|
|
|
# [实例 3] 强制直连 (不使用代理)
|
|
# - name: "browser_direct"
|
|
# userDataMark: "direct"
|
|
# proxy:
|
|
# enable: false # 即使有全局代理也不使用
|
|
#
|
|
# workers:
|
|
# - name: "direct_gemini"
|
|
# type: gemini_biz
|
|
|
|
# ========================================
|
|
# 适配器专属配置 (按需填写)
|
|
# ========================================
|
|
adapter:
|
|
# Gemini Business 设置
|
|
gemini_biz:
|
|
# 入口URL
|
|
# 示例: "https://business.gemini.google/home/cid/8888a888-b6e0-88be-86e1-888cf3ee8cf4"
|
|
entryUrl: ""
|
|
# Lmarena 配置
|
|
lmarena:
|
|
# 开启后直接返回图片 URL (但其他不支持该选项的适配器仍然会返回 Base64)
|
|
returnUrl: false
|
|
# 该适配器的模型黑白名单 (每个适配器都可以使用该功能,配置上级为适配器ID,推荐使用 WebUI 修改)
|
|
# modelFilter:
|
|
# mode: whitelist # 白名单whitelist 黑名单blacklist
|
|
# list: # 仅启用和仅禁用的模型列表
|
|
# - gemini-3-pro-image-preview
|
|
# - gemini-3-pro-image-preview-2k
|
|
# - gemini-2.5-flash-image-preview
|
|
|
|
|
|
queue:
|
|
# 队列缓冲区大小(非流式请求的额外排队数)
|
|
# 实际队列上限 = Workers数量 + queueBuffer
|
|
# 设为 0 则不限制非流式请求数量
|
|
queueBuffer: 2
|
|
# 图片数量上限
|
|
# 网页最多支持10个附件,如果设置大于10则直接丢弃超出10的图片
|
|
imageLimit: 5
|
|
|
|
browser:
|
|
# 浏览器可执行文件路径 (留空则使用默认的)
|
|
# 非必要不建议修改,否则你要处理很多额外依赖
|
|
# Windows系统示例 "C:\\camoufox\\camoufox.exe"
|
|
# Linux系统示例 "/opt/camoufox/camoufox"
|
|
path: ""
|
|
|
|
# 是否启用无头模式
|
|
headless: false
|
|
|
|
# 拟人鼠标轨迹模式
|
|
# - false: 禁用拟人轨迹,使用 Playwright 原生点击(性能最好,但会被自动化检测)
|
|
# - true: 使用项目优化的 ghost-cursor(更拟人化,如不会点击正中心,但性能稍差)
|
|
# - "camou": 使用 Camoufox 内置轨迹(性能与拟人化的平衡)
|
|
humanizeCursor: true
|
|
|
|
# 站点隔离 (fission.autostart)
|
|
# 开启保持 Firefox 默认开启状态
|
|
# 关闭此项可显著降低内存占用,防止低配服务器崩溃
|
|
# ⚠️ 风险提示: 正常 Firefox 用户默认开启 Fission,虽然关闭它不会泄露常规指纹,
|
|
# 但极高阶的反爬系统可能会通过检测“单进程模型”或“跨进程通信延迟”来识别自动化特征!
|
|
fission: true
|
|
|
|
# CSS 性能优化注入
|
|
# 通过禁用网页特效在无显卡环境下降低 CPU 压力
|
|
cssInject:
|
|
# 禁用网页动画
|
|
# 作用:移除 transition 和 animation
|
|
# 收益:显著降低 CPU 持续占用
|
|
# 风险:低。几乎不影响浏览器指纹,但可能导致部分网页布局异常
|
|
animation: false
|
|
|
|
# 禁用滤镜和阴影
|
|
# 作用:移除 blur(模糊)、box-shadow(阴影) 等复杂渲染
|
|
# 收益:在无显卡环境下,能避免 CPU 占用 100% 导致卡顿
|
|
# 风险:中。界面会变得难看,少数反爬可能会检测样式计算结果
|
|
filter: false
|
|
|
|
# 降低字体渲染质量
|
|
# 作用:关闭字体抗锯齿,强制使用极速渲染模式
|
|
# 收益:微量减少 CPU 绘图压力
|
|
# ⚠️ 风险:高。会导致文字边缘有锯齿,且可能导致字体指纹与标准浏览器不符(易被高级反爬识别)
|
|
font: false
|
|
|
|
# [全局代理] 如果 Instance 没有独立配置代理,将使用此配置
|
|
proxy:
|
|
# 是否启用代理
|
|
enable: false
|
|
# 代理类型: http 或 socks5
|
|
type: http
|
|
# 代理主机
|
|
host: 127.0.0.1
|
|
# 代理端口
|
|
port: 7890
|
|
# 代理认证 (可选)
|
|
# user: username
|
|
# passwd: password
|