You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

2.4 KiB

AI SDK Adapter 架构 - 实施总结

日期: 2026-02-13
状态: 已完成并验证


🎯 核心成果

SDK Adapter 架构

  • 实现了统一的 SDK 适配器模式
  • OpenAISdkAdapter: 处理 DALL-E, Flux, 即梦, Sora, Wan
  • GeminiSdkAdapter: 处理 Gemini, Veo(图片已实现,视频待实现)

Gemini 图片生成修复

  • 解决了 Gemini 400 错误问题
  • 使用 google-genai SDK 正确调用 API
  • 支持多种宽高比(1:1, 16:9, 21:9, 4K 等)

数据库优化

  • storyboard_videos 添加 ai_prompt 字段
  • storyboard_images 移除 ai_prompt_id 字段
  • 唯一性约束自动处理

测试验证

  • 图片模型: 3/3 (DALL-E 3, Gemini 2.5, Gemini 3)
  • 视频模型: 2/3 (即梦 3.0, Sora 2)
  • 所有数据完整性验证通过

📊 测试结果

图片生成

模型 状态 文件大小
DALL-E 3 3.02 MB
Gemini 2.5 Flash -
Gemini 3 Pro 1.06 MB

视频生成

模型 状态 文件大小
即梦 3.0 1080P 9.06 MB
Sora 2 2.10 MB

📁 关键文件

新增:

  • server/app/services/ai_providers/sdk_adapters/ (完整目录)
  • 3 个数据库迁移文件

修改:

  • aihubmix_provider.py (核心重构)
  • ai_generation_result_service.py (保存逻辑优化)
  • storyboard_resource.py (模型定义更新)
  • requirements.txt (添加 google-genai)

🚀 部署清单

  • 安装依赖: google-genai==1.63.0
  • 执行迁移: alembic upgrade head
  • 重启服务: app + celery-ai
  • 测试验证: 所有模型已测试通过

📌 待办事项

  1. 实现 GeminiSdkAdapter.generate_video() (Veo 模型)
  2. 前端移除音效/配音相关 UI
  3. 更新架构设计文档

💡 关键决策

为什么选择自定义 SDK Adapter 而非 LiteLLM?

  • 业务以视频生成为主,视频 API 尚未标准化
  • 完全控制参数映射和错误处理
  • 避免第三方库更新风险
  • 可根据 AIHubMix 特性深度优化

数据验证示例:

{
  "ai_model": "gemini-3-pro-image-preview",
  "ai_prompt": "生成一个赛博朋克风格的街道,霓虹灯招牌,未来感十足",
  "ai_params": {
    "quality": "high",
    "resolution": "4K",
    "aspectRatio": "21:9"
  }
}

详细文档: 参见 2026-02-13-ai-sdk-adapter-implementation.md