Skip to content

Commit c24ba71

Browse files
authored
Merge pull request #191 from CJackHwang/dev
更新推送dev
2 parents 11fedad + f3ad813 commit c24ba71

21 files changed

Lines changed: 1638 additions & 491 deletions

.env.example

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,21 @@ DEFAULT_TOP_P=0.95
8585
# 默认停止序列 (JSON 数组格式)
8686
DEFAULT_STOP_SEQUENCES=["用户:"]
8787

88+
# 是否在处理请求时自动打开并使用 "URL Context" 功能,此工具功能详情可参考:https://ai.google.dev/gemini-api/docs/url-context
89+
ENABLE_URL_CONTEXT=true
90+
91+
# 是否默认启用 "指定思考预算" 功能 (true/false),不启用时模型一般将自行决定思考预算
92+
# 当 API 请求中未提供 reasoning_effort 参数时将使用此值。
93+
ENABLE_THINKING_BUDGET=false
94+
95+
# "指定思考预算量" 的默认值 (token)
96+
# 当 API 请求中未提供 reasoning_effort 参数时,将使用此值。
97+
DEFAULT_THINKING_BUDGET=8192
98+
99+
# 是否默认启用 "Google Search" 功能 (true/false)
100+
# 当 API 请求中未提供 tools 参数时,将使用此设置作为 Google Search 的默认开关状态。
101+
ENABLE_GOOGLE_SEARCH=false
102+
88103
# =============================================================================
89104
# 超时配置 (毫秒)
90105
# =============================================================================

