「Hi,在吗」发出第一千次之后——婚恋交友开场白生成,我先复盘我们做错的三版方案
目标读者
如果你是独立开发者或两三人的小团队,正打算给交友类 App 加一个「AI 帮你写开场白」的功能,这篇文章可以先帮你把三个最常见的坑绕过去。我们不谈理想架构,只谈实际踩过的坑和最后的落地路径。
业务痛点
交友应用里最讽刺的现象是:用户花半小时精心填写资料、筛选匹配,然后在聊天框前卡死。数据显示大量匹配关系止步于「你好」「在吗」「看到你喜欢旅行」这类开场白,对方不回复,匹配就废了。
运营侧的诉求很直接:
- 帮用户基于对方资料生成个性化、有回应欲望的第一句话;
- 建议语要贴合平台调性(真诚、不油腻、不骚扰);
- 每天可能有几万次生成请求,成本和稳定性都得可控;
- 小团队,没有人专职维护模型接入代码。
看起来就是个简单的 prompt 工程?我们第一版就是这么想的。
三次失败的反例
反例一:一个大 prompt 包打天下。 第一版把「读资料 + 生成开场白 + 安全审查 + 多语言」全塞进一个巨型 prompt。结果:偶尔冒出油腻土味情话被用户投诉,多语言输出质量参差,想修一处就得整个重调,越改越乱。教训:一个 prompt 承担多个职责,等于每次迭代都在回归测试全部功能。
反例二:每端各自接模型。 第二版 iOS、Android、后端各自直连模型 API,各自写重试、超时、密钥管理。供应商一次限流策略调整,三个端分别炸一次,排查要在三个代码库里找。教训:接入代码分散在 N 个端,维护成本就是 N 倍。
反例三:密钥下发到客户端。 为省一次后端转发,团队一度把 API Key 打进客户端。测试版被人扒出来拿去刷量,一周烧掉半个月预算。这一条不需要解释为什么是错的。
正确路径:管线拆分 + 统一网关
第三版我们做了两件事:把生成流程拆成职责单一的管线,把所有模型调用收敛到一个 AI API 网关后面。
架构设计
用户点击「帮我开场」
│
▼
┌─ 后端服务(唯一持有调用入口)──┐
│ ① 资料抽取:从对方资料提取 │
│ 3个可聊的兴趣锚点 │
│ ② 开场白生成:小参数模型, │
│ 低温、短输出 │
│ ③ 安全与调性过滤:规则+模型 │
│ 双重审查 │
│ ④ 失败降级:缓存通用模板兜底 │
└──────────┬───────────────────┘
▼
统一 AI API 网关(OpenAI 兼容协议)
├── 密钥集中管理,客户端零暴露
├── 多供应商路由与自动切换
├── 用量统计与预算告警
└── 响应缓存(相似资料命中直接返回)为什么统一网关能降低维护成本
这是小团队最容易被忽略的一点。直连模型时,你要在每个调用方处理:密钥轮换、限流退避、超时重试、账单分摊、供应商故障切换。这些代码和业务毫无关系,却要跟着每个端、每家供应商重复写。收敛到网关后:
- 接入代码只写一次——所有端走同一套 OpenAI 兼容协议,换供应商不改业务代码;
- 密钥只存在网关,客户端泄露风险归零,轮换在一处完成;
- 用量和成本在一个面板看,哪个功能烧钱一目了然,预算告警不用再等月底账单;
- 供应商抖动由网关自动切换,你的服务里不需要为「模型 A 限流了怎么办」写任何逻辑。
对三个人的团队来说,这不是优化,是省掉半个运维岗位。
关键实现步骤
- 定义管线接口:三个独立函数
extract_anchors/generate_opener/safety_check,各自独立 prompt、独立测试用例; - 开场白生成 prompt 收敛:只做一件事,输入锚点和用户人设,输出两三条不超过 40 字的候选;
- 加缓存:兴趣锚点组合做 key,命中率足够高时,成本可降一大截;
- 降级链路:网关调用失败 → 本地模板库 → 绝不让用户看到报错;
- 灰度与反馈闭环:上线后收集「开场白发出后是否获得回复」作为核心指标,而不是生成成功率。
一个精简后的生成 prompt 骨架:
你是社交开场白助手。基于对方资料中的兴趣锚点生成开场白。
规则:
- 不超过40字,以开放式问题或轻观点结尾
- 禁止外貌评价、禁止暧昧暗示、禁止群发感
- 语气参考用户自己资料的语言风格
对方锚点:{anchors}
用户风格示例:{user_bio_excerpt}
输出:3条候选,JSON数组格式结果与建议
管线拆分后,调性问题的修复只动第③步,两周内用户「获得回复率」就有了可感知的提升;网关接入后,供应商一次故障我们零感知,月底成本报表也不用再手工拼。如果你也准备动手,建议先画好管线、再选网关,顺序反了就会重走我们第一、二版的老路。
想快速接入统一 AI API 网关,可以看看这个,注册即用,OpenAI 兼容协议,密钥管理和预算告警开箱即有:https://api.thistoken.ai/register
---
不想折腾多家供应商的接入差异?在 https://api.thistoken.ai/register 注册,用一个 base_url 调用所有模型。