第九章 平台级 AI 支撑架构
AI 能力进入产品矩阵后,很容易从“一个接口调用”变成“不可控的成本和风险来源”。平台级 AI 架构要解决的不只是调用模型,还包括模板版本、知识检索、异步任务、租户配额、内容安全、成本计量和人工复核。
一个成熟 AI 支撑层应像支付中心一样被治理:谁调用、调用了什么、花了多少钱、生成了什么、是否可追溯,都要清楚。
9.1 AI 微服务封装
AI 服务建议独立为平台服务,业务模块通过统一接口调用。
graph TD
A[Business Service] --> B[AI Gateway]
B --> C[Prompt Service]
B --> D[Model Router]
B --> E[Safety Guard]
B --> F[Usage Meter]
D --> G[OpenAI / Claude / Local Model]
B --> H[Task Queue]
统一封装的好处:
| 能力 | 价值 |
|---|---|
| 模型切换 | 不影响业务模块 |
| 成本统计 | 可按租户计费 |
| 安全策略 | 输入输出统一治理 |
| 失败重试 | 长任务可恢复 |
| 缓存 | 避免重复生成 |
9.2 Prompt 模板系统
Prompt 不应该散落在业务代码里。它应像配置和代码一样有版本。
模板字段:
| 字段 | 说明 |
|---|---|
template_id | 模板标识 |
version | 版本号 |
variables | 允许传入的变量 |
model_policy | 推荐模型和参数 |
safety_level | 安全等级 |
owner | 负责人 |
一次 Prompt 变更要能灰度。比如只对某个租户启用新版客服回复模板,观察满意度和人工接管率后再扩大。
9.3 模型适配层
模型适配层要屏蔽不同供应商 API 差异。
统一接口可以表达为:
type ModelClient interface {
Chat(ctx context.Context, req ChatRequest) (*ChatResponse, error)
Embed(ctx context.Context, req EmbedRequest) (*EmbedResponse, error)
}
模型选择策略:
| 任务 | 推荐策略 |
|---|---|
| 客服问答 | 低延迟、成本可控 |
| 合同分析 | 长上下文、准确性优先 |
| 内容生成 | 创造性和安全平衡 |
| 向量检索 | 统一 embedding 模型 |
| 批量摘要 | 异步、低成本模型 |
不要让业务代码直接写供应商名称。应通过任务类型、租户配置和成本策略来路由。
9.4 向量检索服务
向量检索适合解决“语义相关”的问题,但不是万能数据库。
典型链路:
文档上传 -> 切分 chunk -> 生成 embedding -> 写入向量库
用户问题 -> 生成 query embedding -> 检索 TopK -> 重排序 -> 拼接上下文 -> 调用模型
切分策略很重要:
| 内容 | 建议 |
|---|---|
| FAQ | 一问一答为 chunk |
| 长文档 | 按标题和段落切分 |
| 代码文档 | 按函数、类、章节切分 |
| 合同 | 按条款切分 |
向量库可以选择 PgVector、Milvus、Qdrant 等。早期如果数据量不大,PgVector 更容易运维。
9.5 RAG 与数据增强
RAG 的关键不是“检索 + 生成”,而是让模型知道哪些内容可信、哪些内容只是参考。
上下文建议包含:
- 文档片段;
- 来源链接;
- 更新时间;
- 租户和权限信息;
- 置信度。
回答输出应保留引用信息,尤其是知识库问答、内部政策、财务说明等高风险场景。
9.6 AIGC 输出管理
平台要防止三类问题:
| 问题 | 表现 | 防护 |
|---|---|---|
| Prompt 注入 | 用户要求模型忽略系统规则 | 输入过滤、上下文隔离 |
| 滥用生成 | 批量生成垃圾内容 | 配额、频率限制、审核 |
| 重复生成 | 同一请求反复消耗成本 | 幂等 key、结果缓存 |
高风险任务应进入人工复核,例如医疗建议、金融建议、法律文本、公开发布内容。
9.7 与产品矩阵融合
AI 不应只是一个“生成按钮”。它可以嵌入不同业务域:
| 产品域 | AI 能力 |
|---|---|
| 内容域 | 标题建议、摘要、标签、审核 |
| 电商域 | 商品描述、客服回复、评价总结 |
| 工具域 | OCR、表格理解、文档问答 |
| 分析域 | 数据洞察、异常解释 |
| 推广域 | 广告文案、受众分群 |
| 客服域 | 知识库问答、工单摘要 |
每个融合点都要记录输入、输出、模型、模板版本和人工修改结果。这些数据会反过来优化 Prompt 和产品体验。
9.8 AI 成本与计费
AI 成本必须可见,否则很容易被几个租户打穿预算。
记录维度:
| 维度 | 示例 |
|---|---|
| 租户 | 哪个客户产生费用 |
| App | 哪个产品使用 |
| 功能 | 摘要、问答、生成 |
| 模型 | 使用了哪个模型 |
| Token | 输入、输出、总量 |
| 结果 | 成功、失败、重试 |
套餐可以按“次数 + token + 高级模型额度”组合计费。
9.9 AI 支撑架构清单
| 检查项 | 标准 |
|---|---|
| 调用入口 | 业务不直连模型供应商 |
| Prompt | 模板版本化、可灰度、可回滚 |
| 检索 | 向量库按租户隔离 |
| 安全 | 输入输出有治理策略 |
| 成本 | token 和调用量可按租户统计 |
| 审计 | 关键输出可追溯 |
| 产品融合 | AI 能力沉淀为平台服务 |
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。