AI 应用系统设计

一、Prompt Demo与生产架构的差异

Demo链路:前端输入问题 -> 后端拼接Prompt -> 调用模型API -> 返回答案。

Demo仅能用于演示,存在6项生产能力缺失。

维度 Prompt Demo 生产级架构
稳定性 单模型、单调用,失败直接报错 多模型路由、重试、fallback、熔断、降级响应
权限 用户可查询全部内容 检索前权限过滤,工具调用按用户、租户鉴权
成本 仅关注调用能否成功 Token预算、模型分层、缓存、成本归因、限额管控
可观测 仅记录用户问题和最终答案 记录Prompt、检索片段、工具调用、模型输出、Token、延迟、错误信息
评测 人工测试少量样例 固定评测集、线上抽样、LLM‑as‑Judge、人工复核闭环
数据治理 文档直接入库,日志随意存储 PII脱敏、数据留存管控、审计、版本化、删除与授权链路

AI应用部分决策依赖概率模型,故障不一定对应某一行代码,错误来源包含Prompt版本、上下文顺序、检索噪声、工具描述、模型采样、权限过滤、输出解析。生产架构需要对输入、执行、输出、反馈做工程化,保证回答可追踪、可回放、可评测、可治理。

二、生产级AI应用分层架构

1.入口层

不只是简单Controller,职责:

1.认证鉴权,确认用户、租户、角色、数据范围。

2.请求标准化,将Web、App、API、Webhook、定时任务统一为内部任务模型。

3.限流防刷,按用户、租户、模型能力、业务场景限流。

4.幂等控制,异步任务、工具调用、支付类操作配置幂等键。

5.敏感内容预处理,PII脱敏、恶意输入检测、Prompt注入初筛。

输出结构化请求对象,不直接透传原始字符串。

2.业务编排层

决定单次请求执行逻辑:

1.判定任务类型:普通问答、RAG问答、Agent多步任务、批处理任务。

2.确定需要的上下文资源:历史会话、用户画像、知识库、实时业务数据。

3.管控工具调用权限,判定哪些工具需要二次确认。

4.选定交互模式:同步、流式、异步。

5.确定输出是否进入评测、人工审核、后处理流程。

规则类逻辑使用代码实现,仅将无法穷举的语言理解交给模型,避免全部逻辑写在Prompt内。

3.模型网关层

统一接入各类大模型、Embedding、Rerank模型,屏蔽不同厂商API差异。

核心能力:

1.多模型路由,依据场景、成本、延迟、语言、上下文长度、成功率选择模型。

2.fallback降级,主模型失败、超时、限额不足切换备用模型。

3.限流熔断,防止第三方供应商异常拖垮业务线程池。

4.Token预算,预估输入输出Token,超预算执行上下文压缩或者模型降级。

5.成本归因,按租户、用户、场景、Prompt版本统计成本。

6.统一观测,记录模型请求、响应、错误、TTFT、总延迟、Token使用量。

模型相关配置维护在配置中心或模型注册表,禁止硬编码进业务代码。

4.Prompt与上下文管理层

Prompt作为可版本化配置,禁止直接写死为代码字符串。

Prompt需要支持:模板版本管理、变量注入、灰度发布、快速回滚、变更审计、运行时绑定版本信息。Prompt变更需要可追踪,允许更高发布频率。

区分三类上下文,不可全部混杂:

类型 存储内容 生命周期 核心风险
RAG 企业文档、产品手册、制度、代码文档、工单知识 跟随知识库更新 检索缺失、越权召回、文档过期、引用错配
Memory 用户偏好、历史决策、长期画像、任务经验 跟随用户、会话演进 错误记忆固化、隐私泄露、过时记忆干扰
Tool 查询订单、创建工单、发邮件、改配置、查询数据库 运行时按需调用 参数错误、权限越界、敏感操作误执行

Memory写入需要异步执行,增加Schema校验、置信度过滤、过期策略、人工审核入口,不能当作个人RAG随意写入。

三、同步、流式、异步交互模式

模式 适用场景 优势 风险 后端设计要点
同步请求 短问答、分类、抽取、低延迟小任务 实现简单,调用链路清晰 对超时敏感,容易占满线程 设置短超时、快速失败、结果缓存
流式响应 聊天、长答案、代码生成、语音前置文本 首字体验好,用户等待感知低 中途失败处理复杂,前端状态逻辑多 SSE/WebSocket、TTFT监控、支持生成取消
异步任务 报告生成、批量评测、长文档分析、多工具任务 支持排队、重试、恢复 任务状态与通知链路复杂 任务表、队列、进度事件、幂等补偿逻辑

经验选择标准:3秒内稳定完成优先同步;用户需要即时看到输出优先流式;长文档、多工具、批量处理优先异步。不要为模仿ChatGPT将全部接口改为流式。

四、Prompt版本管理

核心5个对象:prompt_templateprompt_versionprompt_releaseprompt_runprompt_eval_result

