模型
概览
AnyInt 目前通过多个路由家族来提供多模态能力,而不是单一的抽象层。主要的决策是你是否需要图像理解、图像生成、视频生成,还是完整的音乐创作工作流。
AnyInt 目前通过多个路由家族来提供多模态能力,而不是单一的抽象层。主要决策是你需要图片理解、图片生成、视频生成,还是完整音乐创作工作流。
当前的多模态接口
| 接口 | 最适合 | 请求体形状 | 同步或基于任务 |
|---|---|---|---|
| Anthropic 兼容消息 | 文本加图片理解 | Claude 风格的 messages[].content[] block | 同步 |
| Gemini 兼容路由 | 文本生成、图片生成、Gemini 原生函数流程 | contents[].parts[] | 同步或流式 |
| DashScope 媒体路由 | 基于提示词的图片和视频生成 | 媒体专属 input 和 parameters payload | 图片通常同步,视频基于任务 |
| AI 音乐 | 歌曲生成、翻唱、歌词、分轨和音乐视频工作流 | 音乐专属任务 payload | 基于任务 |
如何选择
| 需求 | 优先看 | 继续阅读 |
|---|---|---|
| 针对一张或多张参考图提问 | 图像输入 | Anthropic 兼容 API 或 Gemini 兼容 API |
| 基于文本或图片上下文生成图片 | 图像生成 | Gemini 兼容 API 和 媒体 API |
| 生成或轮询视频任务 | 视频生成 | 媒体 API |
| 创建歌曲、翻唱、歌词、分轨或音乐视频 | 媒体与音乐 | AI 音乐 API |
| 在加入媒体前先选择文本或推理模型 | 模型 | 模型 API |
同步与异步很重要
并非所有多模态路由都是同步的:
- 图像生成可以在一次响应中返回可用内容
- 视频和音乐工作流通常涉及任务、轮询和 Webhook
这会影响 UI 设计、重试逻辑,以及你存储输出的方式。
| 响应模式 | 设计影响 |
|---|---|
| 同步响应 | 请求完成后客户端可以直接使用响应 |
| 流式响应 | UI 必须把 chunk 当作部分状态,直到流关闭 |
| 任务创建响应 | 保存 task ID,并展示 pending 或 processing 状态 |
| 回调或轮询结果 | 只有任务成功终止且存在输出 URL 后,才标记资产可用 |
输入与输出经验规则
| 规则 | 为什么重要 |
|---|---|
| 保持 route family 分离 | OpenAI、Anthropic、Gemini、媒体和音乐 route 没有一个通用请求体 |
| 发送媒体时使用公开 URL 或支持的 inline 格式 | 模型供应商或网关必须能访问该资产 |
| 不要只凭模型 ID 推断所有模态能力 | 是否支持图片、视频或音乐,以 route 合同为准 |
| 将生成资产视为客户数据 | 按你的隐私和保留策略存储输出 URL、提示词和元数据 |
| 先用小 payload 测试 | 使用大文件前,更容易隔离鉴权、模型访问和请求体问题 |