Skip to content

Commit 3f0d025

Browse files
author
youtianzhang
committed
Merge branch 'dev' into addpic
# Conflicts: # api_utils/request_processor.py
2 parents baf3f68 + 0770ac6 commit 3f0d025

34 files changed

Lines changed: 2665 additions & 246 deletions

.env.example

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# =============================================================================
77

88
# FastAPI 服务端口
9-
PORT=8000
9+
PORT=2048
1010

1111
# GUI 启动器默认端口配置
1212
DEFAULT_FASTAPI_PORT=2048
@@ -25,7 +25,7 @@ STREAM_PORT=3120
2525
# HTTPS_PROXY=http://127.0.0.1:7890
2626

2727
# 统一代理配置 (优先级高于 HTTP_PROXY/HTTPS_PROXY)
28-
# UNIFIED_PROXY_CONFIG=http://127.0.0.1:7890
28+
UNIFIED_PROXY_CONFIG=http://127.0.0.1:7890
2929

3030
# 代理绕过列表 (用分号分隔)
3131
# NO_PROXY=localhost;127.0.0.1;*.local
@@ -134,6 +134,17 @@ GUI_DEFAULT_STREAM_PORT=3120
134134
# GUI 默认 Helper 端点
135135
GUI_DEFAULT_HELPER_ENDPOINT=
136136

137+
# =============================================================================
138+
# 脚本注入配置
139+
# =============================================================================
140+
141+
# 是否启用油猴脚本注入功能
142+
ENABLE_SCRIPT_INJECTION=true
143+
144+
# 油猴脚本文件路径(相对于项目根目录)
145+
# 模型数据直接从此脚本文件中解析,无需额外配置文件
146+
USERSCRIPT_PATH=browser_utils/more_modles.js
147+
137148
# =============================================================================
138149
# 其他配置
139150
# =============================================================================

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,3 +231,19 @@ deprecated_javascript_version/node_modules/
231231
.roomodes
232232
memory-bank/
233233
gui_config.json
234+
235+
# key
236+
key.txt
237+
238+
# 脚本注入相关文件
239+
# 用户自定义的模型配置文件(保留示例文件)
240+
browser_utils/model_configs.json
241+
browser_utils/my_*.json
242+
# 用户自定义的油猴脚本(如果不是默认的)
243+
browser_utils/custom_*.js
244+
browser_utils/my_*.js
245+
# 临时生成的脚本文件
246+
browser_utils/generated_*.js
247+
# Docker 环境的实际配置文件(保留示例文件)
248+
docker/.env
249+
docker/my_*.json