表名 关键字段 作用
ai_prompt_template id、tenant_id、name、scene_code、type、status 管理Prompt逻辑名称
ai_prompt_version id、template_id、version_no、content、variables_schema、model_config、created_by、change_reason 保存可回放的Prompt内容
ai_prompt_release id、template_id、version_id、env、traffic_ratio、tenant_scope、status 管控灰度与回滚
ai_prompt_run id、request_id、version_id、variables_hash、input_tokens、output_tokens、created_at 关联线上请求和Prompt版本

两个避坑点:变量不能未清洗直接拼接;避免Prompt版本和代码版本脱节,依靠variables_schema做运行时校验。敏感内容不完整落库,只存储摘要、Hash、关联ID。

五、模型网关路由策略

策略 核心逻辑 适用场景 风险
固定模型 场景绑定单一模型 早期系统、低复杂度任务 成本、稳定性完全依赖单一供应商
成本优先路由 默认低成本模型,失败或低置信度升级模型 分类、摘要、轻量问答 低能力模型错误向下传导
质量优先路由 高价值请求优先高能力模型 法务、金融、医疗辅助、复杂Agent 成本高,需要预算管控
延迟优先路由 依据P95/P99延迟、可用区选择模型 实时聊天、语音、在线客服 可能降低复杂推理质量
多模型投票 多模型并行生成,评审器筛选结果 高风险内容、关键报告 成本、延迟均较高
fallback链 主模型故障切换备用模型 绝大多数生产系统 备用模型能力差异造成输出不一致

Token超预算降级顺序:删除低相关RAG片段 → 压缩早期历史消息 → 缩减工具Schema → 降低最大输出长度 → 切换长上下文模型 → 拒绝执行提示用户缩小范围。

六、工具调用与权限

核心原则:模型仅生成工具调用意图,实际执行必须经过系统校验。

工具调用6道流程:

1.工具注册:登记工具名称、描述、参数Schema、权限标签、风险等级。

2.工具检索:筛选当前任务相关工具,防止上下文膨胀。

3.参数校验:JSON Schema或者强类型对象校验参数。

4.权限校验:基于用户、租户、角色、资源ID做后端鉴权。

5.二次确认:删除、支付、消息发送、配置修改等高风险操作需要用户确认。

6.审计日志:记录模型建议、最终参数、执行人、执行结果、回滚信息。

风险等级枚举:READ_ONLY只读、WRITE_LOW_RISK低风险写、WRITE_HIGH_RISK高风险写。高风险调用转为待确认动作,禁止直接执行。不能依赖第三方服务的server‑side tool,业务侧仍要完成ACL、审计、确认流程。

七、RAG与Memory协作

单次请求标准协作顺序:

1.入口层确认用户身份与权限范围。

2.Memory服务检索用户偏好、长期事实。

3.RAG服务在租户、资源权限范围内检索共享知识库。

4.Context管理层对两类结果做去重、过滤、压缩。

5.编排层分区放置Memory(用户背景)、RAG(证据资料)。

6.模型输出区分资料事实与用户偏好表达方式。

上下文污染类型及防护:

污染类型 表现 防护手段
RAG噪声污染 检索无关文档误导模型 Hybrid Search、Rerank、Top‑N压缩、引用校验
权限污染 返回无权限文档片段 检索前ACL过滤,租户隔离,审计召回结果
Memory错误固化 临时用户表述被当作长期偏好 写入置信度、过期时间、用户可编辑、人工复核
新旧事实冲突 新旧版本资料同时进入上下文 版本字段、时间过滤、冲突检测
Prompt注入污染 文档包含忽略规则类指令 文档内容分区、指令优先级、注入检测

RAG、Memory结果不能拼接为统一文本,需要标注来源、时间、权限、可信度。

八、可观测与评测

Trace记录内容

分为八大类别:Prompt、检索、Memory、Tool、模型、延迟、成本、结果。完整记录每类对应的关键字段,用于问题排查。

评测指标

Context Recall、Context Precision、Faithfulness、Answer Relevancy、Tool Success Rate、Format Valid Rate、Cost per Success。

LLM‑as‑Judge仅适合大规模初筛、回归对比、线上抽样,关键业务必须人工复核。评测闭环链路:线上失败样本 → 加入数据集 → 固定版本回放 → 定位问题点 → 灰度新策略 → 指标对比 → 正式发布。缺少回放机制,优化只能依靠主观感受。

九、安全与合规

AI应用风险入口多于传统CRUD系统。

风险 说明 处理建议
PII泄露 日志、Prompt、评测集携带手机号、身份证、邮箱 入库脱敏,敏感字段加密,最小化留存
权限绕过 检索、工具调用绕过ACL校验 检索前过滤,工具执行前二次鉴权
Prompt注入 用户或者文档诱导模型忽略系统规则 内容分区、指令优先级、注入检测、拒答策略
数据留存失控 模型请求、观测日志保存时间过长 租户、场景维度配置留存周期
训练数据风险 用户敏感数据被用于微调、评测 明确授权、脱敏、数据隔离、支持删除
高风险动作误执行 模型触发删除、支付、消息发送工具 风险分级、二次确认、审计、补偿方案