README.md

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,27 @@ This project is generously sponsored by ZMTO. Visit their website: [https://zmto
2828

2929
## 系统要求
3030

31-
* **Python**: >=3.9, <4.0 (推荐 3.10+ 以获得最佳性能)
32-
* **依赖管理**: [Poetry](https://python-poetry.org/) (现代化Python依赖管理工具)
33-
* **类型检查**: [Pyright](https://github.com/microsoft/pyright) (可选,用于开发时类型检查)
34-
* **操作系统**: Windows, macOS, Linux (完全跨平台支持)
35-
* **内存**: 建议 2GB+ 可用内存
36-
* **网络**: 稳定的互联网连接访问 Google AI Studio
31+
* **Python**: >=3.9, <4.0 (推荐 3.10+ 以获得最佳性能,Docker环境使用3.10)
32+
* **依赖管理**: [Poetry](https://python-poetry.org/) (现代化Python依赖管理工具,替代传统requirements.txt)
33+
* **类型检查**: [Pyright](https://github.com/microsoft/pyright) (可选,用于开发时类型检查和IDE支持)
34+
* **操作系统**: Windows, macOS, Linux (完全跨平台支持,Docker部署支持x86_64和ARM64)
35+
* **内存**: 建议 2GB+ 可用内存 (浏览器自动化需要)
36+
* **网络**: 稳定的互联网连接访问 Google AI Studio (支持代理配置)
3737

3838
## 主要特性
3939

40-
* **OpenAI 兼容 API**: 支持 `/v1/chat/completions` 端点,完全兼容 OpenAI 客户端
41-
* **流式和非流式响应**: 支持实时流式输出和传统的完整响应模式
40+
* **OpenAI 兼容 API**: 支持 `/v1/chat/completions` 端点,完全兼容 OpenAI 客户端和第三方工具
41+
* **三层流式响应机制**: 集成流式代理 → 外部Helper服务 → Playwright页面交互的多重保障
4242
* **智能模型切换**: 通过 API 请求中的 `model` 字段动态切换 AI Studio 中的模型
43-
* **完整参数控制**: 支持 `temperature``max_output_tokens``top_p``stop` 等所有主要参数
43+
* **完整参数控制**: 支持 `temperature``max_output_tokens``top_p``stop``reasoning_effort` 等所有主要参数
4444
* **反指纹检测**: 使用 Camoufox 浏览器降低被检测为自动化脚本的风险
45-
* **多层响应获取**: 集成流式代理、外部 Helper 服务、Playwright 页面交互的多重保障机制
46-
* **脚本注入功能**: 支持油猴脚本动态挂载,实现与前端显示效果100%一致的模型增强 🆕
47-
* **现代化 Web UI**: 内置测试界面,支持实时聊天、状态监控、API密钥管理
45+
* **脚本注入功能 v3.0**: 使用 Playwright 原生网络拦截,支持油猴脚本动态挂载,100%可靠 🆕
46+
* **现代化 Web UI**: 内置测试界面,支持实时聊天、状态监控、分级API密钥管理
4847
* **图形界面启动器**: 提供功能丰富的 GUI 启动器,简化配置和进程管理
4948
* **灵活认证系统**: 支持可选的API密钥认证,完全兼容OpenAI标准的Bearer token格式
50-
* **模块化架构**: 采用清晰的模块化设计,便于维护和扩展
51-
* **统一配置管理**: 基于 `.env` 文件的统一配置方式,支持环境变量覆盖
52-
* **现代化开发工具**: 集成 Poetry 依赖管理和 Pyright 类型检查,提供优秀的开发体验
49+
* **模块化架构**: 清晰的模块分离设计,api_utils/、browser_utils/、config/ 等独立模块
50+
* **统一配置管理**: 基于 `.env` 文件的统一配置方式,支持环境变量覆盖,Docker兼容
51+
* **现代化开发工具**: Poetry 依赖管理 + Pyright 类型检查,提供优秀的开发体验
5352

5453
## 系统架构
5554

@@ -250,12 +249,14 @@ poetry update
250249
- [脚本注入指南](docs/script_injection_guide.md) - 油猴脚本动态挂载功能使用指南 (v3.0) 🆕
251250

252251
#### ⚙️ 高级配置
252+
- [流式处理模式详解](docs/streaming-modes.md) - 三层响应获取机制详细说明 🆕
253253
- [高级配置指南](docs/advanced-configuration.md) - 高级功能和配置选项
254254
- [日志控制指南](docs/logging-control.md) - 日志系统配置和调试
255255
- [故障排除指南](docs/troubleshooting.md) - 常见问题解决方案
256256

257257
#### 🛠️ 开发相关
258-
- [开发者指南](docs/development-guide.md) - Poetry、Pyright 和开发工作流程 🆕
258+
- [项目架构指南](docs/architecture-guide.md) - 模块化架构设计和组件详解 🆕
259+
- [开发者指南](docs/development-guide.md) - Poetry、Pyright 和开发工作流程
259260
- [依赖版本说明](docs/dependency-versions.md) - Poetry 依赖管理和版本控制详解
260261

261262
## 客户端配置示例
@@ -326,14 +327,19 @@ bash update.sh
326327
327328
## 重要提示
328329
329-
### 响应获取与参数控制
330+
### 三层响应获取机制与参数控制
330331
331-
* **响应获取优先级**: 项目采用多层响应获取机制
332-
1. **集成的流式代理服务**: 默认启用,提供最佳性能
333-
2. **外部 Helper 服务**: 可选配置
334-
3. **Playwright 页面交互**: 后备方案
332+
* **响应获取优先级**: 项目采用三层响应获取机制,确保高可用性
333+
1. **集成流式代理服务 (Stream Proxy)**: 默认启用,端口3120,提供最佳性能和稳定性
334+
2. **外部 Helper 服务**: 可选配置,需要有效认证文件,作为备用方案
335+
3. **Playwright 页面交互**: 最终后备方案,通过浏览器自动化获取响应
335336
336-
* **参数控制**: API 请求中的模型参数(如 `temperature`, `max_output_tokens`, `top_p`, `stop`**仅在通过 Playwright 页面交互获取响应时生效**。使用集成流式代理或外部 Helper 服务时,参数传递取决于这些服务的实现。
337+
* **参数控制机制**:
338+
- **流式代理模式**: 支持基础参数传递,性能最优
339+
- **Helper服务模式**: 参数支持取决于外部服务实现
340+
- **Playwright模式**: 完整支持所有参数(`temperature`, `max_output_tokens`, `top_p`, `stop`, `reasoning_effort`等)
341+
342+
* **脚本注入增强**: v3.0版本使用Playwright原生网络拦截,确保注入模型与原生模型100%一致
337343
338344
### 客户端管理历史
339345

browser_utils/__init__.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515
switch_ai_studio_model,
1616
load_excluded_models,
1717
_handle_initial_model_state_and_storage,
18-
_set_model_from_page_display
18+
_set_model_from_page_display,
19+
_verify_ui_state_settings,
20+
_force_ui_state_settings,
21+
_force_ui_state_with_retry,
22+
_verify_and_apply_ui_state
1923
)
2024
from .script_manager import ScriptManager, script_manager
2125

@@ -40,6 +44,10 @@
4044
'load_excluded_models',
4145
'_handle_initial_model_state_and_storage',
4246
'_set_model_from_page_display',
47+
'_verify_ui_state_settings',
48+
'_force_ui_state_settings',
49+
'_force_ui_state_with_retry',
50+
'_verify_and_apply_ui_state',
4351

4452
# 脚本管理相关
4553
'ScriptManager',

0 commit comments

Comments
 (0)