forked from foxhui/WebAI2API
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
214 lines (194 loc) · 8.92 KB
/
config.example.yaml
File metadata and controls
214 lines (194 loc) · 8.92 KB
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
# 日志等级: 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