怎样把文字、图片、语音等 AI 能力组合成产品?
从用户结果反推需要的能力,画出数据流,先独立验证,再处理组合后的失败与成本。
本页目录
直接回答
先想用户需要什么结果,再选择模型和服务。应区分“开发时用 AI 写代码”和“产品运行时调用 AI”:一个由 AI 写出的静态网站,运行时不一定需要模型;聊天、语音和生图则可能在每次使用时产生外部调用。产品可以从文字回复逐步扩展到语音与偶尔出现的图片。能力越多不代表价值越高,也会增加等待、失败点和费用。每增加一种能力,都应写出触发条件、输入输出,以及失败时用户还能做什么。
适用场景
- 知道很多模型,但不清楚该怎么组合
- 产品需要聊天后自动播放语音或生成图片
- 准备把已有原型中的 AI 能力替换成自己的服务
一步一步做
描述用户最终拿到的东西
不要写“接入三个模型”,而要写“用户输入一句话后能得到可复制回复”“角色回复可以被听见”。逐项判断文字是否已经足够,图片或语音是否减少任务成本,还是只增加展示效果。
画出每次调用的数据流
标记浏览器、自己的服务端、外部模型和存储之间传递什么。比如用户消息先到服务端,再生成文字;文字进入 TTS,音频返回播放。不要把开发用的对话与最终用户使用产品时的模型调用混在一起。
为每项能力准备独立样例
在集成之前,用真实代表性输入分别测试文字、语音和图片。记录请求、结果、耗时、失败类型与使用成本的计算依据。虚拟试衣需要验证双图输入,而不能只看文生图演示就判断可以实现。
明确触发和顺序
哪些能力每次都调用,哪些只在用户点击时调用,哪些依赖前一步成功?给图片生成设定明确时机,避免每句话都生成图。依赖关系决定串行与并行,不能为了速度把需要前序结果的步骤同时开始。
设计局部失败与状态
整理建议:文字已成功但语音失败时保留文字并允许单独重试;不要整段重新生成导致重复扣费。区分等待、成功、失败和取消,记录可追踪的任务标识。需要保存的结果应验证可持久访问,不能依赖会过期的临时地址。
把运行时提示词和程序契约分开
开发用 SPEC 是交给开发者的,产品运行时还要有模型每次收到的角色、上下文和输出要求。实践建议:列出必需字段、类型、允许值和长度;模型返回后由服务端校验,格式不符时有限次重试或返回可恢复失败。以模拟器为例,选项数、分值范围、轮次和胜负边界由程序检查;模型负责内容与建议,不让一句“我已通关”直接改变成绩。
让模型提议动作,由程序决定是否执行
例如,可以用 [IMAGE:] 标记表达生图意图。实践修正:把它视为生图意图,服务端再验证角色、用户权限、额度、冷却间隔和重复请求;通过后才调用付费接口。不要让前端看到标记就无限发请求,也不要用“每三轮才生成”的提示词替代程序限制。系统提示词不存密钥;用户输入和历史内容可能改变模型行为,提示词约束不能代替授权。
固定样例检查提示词改动
保存一组正常对话、接近胜负边界、重复选择、越界要求、无关输入和生成失败样例,分别记录模型输出与程序处理。修改人设、提示词、模型或解析规则后重跑同一组,观察连贯性、格式通过、角色一致和调用次数。样例测试证明这些输入上的表现,不保证所有对话都正确。
案例拆解
假设练习:文字、语音与图片角色
假设一个虚构角色的产品,用人格约束文字回复,用 TTS 将回复转为音频,再用生图偶尔提供照片。真正需要协调的是人设、声音、外貌和触发时机,而不是把三个按钮摆在一起。先让文本聊天连续可用,再验证同一角色的声音与参考图;把“偶尔发图”明确成用户请求或可判断的事件,避免随机调用带来不可解释的费用。
如果模型给出 5 个选项,程序要求 6 个,就先判为无效,不让页面凑出第 6 个。某轮模型提议发照片,但用户当天额度已用完,应保留文字回复并说明照片未生成;不以聊天文本里的“额度足够”绕过服务端账本。
行动检查
可复制模板
AI 能力卡
工作模板
能力名称:[文字/语音/图片/其他]
用户价值:[帮助完成什么]
触发:[用户操作或明确事件]
输入与输出:[格式、大小、字段]
前置依赖:[需要哪个步骤成功]
独立验证样例:[输入、期望结果、实际结果]
失败处理:[保留什么、重试什么、怎样提示]
数据与成本:[发送给谁、保存多久、怎样核算调用量]
运行时输出契约与回归样例
任务与角色:
可信状态由服务端提供:[当前轮次、分数、角色 ID 等]
输入数据区:[用户原话/相关历史,不能改系统权限]
输出字段与类型:[reply:string;options:固定数量;imageIntent:可空对象]
字段校验:[长度、范围、允许枚举、唯一选项 ID]
内部字段:[如分值变化,仅服务端保存,不发给选择前的用户]
客户端可见字段:[文本、已绑定选项 ID、当前结果]
动作门槛:[权限、额度、冷却、请求去重]
无效输出策略:[最多重试次数、降级、用户提示]
固定样例表:输入|当前状态|预期字段/拒绝行为|实际输出|实际调用数
提示词与模型版本:
说明:这是待项目实现的契约模板,不是直接可运行的 SDK 代码。
易错点
- 把“AI 写过代码”当成运行时 AI 产品:先确认模型在什么时候被调用。
- 只凭榜单或供应商演示判断任务能力:自己的输入可能完全不同。
- 把“无需在自己数据库保存”写成“用户数据不被保存”:外部服务仍有自己的处理规则。
相关指南
- 怎样判断某个 AI API 真能做我的功能,而不只看演示?
- 功能已经跑通,怎样把它变成别人能顺利用的产品?
- AI 生成图片链接会过期,怎样保存文件并控制谁能看?
- 怎样让 AI 产品记住用户,又能纠正和忘记错误信息?
官方参考
- OWASP:LLM Prompt Injection Prevention — 核实提示词泄露、输出校验与执行权限边界;固定样例方法为整理建议 资料核查记录日期:2026-10-18。