安全策略不能仅依靠Prompt提示,权限过滤、脱敏、审计、确认流程必须由代码、基础设施强制执行。对接第三方模型需要管控数据边界,遵循最小数据发送原则,必要时脱敏摘要,配置留存周期并审计。

十、Java后端落地

模块拆分

模块 职责
ai‑api 对外REST/SSE/WebSocket接口,鉴权,协议适配
ai‑orchestrator 业务编排,交互模式选择,任务状态机
ai‑prompt Prompt模板、版本、灰度、渲染、回滚
ai‑context 上下文组装、Token预算、历史压缩、上下文分区
ai‑gateway 模型路由、fallback、限流、熔断、成本统计
ai‑rag 知识库检索、权限过滤、Rerank、引用管理
ai‑memory 用户记忆写入、检索、冲突处理、过期策略
ai‑tool 工具注册、参数校验、执行、二次确认、审计
ai‑eval 评测数据集、评测任务、LLM‑as‑Judge、人工反馈
ai‑observability Trace、指标、日志、成本、告警

核心数据表

ai_request_traceai_model_callai_context_itemai_rag_chunk_hitai_memory_itemai_tool_callai_eval_datasetai_eval_caseai_eval_runai_eval_result

注意事项:request_id全链路唯一;大字段不存入MySQL本体,业务表仅保存摘要、Hash、引用地址;业务表增加索引与归档策略,避免性能退化。

最小请求链路

Controller → RequestGuard鉴权、限流、脱敏 → Orchestrator选择同步/流式/异步 → ContextAssembler拉取RAG、Memory、历史会话 → PromptService渲染模板版本 → ModelGateway路由模型并记录Token → OutputParser校验结构化输出 → TraceService写入观测数据。

起步阶段优先实现ai‑api、ai‑prompt、ai‑gateway、ai‑rag、ai‑observability;Memory、Tool、Eval后续迭代补充;Trace、Prompt版本不能延后开发。

十一、要点回顾

1.Prompt Demo仅验证回答可行性;生产级架构目标实现长期可控输出。

2.模型网关是模型调用控制面,承担路由、fallback、限流熔断、Token预算、成本归因。

3.Prompt需要版本化,支持变量校验、灰度、回滚、审计。

4.RAG、Memory、Tool分开治理,共享知识、个性化记忆、业务操作不能混杂。

5.可观测、评测是持续优化基础,没有Trace、回放,优化只能依靠主观判断。

6.安全逻辑依靠代码强制实现,Prompt只能辅助,不能替代权限、脱敏、审计、二次确认。

十二、高频面试问题

1.Prompt Demo到生产系统最大差距:工程治理。Demo关注模型输出结果;生产系统关注稳定性、权限隔离、成本控制、可观测、评测回放、数据合规。

2.模型网关作用:屏蔽多供应商差异,实现模型路由、fallback、限流熔断、Token预算、成本统计观测,业务代码不耦合具体模型厂商。

3.交互模式选择:短任务同步;聊天长输出流式;报告生成、批量、多工具任务异步。依据任务耗时、首字反馈需求、重试恢复需求判断。

4.Prompt版本管理意义:Prompt会影响输出质量、工具调用、检索、成本;版本管理实现灰度、回滚、审计、离线评测回放。

5.Tool Calling安全边界:模型仅生成调用意图;参数校验、权限校验、敏感操作确认、审计全部由后端系统完成。

6.RAG和Memory区别:RAG存储所有人共享的企业知识;Memory存储单用户个性化偏好历史;二者分区注入上下文,防止上下文污染。

7.AI可观测指标:Prompt版本、检索命中情况、工具调用记录、模型输出、Token、TTFT、总延迟、成功率、错误率、评测分数、成本。

8.LLM‑as‑Judge局限:只能用于自动化回归、线上抽样初筛;关键业务必须搭配规则校验、人工复核、用户反馈闭环。

相关推荐
小淮AI1 小时前
国际教育课程的本土化探索:以枫叶教育三十年为观察样本
大数据·人工智能
城管不管1 小时前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
码匠许师傅1 小时前
【C++ 面试真题】26. 聊聊 C++ 的智能指针
java·c++·面试
又折桃枝换酒钱1 小时前
VisCoder2:构建多语言可视化编码智能体(翻译与解读)
人工智能·信息可视化
AI绘画哇哒哒1 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
Chengbei112 小时前
DSH渗透测试插件dsh-pentest全新升级!适配DeepSeek Harness,可视化探索链路,一键搭建轻量化AI渗透测试环境。
人工智能·web安全·网络安全·微信·小程序·系统安全·安全架构
QN1幻化引擎2 小时前
DalinX Phi 性能突破:跨层秩保持对齐与意识涌现度量的实证研究
人工智能·ai·架构·agi·asi
NeilCarmack2 小时前
Deepseek-harness增加桌面版端序列:第 1 讲 · 命令解析:`pnpm dsh desktop` 的第一步
人工智能·agent·ai agent
龙兵AI增长破局圈.赵老师讲成交2 小时前
只有把过程管好,结果才会出来。
大数据·人工智能·ai·创业创新