ai-chatbot/火山引擎视频模型配置流程.md
Your Name 53ddb7e585
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Initial commit - clean repository
2025-12-17 20:15:18 +08:00

157 lines
9.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 火山引擎视频模型配置流程说明
## 📊 数据流程图
```
┌─────────────────────────────────────────────────────────────────┐
│ 步骤1:管理员在UI中配置模型 │
├─────────────────────────────────────────────────────────────────┤
│ - 选择"火山引擎视频"Provider │
│ - 看到4个模型配置表单(动态从预设加载) │
│ - 可以修改: │
│ ✏️ 模型ID(例如:doubao-seedance-1-0-pro-250528) │
│ ✏️ 显示名称(例如:豆包 Seedance Pro 250528) │
│ ✏️ 描述(例如:全功能专业版...) │
│ - 点击"保存" │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 步骤2:API处理并保存到数据库 │
├─────────────────────────────────────────────────────────────────┤
│ API: POST /api/admin/volcano-video-models │
│ │
│ 1️⃣ 接收管理员输入的模型配置 │
│ { modelId, displayName, description } │
│ │
│ 2️⃣ 智能匹配预设配置(从 volcano-video-models.ts) │
│ - 精确匹配:直接使用预设的 capabilities │
│ - 模糊匹配:如果模型ID是新版本,匹配相似配置 │
│ - 兜底方案:使用Pro版本的默认配置 │
│ │
│ 3️⃣ 合并配置并保存到数据库 AiModel 表: │
│ INSERT INTO "AiModel" ( │
│ providerId, -- 火山引擎视频Provider ID │
│ modelId, -- ✅ 管理员输入 │
│ displayName, -- ✅ 管理员输入 │
│ description, -- ✅ 管理员输入 │
│ capabilities, -- 🔧 从预设自动填充 │
│ defaultParams, -- 🔧 从预设自动填充 │
│ supportsVision, -- 🔧 从预设自动填充 │
│ supportsImageGen, -- 🔧 从预设自动填充 │
│ isEnabled, -- ✅ 默认 true │
│ sortOrder -- 🔧 从预设自动填充 │
│ ) │
│ │
│ ✅ 保存成功!数据库现在包含完整的模型配置 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 步骤3:前端功能从数据库读取模型配置 │
├─────────────────────────────────────────────────────────────────┤
│ 场景1:聊天界面 - 选择模型 │
│ GET /api/models │
│ → 返回所有启用的模型(包含 capabilities) │
│ → 前端显示模型列表供用户选择 │
│ │
│ 场景2:视频生成 - 参数验证 │
│ 用户选择:分辨率 1080p、比例 16:9、时长 8秒 │
│ ↓ │
│ 从数据库读取模型的 capabilities: │
│ { │
│ supportedResolutions: ['480p', '720p', '1080p'], │
│ supportedRatios: ['16:9', '4:3', '1:1', ...], │
│ durationRange: { min: 2, max: 12 } │
│ } │
│ ↓ │
│ ✅ 验证通过:1080p ∈ supportedResolutions │
│ ✅ 验证通过:16:9 ∈ supportedRatios │
│ ✅ 验证通过:8秒 在 [2, 12] 范围内 │
│ ↓ │
│ 调用视频生成API │
│ │
│ 场景3:智能模型选择 │
│ 用户选择"首尾帧过渡"模式 │
│ ↓ │
│ 查询数据库:WHERE capabilities->'supportedModes' @> '["first-last-frame"]' │
│ ↓ │
│ 返回支持该模式的模型列表: │
│ - doubao-seedance-1-0-pro-250528 ✅ │
│ - doubao-seedance-1-0-lite-i2v-250428 ✅ │
│ ↓ │
│ 自动选择优先级最高的模型 │
└─────────────────────────────────────────────────────────────────┘
```
## 🔄 模型名称更新场景
### 场景:火山引擎发布新版本模型
```
旧模型:doubao-seedance-1-0-pro-250528
新模型:doubao-seedance-1-0-pro-260115 ← 新版本
```
**管理员操作:**
1. 在系统设置中,打开"添加模型"对话框
2. 选择"火山引擎视频"Provider
3. 修改第一个模型的 `模型ID` 为 `doubao-seedance-1-0-pro-260115`
4. 显示名称自动变为:`豆包 Seedance Pro 260115`
5. 点击"保存"
**系统处理:**
```javascript
// API智能匹配逻辑
const preset = VOLCANO_VIDEO_MODEL_PRESETS.find(p =>
p.modelId === 'doubao-seedance-1-0-pro-260115'
);
// ❌ 找不到精确匹配
// 尝试模糊匹配
const baseModelId = 'doubao-seedance-1-0'; // 提取基础名称
const preset = VOLCANO_VIDEO_MODEL_PRESETS.find(p =>
p.modelId.startsWith(baseModelId)
);
// ✅ 找到:doubao-seedance-1-0-pro-250528
// 使用旧版本的 capabilities 作为模板
return {
...preset, // 继承 capabilities、defaultParams
modelId: 'doubao-seedance-1-0-pro-260115', // 使用新版本ID
displayName: '豆包 Seedance Pro 260115', // 管理员输入
description: '全功能专业版(2025年1月新版)' // 管理员输入
};
// ✅ 保存到数据库,前端功能正常使用
```
## 📝 后续维护步骤
### 当火山引擎更新模型名称时:
#### 方式1:管理员直接在UI中修改(推荐)
1. 打开系统设置 → AI 模型
2. 找到旧模型,点击"编辑"
3. 修改模型ID和显示名称
4. 保存即可
#### 方式2:开发者更新预设配置(适用于批量更新)
1. 修改 `lib/ai/volcano-video-models.ts` 文件
2. 更新 `VOLCANO_VIDEO_MODEL_PRESETS` 数组中的模型配置
3. 部署代码
4. 管理员在UI中删除旧模型,重新添加(会自动使用新预设)
## 🎯 关键优势
✅ **灵活性**:管理员可以随时更新模型名称,无需代码改动
✅ **智能性**:API能自动匹配相似配置,避免配置丢失
✅ **一致性**:所有功能都从数据库读取,保证数据统一
✅ **可维护性**:预设配置集中管理,易于批量更新
## ⚠️ 注意事项
1. **首次添加模型时**,必须选择火山引擎视频Provider,系统才会显示4个模型配置表单
2. **模型ID必须唯一**,不能重复添加相同的模型
3. **capabilities字段很重要**,决定了视频生成的参数验证逻辑
4. **如果预设配置不匹配**,系统会使用Pro版本的默认配置作为兜底