AIstudioProxyAPI / docs /script_injection_v2_upgrade.md
lengfeng1360's picture
Upload 87 files
927965d verified
# 脚本注入 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. 提供详细的错误信息和环境配置