README.md

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,18 @@ This project is generously sponsored by ZMTO. Visit their website: [https://zmto
3535

3636
## 主要特性
3737

38-
* **OpenAI 兼容 API**: 支持 `/v1/chat/completions` 端点,兼容现有的 OpenAI 客户端
39-
* **流式和非流式响应**: 支持实时流式输出和传统的完整响应
40-
* **模型切换**: 通过 API 请求中的 `model` 字段动态切换 AI Studio 中的模型
41-
* **参数控制**: 支持 `temperature`, `max_output_tokens`, `top_p`, `stop` 等参数
42-
* **反指纹检测**: 使用 Camoufox 降低被检测为自动化脚本的风险
43-
* **多种响应获取方式**: 集成流式代理、外部 Helper 服务、Playwright 页面交互
44-
* **Web UI**: 内置现代化的测试界面,支持聊天、状态监控、安全的API密钥管理
45-
* **图形界面启动器**: 提供 GUI 启动器,简化配置和管理
46-
* **灵活的认证系统**: 支持可选的API密钥认证,兼容OpenAI标准的Bearer token
38+
* **OpenAI 兼容 API**: 支持 `/v1/chat/completions` 端点,完全兼容 OpenAI 客户端
39+
* **流式和非流式响应**: 支持实时流式输出和传统的完整响应模式
40+
* **智能模型切换**: 通过 API 请求中的 `model` 字段动态切换 AI Studio 中的模型
41+
* **完整参数控制**: 支持 `temperature``max_output_tokens``top_p``stop` 等所有主要参数
42+
* **反指纹检测**: 使用 Camoufox 浏览器降低被检测为自动化脚本的风险
43+
* **多层响应获取**: 集成流式代理、外部 Helper 服务、Playwright 页面交互的多重保障机制
44+
* **脚本注入功能**: 支持油猴脚本动态挂载,实现与前端显示效果100%一致的模型增强 🆕
45+
* **现代化 Web UI**: 内置测试界面,支持实时聊天、状态监控、API密钥管理
46+
* **图形界面启动器**: 提供功能丰富的 GUI 启动器,简化配置和进程管理
47+
* **灵活认证系统**: 支持可选的API密钥认证,完全兼容OpenAI标准的Bearer token格式
48+
* **模块化架构**: 采用清晰的模块化设计,便于维护和扩展
49+
* **统一配置管理**: 基于 `.env` 文件的统一配置方式,支持环境变量覆盖
4750

4851
## 系统架构
4952

@@ -56,23 +59,28 @@ graph TD
5659
end
5760
5861
subgraph "启动与配置 (Launch & Config)"
59-
GUI_Launch["gui_launcher.py"]
60-
CLI_Launch["launch_camoufox.py"]
62+
GUI_Launch["gui_launcher.py (图形启动器)"]
63+
CLI_Launch["launch_camoufox.py (命令行启动)"]
64+
EnvConfig[".env (统一配置)"]
6165
KeyFile["key.txt (API Keys)"]
62-
ConfigDir["config/ (Settings)"]
66+
ConfigDir["config/ (配置模块)"]
6367
end
6468
6569
subgraph "核心应用 (Core Application)"
66-
FastAPI_App["api_utils/app.py (FastAPI App)"]
67-
Routes["api_utils/routes.py"]
68-
RequestProcessor["api_utils/request_processor.py"]
69-
PageController["browser_utils/page_controller.py"]
70-
StreamProxy["stream/ (Proxy Server)"]
70+
FastAPI_App["api_utils/app.py (FastAPI 应用)"]
71+
Routes["api_utils/routes.py (路由处理)"]
72+
RequestProcessor["api_utils/request_processor.py (请求处理)"]
73+
AuthUtils["api_utils/auth_utils.py (认证管理)"]
74+
PageController["browser_utils/page_controller.py (页面控制)"]
75+
ScriptManager["browser_utils/script_manager.py (脚本注入)"]
76+
ModelManager["browser_utils/model_management.py (模型管理)"]
77+
StreamProxy["stream/ (流式代理服务器)"]
7178
end
7279
7380
subgraph "外部依赖 (External Dependencies)"
74-
CamoufoxInstance["Camoufox 浏览器 (Browser)"]
81+
CamoufoxInstance["Camoufox 浏览器 (反指纹)"]
7582
AI_Studio["Google AI Studio"]
83+
UserScript["油猴脚本 (可选)"]
7684
end
7785
7886
User -- "运行 (Run)" --> GUI_Launch
@@ -86,14 +94,20 @@ graph TD
8694
API_Client -- "API 请求 (Request)" --> FastAPI_App
8795
WebUI -- "聊天请求 (Chat Request)" --> FastAPI_App
8896
89-
FastAPI_App -- "读取配置 (Reads Config)" --> ConfigDir
97+
FastAPI_App -- "读取配置 (Reads Config)" --> EnvConfig
9098
FastAPI_App -- "使用路由 (Uses Routes)" --> Routes
91-
FastAPI_App -- "验证密钥 (Validates Key)" --> KeyFile
99+
AuthUtils -- "验证密钥 (Validates Key)" --> KeyFile
100+
ConfigDir -- "提供设置 (Provides Settings)" --> EnvConfig
92101
93102
Routes -- "处理请求 (Processes Request)" --> RequestProcessor
103+
Routes -- "认证管理 (Auth Management)" --> AuthUtils
94104
RequestProcessor -- "控制浏览器 (Controls Browser)" --> PageController
95105
RequestProcessor -- "通过代理 (Uses Proxy)" --> StreamProxy
96106
107+
PageController -- "模型管理 (Model Management)" --> ModelManager
108+
PageController -- "脚本注入 (Script Injection)" --> ScriptManager
109+
ScriptManager -- "加载脚本 (Loads Script)" --> UserScript
110+
ScriptManager -- "增强功能 (Enhances)" --> CamoufoxInstance
97111
PageController -- "自动化 (Automates)" --> CamoufoxInstance
98112
CamoufoxInstance -- "访问 (Accesses)" --> AI_Studio
99113
StreamProxy -- "转发请求 (Forwards Request)" --> AI_Studio
@@ -161,6 +175,7 @@ python launch_camoufox.py --headless
161175
- [Web UI使用指南](docs/webui-guide.md) - Web界面功能说明
162176
- [故障排除指南](docs/troubleshooting.md) - 常见问题解决方案
163177
- [高级配置指南](docs/advanced-configuration.md) - 高级功能和配置选项
178+
- [脚本注入指南](docs/script_injection_guide.md) - 油猴脚本动态挂载功能使用指南 (v3.0) 🆕
164179
- [日志控制指南](docs/logging-control.md) - 日志系统配置和调试
165180
- [依赖版本说明](docs/dependency-versions.md) - Python版本要求和依赖兼容性详解
166181

@@ -188,15 +203,15 @@ python launch_camoufox.py --headless
188203

189204
```bash
190205
# 1. 准备配置文件
191-
cp docker/.env.docker .env
206+
cd docker
207+
cp .env.docker .env
192208
nano .env # 编辑配置
193209

194210
# 2. 使用 Docker Compose 启动
195-
cd docker
196-
docker-compose up -d
211+
docker compose up -d
197212

198-
# 3. 版本更新
199-
cd .. && git pull && cd docker && docker-compose up -d --build
213+
# 3. 版本更新 (在 docker 目录下)
214+
bash update.sh
200215
```
201216

202217
### 详细文档
@@ -206,8 +221,8 @@ cd .. && git pull && cd docker && docker-compose up -d --build
206221

207222
### 重要说明
208223

209-
-**配置统一**: Docker 和本地环境使用相同的 `.env` 配置方式
210-
-**版本更新**: `git pull` + `docker-compose up -d --build` 即可完成更新
224+
-**配置统一**: 使用 `.env` 文件管理所有配置
225+
-**版本更新**: `bash update.sh` 即可完成更新
211226
-**目录整洁**: Docker 文件已移至 `docker/` 目录
212227
- ⚠️ **认证文件**: 首次运行需要在主机上获取认证文件,然后挂载到容器中
213228

0 commit comments

Comments
 (0)