Skip to content

Commit c1ea8cb

Browse files
authored
docs: verify and fix documentation accuracy against codebase (#295)
* docs: comprehensive documentation update for v4.0.3 changes Updated files: - advanced-configuration.md: Add SKIP_FRONTEND_BUILD, model_capabilities.json section, port kill security note - architecture-guide.md: Add model_capabilities.json and all new routers - development-guide.md: Add Node.js prereq, frontend dev section with npm commands - env-variables-reference.md: Add SKIP_FRONTEND_BUILD variable - environment-configuration.md: Add SKIP_FRONTEND_BUILD to startup config - installation-guide.md: Update Node.js requirement for frontend development * docs: update and refine various documentation files for improved clarity
1 parent c0d9b92 commit c1ea8cb

10 files changed

Lines changed: 122 additions & 108 deletions

README.md

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,16 @@
1515
- **智能模型切换**: 动态切换 AI Studio 模型,完整参数控制
1616
- **反指纹检测**: Camoufox 浏览器降低被检测风险
1717
- **现代化 Web UI**: 内置测试界面、状态监控、API 密钥管理
18-
- **图形界面启动器**: GUI 启动器简化配置和进程管理
1918
- **脚本注入 v3.0**: Playwright 原生网络拦截,支持油猴脚本动态挂载
2019

2120
## 系统要求
2221

23-
| 组件 | 要求 | 推荐 |
24-
|------|------|------|
25-
| **Python** | ≥3.9, <4.0 | 3.10+ 或 3.11+ |
26-
| **依赖管理** | Poetry | 最新版本 |
27-
| **内存** | ≥2GB | ≥4GB |
28-
| **网络** | 稳定互联网 | 可配置代理 |
22+
| 组件 | 要求 | 推荐 |
23+
| ------------ | ---------- | -------------- |
24+
| **Python** | ≥3.9, <4.0 | 3.10+ 或 3.11+ |
25+
| **依赖管理** | Poetry | 最新版本 |
26+
| **内存** | ≥2GB | ≥4GB |
27+
| **网络** | 稳定互联网 | 可配置代理 |
2928

3029
---
3130

@@ -81,7 +80,6 @@ graph TD
8180
end
8281
8382
subgraph "启动与配置"
84-
GUI_Launch["gui_launcher.py"]
8583
CLI_Launch["launch_camoufox.py"]
8684
EnvConfig[".env 配置"]
8785
end
@@ -97,7 +95,7 @@ graph TD
9795
AI_Studio["Google AI Studio"]
9896
end
9997
100-
User --> GUI_Launch & CLI_Launch
98+
User --> CLI_Launch
10199
API_Client & WebUI --> FastAPI_App
102100
FastAPI_App --> PageController & StreamProxy
103101
PageController --> CamoufoxInstance --> AI_Studio
@@ -108,12 +106,11 @@ graph TD
108106

109107
## 运行模式
110108

111-
| 命令 | 说明 | 场景 |
112-
|------|------|------|
113-
| `python gui_launcher.py` | GUI 启动器 | 新手、可视化配置 |
114-
| `python launch_camoufox.py --headless` | 无头模式 | 日常使用、服务器 |
115-
| `python launch_camoufox.py --debug` | 调试模式 | 首次认证、故障排查 |
116-
| `python launch_camoufox.py --virtual-display` | 虚拟显示 | Linux 无 GUI 环境 |
109+
| 命令 | 说明 | 场景 |
110+
| --------------------------------------------- | -------- | ------------------ |
111+
| `python launch_camoufox.py --headless` | 无头模式 | 日常使用、服务器 |
112+
| `python launch_camoufox.py --debug` | 调试模式 | 首次认证、故障排查 |
113+
| `python launch_camoufox.py --virtual-display` | 虚拟显示 | Linux 无 GUI 环境 |
117114

118115
---
119116

@@ -128,12 +125,12 @@ nano .env
128125

129126
### 核心配置
130127

131-
| 配置 | 默认值 | 说明 |
132-
|------|--------|------|
133-
| `PORT` | 2048 | FastAPI 服务端口 |
134-
| `STREAM_PORT` | 3120 | 流式代理端口 (0 禁用) |
135-
| `UNIFIED_PROXY_CONFIG` | - | HTTP/HTTPS 代理 |
136-
| `SERVER_LOG_LEVEL` | INFO | 日志级别 |
128+
| 配置 | 默认值 | 说明 |
129+
| ---------------------- | ------ | --------------------- |
130+
| `PORT` | 2048 | FastAPI 服务端口 |
131+
| `STREAM_PORT` | 3120 | 流式代理端口 (0 禁用) |
132+
| `UNIFIED_PROXY_CONFIG` | - | HTTP/HTTPS 代理 |
133+
| `SERVER_LOG_LEVEL` | INFO | 日志级别 |
137134

138135
> **详细配置**: [环境变量完整参考](docs/env-variables-reference.md)
139136
@@ -160,26 +157,30 @@ bash update.sh
160157
## 📚 文档
161158

162159
### 快速上手
160+
163161
- **[快速开始指南](docs/quick-start-guide.md)** - 15 分钟快速部署 🎯
164162
- [安装指南](docs/installation-guide.md) - 详细安装步骤
165163
- [认证设置指南](docs/authentication-setup.md) - 首次认证设置
166164
- [日常运行指南](docs/daily-usage.md) - 日常使用
167165

168166
### 功能使用
167+
169168
- [API 使用指南](docs/api-usage.md) - API 端点和配置
170169
- **[OpenAI 兼容性说明](docs/openai-compatibility.md)** - 与 OpenAI API 差异 🔄
171170
- [客户端集成示例](docs/client-examples.md) - 代码示例 💻
172171
- [Web UI 使用指南](docs/webui-guide.md) - Web 界面功能
173172
- [脚本注入指南](docs/script_injection_guide.md) - 油猴脚本功能 (v3.0)
174173

175174
### 高级配置
175+
176176
- [环境变量配置指南](docs/environment-configuration.md) - 配置管理 ⭐
177177
- [环境变量完整参考](docs/env-variables-reference.md) - 所有配置项 📋
178178
- [流式处理模式详解](docs/streaming-modes.md) - 三层响应机制
179179
- [高级配置指南](docs/advanced-configuration.md) - 高级功能
180180
- [故障排除指南](docs/troubleshooting.md) - 问题解决
181181

182182
### 开发相关
183+
183184
- [项目架构指南](docs/architecture-guide.md) - 模块化架构
184185
- [开发者指南](docs/development-guide.md) - Poetry、Pyright 工作流
185186

docs/architecture-guide.md

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,19 @@ AIstudioProxyAPI/
2121
│ ├── app.py # 应用入口和生命周期管理
2222
│ ├── routers/ # API 路由(按职责拆分)
2323
│ │ ├── api_keys.py # /api/keys* 密钥管理
24+
│ │ ├── auth_files.py # /api/auth-files* 认证文件管理
2425
│ │ ├── chat.py # /v1/chat/completions
2526
│ │ ├── health.py # /health 健康检查
27+
│ │ ├── helper.py # /api/helper* Helper 服务配置
2628
│ │ ├── info.py # /api/info 信息端点
2729
│ │ ├── logs_ws.py # /ws/logs WebSocket 日志
30+
│ │ ├── model_capabilities.py # /api/model-capabilities
2831
│ │ ├── models.py # /v1/models 模型列表
32+
│ │ ├── ports.py # /api/ports* 端口配置
33+
│ │ ├── proxy.py # /api/proxy* 代理配置
2934
│ │ ├── queue.py # /v1/queue, /v1/cancel
30-
│ │ └── static.py # /, /webui.css, /webui.js
35+
│ │ ├── server.py # /api/server* 服务器控制
36+
│ │ └── static.py # /, /assets/* React SPA
3137
│ ├── request_processor.py # 请求处理核心逻辑
3238
│ ├── queue_worker.py # 异步队列工作器
3339
│ ├── response_generators.py # SSE 响应生成器
@@ -41,10 +47,13 @@ AIstudioProxyAPI/
4147
│ ├── sse.py # SSE 流式响应处理
4248
│ ├── utils.py # 通用工具函数
4349
│ └── utils_ext/ # 扩展工具模块
44-
│ ├── attachments.py # 附件处理
45-
│ ├── formatting.py # 格式化工具
50+
│ ├── files.py # 文件/附件处理
51+
│ ├── helper.py # Helper 服务工具
4652
│ ├── prompts.py # 提示词处理
47-
│ ├── streaming.py # 流式处理工具
53+
│ ├── stream.py # 流式处理工具
54+
│ ├── string_utils.py # 字符串工具
55+
│ ├── tokens.py # Token 计算
56+
│ ├── tools_execution.py # 工具执行
4857
│ └── validation.py # 请求验证
4958
5059
├── browser_utils/ # 浏览器自动化模块
@@ -67,7 +76,7 @@ AIstudioProxyAPI/
6776
│ │ ├── interactions.py # 页面交互
6877
│ │ └── errors.py # 错误处理
6978
│ ├── model_management.py # 模型管理
70-
│ ├── script_manager.py # 脚本注入管理 (v3.0)
79+
│ ├── operations.py # 操作聚合入口
7180
│ ├── debug_utils.py # 调试工具
7281
│ ├── thinking_normalizer.py # 思考过程标准化
7382
│ └── more_models.js # 油猴脚本模板
@@ -76,7 +85,9 @@ AIstudioProxyAPI/
7685
│ ├── settings.py # 主要设置和环境变量
7786
│ ├── constants.py # 系统常量定义
7887
│ ├── timeouts.py # 超时配置
79-
│ └── selectors.py # CSS 选择器定义
88+
│ ├── selectors.py # CSS 选择器定义
89+
│ ├── selector_utils.py # 选择器工具函数
90+
│ └── model_capabilities.json # 模型能力配置
8091
8192
├── models/ # 数据模型定义
8293
│ ├── chat.py # 聊天相关模型
@@ -96,6 +107,8 @@ AIstudioProxyAPI/
96107
│ ├── config.py # 启动配置处理
97108
│ ├── checks.py # 环境与依赖检查
98109
│ ├── process.py # Camoufox 进程管理
110+
│ ├── frontend_build.py # 前端构建检查
111+
│ ├── internal.py # 内部工具
99112
│ ├── logging_setup.py # 日志配置
100113
│ └── utils.py # 启动器工具
101114
@@ -104,8 +117,9 @@ AIstudioProxyAPI/
104117
│ └── grid_logger.py # 网格日志器
105118
106119
├── server.py # 应用入口点
107-
├── gui_launcher.py # GUI 启动器
108-
├── launch_camoufox.py # 命令行启动器
120+
├── launch_camoufox.py # 命令行启动器(主入口)
121+
├── deprecated/ # 已废弃的模块
122+
│ └── gui_launcher.py # [已废弃] GUI 启动器
109123
└── pyproject.toml # Poetry 配置
110124
```
111125

@@ -170,11 +184,13 @@ AIstudioProxyAPI/
170184
| `scripts.py` | UserScript 脚本注入 |
171185
| `debug.py` | 调试监听器设置 |
172186

173-
#### script_manager.py - 脚本注入 v3.0
187+
#### 脚本注入机制
174188

175-
- Playwright 原生网络拦截
176-
- 油猴脚本解析和注入
177-
- 模型数据同步
189+
脚本注入通过 `initialization/network.py` 实现:
190+
191+
- Playwright 原生路由拦截 `/api/models`
192+
- 从油猴脚本 (`more_models.js`) 解析模型数据
193+
- 模型数据自动同步到页面
178194

179195
### 3. stream/ - 流式代理服务
180196

@@ -257,6 +273,7 @@ AIstudioProxyAPI/
257273
| `constants.py` | 系统常量定义 |
258274
| `timeouts.py` | 超时配置 |
259275
| `selectors.py` | CSS 选择器定义 |
276+
| `selector_utils.py` | 选择器工具函数 |
260277
| `model_capabilities.json` | 模型能力配置(思考类型、Google Search 支持等) |
261278

262279
> **注意**: `model_capabilities.json` 是外部化的 JSON 配置文件,用于定义各模型的能力参数。

docs/authentication-setup.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 首次运行与认证设置指南
22

3-
为了避免每次启动都手动登录 AI Studio,你需要先通过 [`launch_camoufox.py --debug`](../launch_camoufox.py) 模式或 [`gui_launcher.py`](../gui_launcher.py) 的有头模式运行一次来生成认证文件
3+
为了避免每次启动都手动登录 AI Studio,你需要先通过 [`launch_camoufox.py --debug`](../launch_camoufox.py) 模式运行一次来生成认证文件
44

55
## 认证文件的重要性
66

@@ -61,9 +61,14 @@ python launch_camoufox.py --debug --server-port 2048 --stream-port 0 --helper ''
6161
6. **激活文件**: **将 `auth_profiles/saved/` 下新生成的 `.json` 文件移动到 `auth_profiles/active/` 目录。** 确保 `active` 目录下只有一个 `.json` 文件。
6262
7. 可以按 `Ctrl+C` 停止 `--debug` 模式的运行。
6363
64-
## 方法二:通过 GUI 启动有头模式 (推荐)
64+
## 方法二:通过 GUI 启动有头模式 (已废弃)
6565
66-
1. 运行 `python gui_launcher.py`。
66+
> [!WARNING]
67+
> GUI 启动器 (`gui_launcher.py`) 已移至 `deprecated/` 目录。请使用上面的命令行方式。
68+
69+
以下步骤仅供参考,不再推荐使用:
70+
71+
1. 运行 `python deprecated/gui_launcher.py`。
6772
2. 在 "认证文件管理" 区域,点击 **"管理认证文件"** 按钮。
6873
3. 在弹出的窗口中,点击 **"创建新认证文件"** 按钮。
6974
4. 输入想要保存的文件名(例如 `account1`),点击确定。
@@ -83,7 +88,7 @@ python launch_camoufox.py --debug --server-port 2048 --stream-port 0 --helper ''
8388
**认证文件会过期!** Google 的登录状态不是永久有效的。当无头模式启动失败并报告认证错误或重定向到登录页时,意味着 `active` 目录下的认证文件已失效。你需要:
8489
8590
1. 删除 `active` 目录下的旧文件。
86-
2. 重新执行上面的 **【通过命令行运行 Debug 模式】** 或 **【通过 GUI 启动有头模式】** 步骤,生成新的认证文件。
91+
2. 重新执行上面的 **【通过命令行运行 Debug 模式】** 步骤,生成新的认证文件。
8792
3. 将新生成的 `.json` 文件再次移动到 `active` 目录下。
8893
8994
## 重要提示

docs/daily-usage.md

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
完成首次认证设置后,您可以选择以下方式进行日常运行:
88

9-
- **图形界面启动**: 使用 [`gui_launcher.py`](../gui_launcher.py) 提供的现代化 GUI 界面 (支持一键创建认证)
109
- **命令行启动**: 直接使用 [`launch_camoufox.py`](../launch_camoufox.py) 命令行工具
1110
- **Docker 部署**: 使用容器化部署方式
1211

@@ -24,9 +23,6 @@
2423
### 基本启动(推荐)
2524

2625
```bash
27-
# 图形界面启动(推荐新手)
28-
python gui_launcher.py
29-
3026
# 命令行启动(推荐日常使用)
3127
python launch_camoufox.py --headless
3228

@@ -36,8 +32,6 @@ python launch_camoufox.py --debug
3632

3733
**就这么简单!** 所有配置都在 `.env` 文件中预设好了,无需复杂的命令行参数。
3834

39-
> **💡 提示**: 如果您是首次使用,强烈推荐使用 **图形界面启动 (`gui_launcher.py`)**。它提供了一个向导式的"创建新认证文件"功能,可以自动处理登录和文件保存,比命令行更直观。
40-
4135
## 启动器说明
4236

4337
### 关于 `--virtual-display` (Linux 虚拟显示无头模式)
@@ -152,35 +146,23 @@ python launch_camoufox.py --headless --stream-port 0 --helper ''
152146

153147
在此模式下,主服务器将仅通过 Playwright 与 AI Studio 页面交互 (模拟点击"编辑""复制"按钮) 来获取响应。这是传统的后备方法。
154148

155-
## 使用图形界面启动器
156-
157-
项目提供了一个基于 Tkinter 的图形用户界面 (GUI) 启动器:[`gui_launcher.py`](../gui_launcher.py)。
149+
## 图形界面启动器 (已废弃)
158150

159-
### 启动 GUI
151+
> [!WARNING]
152+
> GUI 启动器 (`gui_launcher.py`) 已移至 `deprecated/` 目录。推荐使用命令行方式 `python launch_camoufox.py`
160153

161-
```bash
162-
python gui_launcher.py
163-
```
154+
项目曾提供一个基于 Tkinter 的图形用户界面 (GUI) 启动器,但现已废弃。
164155

165-
### GUI 功能
156+
该工具的功能可通过以下命令行改写实现:
166157

167-
- **服务端口配置**: 指定 FastAPI 服务器监听的端口号 (默认为 2048)。
168-
- **端口进程管理**: 查询和停止指定端口上的进程。
169-
- **认证文件管理**:
170-
- **创建新认证**: 引导式流程,打开浏览器登录并自动保存 Cookie 到文件。
171-
- **切换认证**: 在多个已保存的认证文件(Profile)之间快速切换。
172-
- **启动选项**:
173-
1. **启动有头模式 (Debug, 交互式)**: 对应 `python launch_camoufox.py --debug`
174-
2. **启动无头模式 (后台独立运行)**: 对应 `python launch_camoufox.py --headless`
175-
- **本地 LLM 模拟服务**: 启动和管理本地 LLM 模拟服务 (基于 [`llm.py`](../llm.py))
176-
- **状态与日志**: 显示服务状态和实时日志
158+
- **有头模式**: `python launch_camoufox.py --debug`
159+
- **无头模式**: `python launch_camoufox.py --headless`
177160

178161
### 使用建议
179162

180-
- **首次运行**: 点击"管理认证文件" -> "创建新认证文件",跟随指引完成登录。
181-
- **日常后台运行**: 确保认证文件已激活,然后点击"启动无头模式"
182-
- **故障排查**: 使用"启动有头模式"观察浏览器行为。
183-
- 需要详细日志或调试:直接使用命令行 [`launch_camoufox.py`](../launch_camoufox.py)
163+
- **首次运行**: 使用 `python launch_camoufox.py --debug` 并手动完成登录
164+
- **日常后台运行**: `python launch_camoufox.py --headless`
165+
- **故障排查**: 使用 `--debug` 模式观察浏览器行为
184166

185167
## 重要注意事项
186168

docs/env-variables-reference.md

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,30 @@
147147
- **示例**: `TRACE_LOGS_ENABLED=true`
148148
- **说明**: 启用最详细的跟踪级别日志,用于深度调试
149149

150+
### JSON_LOGS
151+
152+
- **用途**: 启用 JSON 结构化日志
153+
- **类型**: 布尔值
154+
- **默认值**: `false`
155+
- **示例**: `JSON_LOGS=true`
156+
- **说明**: 启用后以 JSON 格式输出日志,适用于 ELK/Datadog 等日志聚合工具
157+
158+
### LOG_FILE_MAX_BYTES
159+
160+
- **用途**: 单个日志文件最大字节数
161+
- **类型**: 整数
162+
- **默认值**: `10485760` (10MB)
163+
- **示例**: `LOG_FILE_MAX_BYTES=20971520`
164+
- **说明**: 日志文件达到此大小后会自动轮换
165+
166+
### LOG_FILE_BACKUP_COUNT
167+
168+
- **用途**: 保留的日志备份文件数量
169+
- **类型**: 整数
170+
- **默认值**: `5`
171+
- **示例**: `LOG_FILE_BACKUP_COUNT=10`
172+
- **说明**: 轮换时保留的备份日志文件数量
173+
150174
---
151175

152176
## 认证配置
@@ -270,14 +294,23 @@
270294
- **示例**: `DEFAULT_THINKING_BUDGET=16384`
271295
- **说明**: 当 API 请求未提供 `reasoning_effort` 参数时使用此值
272296

273-
### DEFAULT_THINKING_LEVEL
297+
### DEFAULT_THINKING_LEVEL_PRO
274298

275-
- **用途**: 默认思考等级
299+
- **用途**: Gemini Pro 模型的默认思考等级
276300
- **类型**: 字符串
277301
- **默认值**: `high`
278302
- **可选值**: `high`, `low`
279-
- **示例**: `DEFAULT_THINKING_LEVEL=low`
280-
- **说明**: 仅适用于 gemini-3-pro-preview 等使用思考等级的模型。当 API 请求中未提供 `reasoning_effort` 参数时使用此值
303+
- **示例**: `DEFAULT_THINKING_LEVEL_PRO=low`
304+
- **说明**: 适用于 gemini-3-pro-preview 等 Pro 模型。当 API 请求中未提供 `reasoning_effort` 参数时使用此值
305+
306+
### DEFAULT_THINKING_LEVEL_FLASH
307+
308+
- **用途**: Gemini Flash 模型的默认思考等级
309+
- **类型**: 字符串
310+
- **默认值**: `high`
311+
- **可选值**: `high`, `medium`, `low`, `minimal`
312+
- **示例**: `DEFAULT_THINKING_LEVEL_FLASH=medium`
313+
- **说明**: 适用于 gemini-3-flash-preview 等 Flash 模型。当 API 请求中未提供 `reasoning_effort` 参数时使用此值
281314

282315
### ENABLE_GOOGLE_SEARCH
283316

@@ -419,6 +452,9 @@
419452

420453
## GUI 启动器配置
421454

455+
> [!WARNING]
456+
> GUI 启动器 (`gui_launcher.py`) 已移至 `deprecated/` 目录。以下配置仅供参考。
457+
422458
### GUI_DEFAULT_PROXY_ADDRESS
423459

424460
- **用途**: GUI 启动器的默认代理地址

0 commit comments

Comments
 (0)