Spaces:
Runtime error
Runtime error
File size: 5,501 Bytes
927965d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# 脚本注入 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. 提供详细的错误信息和环境配置
|