# 流式处理模式详解 本文档详细介绍 AI Studio Proxy API 的三层流式响应获取机制,包括各种模式的工作原理、配置方法和适用场景。 ## 🔄 三层响应获取机制概览 项目实现了三层响应获取机制,确保高可用性和最佳性能: ``` 请求 → 第一层: 集成流式代理 → 第二层: 外部Helper服务 → 第三层: Playwright页面交互 ``` ### 工作原理 1. **优先级处理**: 按层级顺序尝试获取响应 2. **自动降级**: 上层失败时自动降级到下层 3. **性能优化**: 优先使用高性能方案 4. **完整后备**: 确保在任何情况下都能获取响应 ## 🚀 第一层: 集成流式代理 (Stream Proxy) ### 概述 集成流式代理是默认启用的高性能响应获取方案,提供最佳的性能和稳定性。 ### 技术特点 - **独立进程**: 运行在独立的进程中,不影响主服务 - **直接转发**: 直接转发请求到 AI Studio,减少中间环节 - **流式处理**: 原生支持流式响应,实时传输数据 - **高性能**: 最小化延迟,最大化吞吐量 ### 配置方式 #### .env 文件配置 (推荐) ```env # 启用集成流式代理 STREAM_PORT=3120 # 禁用集成流式代理 STREAM_PORT=0 ``` #### 命令行配置 ```bash # 启用 (默认端口 3120) python launch_camoufox.py --headless --stream-port 3120 # 自定义端口 python launch_camoufox.py --headless --stream-port 3125 # 禁用 python launch_camoufox.py --headless --stream-port 0 ``` ### 工作流程 1. 主服务接收 API 请求 2. 将请求转发到集成流式代理 (端口 3120) 3. 流式代理直接与 AI Studio 通信 4. 实时流式返回响应数据 5. 主服务转发响应给客户端 ### 适用场景 - **日常使用**: 提供最佳性能体验 - **生产环境**: 稳定可靠的生产部署 - **高并发**: 支持多用户同时使用 - **流式应用**: 需要实时响应的应用 ## 🔧 第二层: 外部 Helper 服务 ### 概述 外部 Helper 服务是可选的备用方案,当集成流式代理不可用时启用。 ### 技术特点 - **外部服务**: 独立部署的外部服务 - **认证依赖**: 需要有效的认证文件 - **灵活配置**: 支持自定义端点 - **备用方案**: 作为流式代理的备用 ### 配置方式 #### .env 文件配置 ```env # 配置 Helper 服务端点 GUI_DEFAULT_HELPER_ENDPOINT=http://your-helper-service:port # 或留空禁用 GUI_DEFAULT_HELPER_ENDPOINT= ``` #### 命令行配置 ```bash # 启用 Helper 服务 python launch_camoufox.py --headless --helper 'http://your-helper-service:port' # 禁用 Helper 服务 python launch_camoufox.py --headless --helper '' ``` ### 认证要求 - **认证文件**: 需要 `auth_profiles/active/*.json` 文件 - **SAPISID Cookie**: 从认证文件中提取必要的认证信息 - **有效性检查**: 自动验证认证文件的有效性 ### 工作流程 1. 检查集成流式代理是否可用 2. 如果不可用,检查 Helper 服务配置 3. 验证认证文件的有效性 4. 将请求转发到外部 Helper 服务 5. Helper 服务处理请求并返回响应 ### 适用场景 - **特殊环境**: 需要特定网络环境的部署 - **自定义服务**: 使用自己开发的 Helper 服务 - **备用方案**: 当集成代理不可用时的备选 - **分布式部署**: Helper 服务独立部署的场景 ## 🎭 第三层: Playwright 页面交互 ### 概述 Playwright 页面交互是最终的后备方案,通过浏览器自动化获取响应。 ### 技术特点 - **浏览器自动化**: 使用 Camoufox 浏览器模拟用户操作 - **完整参数支持**: 支持所有 AI Studio 参数 - **反指纹检测**: 使用 Camoufox 降低检测风险 - **最终后备**: 确保在任何情况下都能工作 ### 配置方式 #### .env 文件配置 ```env # 禁用前两层,强制使用 Playwright STREAM_PORT=0 GUI_DEFAULT_HELPER_ENDPOINT= # 浏览器配置 LAUNCH_MODE=headless DEFAULT_CAMOUFOX_PORT=9222 ``` #### 命令行配置 ```bash # 纯 Playwright 模式 python launch_camoufox.py --headless --stream-port 0 --helper '' # 调试模式 (有头浏览器) python launch_camoufox.py --debug ``` ### 参数支持 Playwright 模式支持完整的 AI Studio 参数控制: - **基础参数**: `temperature`, `max_output_tokens`, `top_p` - **停止序列**: `stop` 参数 - **思考预算**: `reasoning_effort` 参数 - **工具调用**: `tools` 参数 (Google Search 等) - **URL上下文**: `ENABLE_URL_CONTEXT` 配置 ### 工作流程 1. 检查前两层是否可用 2. 如果都不可用,启用 Playwright 模式 3. 在 AI Studio 页面设置参数 4. 发送消息到聊天界面 5. 通过编辑/复制按钮获取响应 6. 解析并返回响应数据 ### 适用场景 - **调试模式**: 开发和调试时使用 - **参数精确控制**: 需要精确控制所有参数 - **首次认证**: 获取认证文件时使用 - **故障排除**: 当其他方式都失败时的最终方案 ## ⚙️ 模式选择和配置 ### 推荐配置 #### 生产环境 ```env # 优先使用集成流式代理 STREAM_PORT=3120 GUI_DEFAULT_HELPER_ENDPOINT= LAUNCH_MODE=headless ``` #### 开发环境 ```env # 启用调试日志 DEBUG_LOGS_ENABLED=true STREAM_PORT=3120 LAUNCH_MODE=normal ``` #### 调试模式 ```env # 强制使用 Playwright,启用详细日志 STREAM_PORT=0 GUI_DEFAULT_HELPER_ENDPOINT= DEBUG_LOGS_ENABLED=true TRACE_LOGS_ENABLED=true LAUNCH_MODE=normal ``` ### 性能对比 | 模式 | 延迟 | 吞吐量 | 参数支持 | 稳定性 | 适用场景 | |------|------|--------|----------|--------|----------| | 集成流式代理 | 最低 | 最高 | 基础 | 最高 | 生产环境 | | Helper 服务 | 中等 | 中等 | 取决于实现 | 中等 | 特殊环境 | | Playwright | 最高 | 最低 | 完整 | 中等 | 调试开发 | ### 故障排除 #### 集成流式代理问题 - 检查端口是否被占用 - 验证代理配置 - 查看流式代理日志 #### Helper 服务问题 - 验证认证文件有效性 - 检查 Helper 服务可达性 - 确认 SAPISID Cookie #### Playwright 问题 - 检查浏览器连接状态 - 验证页面加载状态 - 查看浏览器控制台错误 ## 🔍 监控和调试 ### 日志配置 ```env # 启用详细日志 DEBUG_LOGS_ENABLED=true TRACE_LOGS_ENABLED=true SERVER_LOG_LEVEL=DEBUG ``` ### 健康检查 访问 `/health` 端点查看各层状态: ```json { "status": "healthy", "playwright_ready": true, "browser_connected": true, "page_ready": true, "worker_running": true, "queue_length": 0, "stream_proxy_status": "running" } ``` ### 实时监控 - Web UI 的"服务器信息"标签页 - WebSocket 日志流 (`/ws/logs`) - 队列状态端点 (`/v1/queue`) 这种三层机制确保了系统的高可用性和最佳性能,为不同的使用场景提供了灵活的配置选项。