|
1 | 1 | # TestPilot AI 开发备忘录 |
2 | 2 |
|
3 | | -> 最后更新:2026-03-31(✅ 引擎下载 404 修复 + VSIX/引擎自托管) |
| 3 | +> 最后更新:2026-04-01(✅ AI 全代理模式 + 版本自动检查) |
4 | 4 | > 项目结构详见 README.md,此处不重复。 |
5 | 5 |
|
6 | 6 | --- |
7 | 7 |
|
| 8 | +## ✅ AI 全代理模式 + 版本自动检查(2026-04-01,v1.5.4) |
| 9 | + |
| 10 | +### 背景 |
| 11 | + |
| 12 | +引擎打包成 exe 后没有 `.env` 文件,`TP_AI_API_KEY` 未配置 → AI 诊断功能不可用。同时也需要一个机制让后端切换 AI 模型而不要求用户更新插件。 |
| 13 | + |
| 14 | +### 架构设计 |
| 15 | + |
| 16 | +``` |
| 17 | +用户引擎(exe) |
| 18 | + 有 TP_AI_API_KEY → 直连豆包(开发模式,本地.env) |
| 19 | + 无 TP_AI_API_KEY → ProxyAIClient → xinzaoai.com/api/ai/proxy → 豆包 |
| 20 | + ↑ 后端改 TP_ARK_MODEL/TP_ARK_API_KEY 即可切换模型,无需用户更新 |
| 21 | +``` |
| 22 | + |
| 23 | +### 修改文件 |
| 24 | + |
| 25 | +**引擎端:** |
| 26 | +- `src/core/ai_client.py`:末尾新增 `ProxyAIClient` 类,接口与 `AIClient` 完全相同 |
| 27 | + - 代理地址:`https://xinzaoai.com/api/ai/proxy` |
| 28 | + - 鉴权:`X-Engine-Secret: testpilot-engine-secret-2026` |
| 29 | +- `src/app.py`:无 `TP_AI_API_KEY` 时自动使用 `ProxyAIClient` |
| 30 | + |
| 31 | +**服务器端(`xinzao/server/index.js`):** |
| 32 | +- `bodyParser.json({ limit: '10mb' })`:支持截图 base64 大请求体 |
| 33 | +- `GET /api/version/check`:返回 `{ latest, minimum, model, changelog }` |
| 34 | +- `POST /api/ai/proxy`:验证 `X-Engine-Secret` → 转发到豆包 → 返回 OpenAI 格式响应 |
| 35 | +- 环境变量:`TP_ARK_API_KEY`、`TP_ARK_BASE_URL`、`TP_ARK_MODEL`、`TP_ENGINE_SECRET` |
| 36 | + |
| 37 | +**插件端(`extension/src/engineManager.ts`):** |
| 38 | +- `_checkVersion()` 方法:启动时异步调 `/api/version/check` |
| 39 | + - 低于 `minimum` → 弹出模态强制更新提示 |
| 40 | + - 低于 `latest` → 弱提示,用户可选择忽略 |
| 41 | + |
| 42 | +### 服务器部署待做 |
| 43 | + |
| 44 | +SSH 被 fail2ban 临时封锁,手动解封后执行: |
| 45 | + |
| 46 | +```bash |
| 47 | +# 1. 上传 server/index.js |
| 48 | +scp -i "D:\Projects\xinzao\key\xinzao_ai.pem" D:\Projects\xinzao\server\index.js ubuntu@115.159.71.197:/home/ubuntu/xinzao/server/ |
| 49 | + |
| 50 | +# 2. 设置服务器环境变量 |
| 51 | +ssh ubuntu@115.159.71.197 |
| 52 | +cat >> /home/ubuntu/xinzao/server/.env << 'EOF' |
| 53 | +TP_ARK_API_KEY=98c755a5-2ae7-47b1-8904-a990482cfab2 |
| 54 | +TP_ARK_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 |
| 55 | +TP_ARK_MODEL=doubao-seed-1-8-251228 |
| 56 | +TP_ENGINE_SECRET=testpilot-engine-secret-2026 |
| 57 | +EOF |
| 58 | + |
| 59 | +# 3. 重启服务 |
| 60 | +pm2 restart xinzao-server # 或 node index.js |
| 61 | + |
| 62 | +# 4. 上传新 VSIX |
| 63 | +scp testpilot-ai-1.5.4.vsix ubuntu@115.159.71.197:/var/www/xinzao/downloads/ |
| 64 | +``` |
| 65 | + |
| 66 | +### 版本管理说明 |
| 67 | + |
| 68 | +服务器 `index.js` 里的两个常量控制版本策略: |
| 69 | +```javascript |
| 70 | +const TP_LATEST_VERSION = '1.5.4'; // 弱提示更新 |
| 71 | +const TP_MINIMUM_VERSION = '1.5.0'; // 低于此版本强制更新 |
| 72 | +``` |
| 73 | +**切换 AI 模型**:只需 SSH 改服务器 `.env` 的 `TP_ARK_MODEL`,重启服务,用户无感知。 |
| 74 | + |
| 75 | +### Git 信息 |
| 76 | + |
| 77 | +- Commit: `4b82bc6` — "feat: AI全代理模式 + 版本自动检查(v1.5.4)" |
| 78 | +- Tag: `v1.5.4` |
| 79 | + |
| 80 | +--- |
| 81 | + |
8 | 82 | ## ✅ 引擎下载 404 修复 + 插件自托管发布(2026-03-31) |
9 | 83 |
|
10 | 84 | ### 问题背景 |
|
0 commit comments