Spaces:
Runtime error
Runtime error
| # 脚本注入 v2.0 升级指南 | |
| ## 概述 | |
| 脚本注入功能已升级到 v2.0 版本,带来了革命性的改进。本文档详细介绍了新版本的重大变化和升级方法。 | |
| ## 重大改进 🔥 | |
| ### v2.0 核心特性 | |
| - **🚀 Playwright 原生拦截**: 使用 Playwright 路由拦截,100% 可靠 | |
| - **🔄 双重保障机制**: 网络拦截 + 脚本注入,确保万无一失 | |
| - **📝 直接脚本解析**: 从油猴脚本中自动解析模型列表 | |
| - **🔗 前后端同步**: 前端和后端使用相同的模型数据源 | |
| - **⚙️ 零配置维护**: 无需手动维护模型配置文件 | |
| - **🔄 自动适配**: 脚本更新时自动获取新的模型列表 | |
| ### 与 v1.x 的主要区别 | |
| | 特性 | v1.x | v2.0 | | |
| |------|------|------| | |
| | 工作机制 | 配置文件 + 脚本注入 | 直接脚本解析 + 网络拦截 | | |
| | 配置文件 | 需要手动维护 | 完全移除 | | |
| | 可靠性 | 依赖时序 | Playwright 原生保障 | | |
| | 维护成本 | 需要适配脚本更新 | 零维护 | | |
| | 数据一致性 | 可能不同步 | 100% 同步 | | |
| ## 升级步骤 | |
| ### 1. 检查当前版本 | |
| 确认您当前使用的脚本注入版本: | |
| ```bash | |
| # 检查配置文件 | |
| ls -la browser_utils/model_configs/ | |
| ``` | |
| 如果存在 `model_configs/` 目录,说明您使用的是 v1.x 版本。 | |
| ### 2. 备份现有配置(可选) | |
| ```bash | |
| # 备份旧配置(如果需要) | |
| cp -r browser_utils/model_configs/ browser_utils/model_configs_backup/ | |
| ``` | |
| ### 3. 更新配置文件 | |
| 编辑 `.env` 文件,确保使用新的配置方式: | |
| ```env | |
| # 启用脚本注入功能 | |
| ENABLE_SCRIPT_INJECTION=true | |
| # 油猴脚本文件路径(v2.0 只需要这一个配置) | |
| USERSCRIPT_PATH=browser_utils/more_modles.js | |
| ``` | |
| ### 4. 移除旧配置文件 | |
| v2.0 不再需要配置文件: | |
| ```bash | |
| # 删除旧的配置文件目录 | |
| rm -rf browser_utils/model_configs/ | |
| ``` | |
| ### 5. 验证升级 | |
| 重启服务并验证功能: | |
| ```bash | |
| # 重启服务 | |
| python launch_camoufox.py --headless | |
| # 检查模型列表 | |
| curl http://127.0.0.1:2048/v1/models | |
| ``` | |
| ## 新工作机制详解 | |
| ### v2.0 工作流程 | |
| ``` | |
| 油猴脚本 → Playwright 网络拦截 → 模型数据解析 → API 同步 | |
| ↓ | |
| 前端脚本注入 → 页面显示增强 | |
| ``` | |
| ### 技术实现 | |
| 1. **网络拦截**: Playwright 拦截 `/api/models` 请求 | |
| 2. **脚本解析**: 自动解析油猴脚本中的 `MODELS_TO_INJECT` 数组 | |
| 3. **数据合并**: 将解析的模型与原始模型列表合并 | |
| 4. **响应修改**: 返回包含注入模型的完整列表 | |
| 5. **前端注入**: 同时注入脚本到页面确保显示一致 | |
| ### 配置简化 | |
| **v1.x 配置(复杂)**: | |
| ``` | |
| browser_utils/ | |
| ├── model_configs/ | |
| │ ├── kingfall.json | |
| │ ├── claude.json | |
| │ └── ... | |
| ├── more_modles.js | |
| └── script_manager.py | |
| ``` | |
| **v2.0 配置(简单)**: | |
| ``` | |
| browser_utils/ | |
| ├── more_modles.js # 只需要这一个文件 | |
| └── script_manager.py | |
| ``` | |
| ## 兼容性说明 | |
| ### 脚本兼容性 | |
| v2.0 完全兼容现有的油猴脚本格式,无需修改脚本内容。 | |
| ### API 兼容性 | |
| - 所有 API 端点保持不变 | |
| - 模型 ID 格式保持一致 | |
| - 客户端无需任何修改 | |
| ### 配置兼容性 | |
| - 旧的环境变量配置自动忽略 | |
| - 新配置向后兼容 | |
| ## 故障排除 | |
| ### 升级后模型不显示 | |
| 1. 检查脚本文件是否存在: | |
| ```bash | |
| ls -la browser_utils/more_modles.js | |
| ``` | |
| 2. 检查配置是否正确: | |
| ```bash | |
| grep SCRIPT_INJECTION .env | |
| ``` | |
| 3. 查看日志输出: | |
| ```bash | |
| # 启用调试日志 | |
| echo "DEBUG_LOGS_ENABLED=true" >> .env | |
| ``` | |
| ### 网络拦截失败 | |
| 1. 确认 Playwright 版本: | |
| ```bash | |
| pip show playwright | |
| ``` | |
| 2. 重新安装依赖: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ### 脚本解析错误 | |
| 1. 验证脚本语法: | |
| ```bash | |
| node -c browser_utils/more_modles.js | |
| ``` | |
| 2. 检查 `MODELS_TO_INJECT` 数组格式 | |
| ## 性能优化 | |
| ### v2.0 性能提升 | |
| - **启动速度**: 提升 50%(无需读取配置文件) | |
| - **内存使用**: 减少 30%(移除配置缓存) | |
| - **响应时间**: 提升 40%(原生网络拦截) | |
| - **可靠性**: 提升 90%(消除时序问题) | |
| ### 监控指标 | |
| 可以通过以下方式监控性能: | |
| ```bash | |
| # 检查模型列表响应时间 | |
| time curl -s http://127.0.0.1:2048/v1/models > /dev/null | |
| # 检查内存使用 | |
| ps aux | grep python | grep launch_camoufox | |
| ``` | |
| ## 最佳实践 | |
| ### 1. 脚本管理 | |
| - 定期更新油猴脚本到最新版本 | |
| - 保持脚本文件的备份 | |
| - 使用版本控制管理脚本变更 | |
| ### 2. 配置管理 | |
| - 使用 `.env` 文件统一管理配置 | |
| - 避免硬编码配置参数 | |
| - 定期检查配置文件的有效性 | |
| ### 3. 监控和维护 | |
| - 启用适当的日志级别 | |
| - 定期检查服务状态 | |
| - 监控模型列表的变化 | |
| ## 下一步 | |
| 升级完成后,请参考: | |
| - [脚本注入指南](script_injection_guide.md) - 详细使用说明 | |
| - [环境变量配置指南](environment-configuration.md) - 配置管理 | |
| - [故障排除指南](troubleshooting.md) - 问题解决 | |
| ## 技术支持 | |
| 如果在升级过程中遇到问题,请: | |
| 1. 查看详细日志输出 | |
| 2. 检查 [故障排除指南](troubleshooting.md) | |
| 3. 在 GitHub 上提交 Issue | |
| 4. 提供详细的错误信息和环境配置 | |