返回模板页

AI 应用架构图示例

以下示例展示了不同团队如何用相同的核心构建块(编排器、LLM、向量存储、工具)组装出不同类型的 AI 系统,帮助你理解各组件的组合方式并套用到自己的项目中。

AI 应用架构图示例

真实案例

企业内部文档问答系统(RAG)

使用场景: 构建内部知识库聊天机器人的 ML 工程师

摄入:SharePoint/Confluence → 分块(512 tokens)→ Embedding → Weaviate
查询路径:用户问题 → Embedding → 向量检索(Top-20)→ 重排序(Top-5)→ GPT-4
编排器:LangChain,对话历史存入 PostgreSQL
护栏:输入端 PII 检测,输出端引用来源校验
缓存:精确匹配 Redis + 语义相似度缓存
可观测性:Langfuse 追踪 LLM 调用,按部门统计成本

这样组织的原因: 企业级 RAG 需要完整的技术栈:护栏阻止敏感数据到达 LLM,重排序在大规模语料库中提升精度,按部门的成本追踪帮助证明基础设施投入的合理性。

带工具调用的代码助手

使用场景: 构建代码审查和生成助手的开发者工具初创公司

编排器:LlamaIndex ReAct Agent,支持多步推理
LLM:Claude 3.5 Sonnet 用于代码生成,小模型用于意图分类
工具:GitHub API、代码执行沙箱、Web 搜索
记忆:短期(当前 PR 上下文)+ 长期(用户偏好和历史评审)
向量数据库:代码库上下文检索的代码 Embedding
不使用重排序器——通过 AST 感知分块处理代码上下文检索

这样组织的原因: 代码助手适合用 ReAct Agent 循环,因为一次代码生成任务往往需要多次工具调用——获取文件、理解 Diff、查找相关测试——LLM 才能给出有用的响应。

在校生的学习助手

使用场景: 构建课程学习伴侣的 EdTech 创业团队或计算机专业学生

简单 RAG:课程大纲 + 讲义 → Embedding → ChromaDB
编排器:LangChain ConversationChain(无需 Agent 工具)
LLM:GPT-3.5-turbo(预算友好)
记忆:保留最近 10 条对话的滑动窗口
无重排序器、无护栏(单用户、可信语料库)
日志:简单文本文件,无需付费可观测平台

这样组织的原因: 学生项目不需要完整的企业级技术栈——展示精简版本有助于明确哪些组件是必须的(LLM、向量存储、编排器),哪些是可以后期添加的生产级关注点。

画好 AI 应用架构图的技巧

  • 先画用户请求路径(从左到右或从上到下),再在边缘添加横切关注点。
  • 将 RAG 管道和工具调用层分开绘制——即使都由编排器协调,它们的目的不同。
  • 将数据摄入管道画成单独的离线流程,与实时查询路径区分开来。
  • 将语义缓存画在用户和编排器之间,表明命中缓存时会短路 LLM 调用。

和相似工具的对比

RAG 流程 vs Agent 架构

RAG 是固定路径:先检索、再生成。Agent 架构存在循环——模型自己决定下一步调用哪个工具,而且可能调用很多次。这是图上最需要区分清楚的一点,因为「有循环」意味着成本和延迟不封顶,而固定流程不是。

AI 架构图 vs 传统系统架构图

传统组件是确定性的:同样输入得到同样输出。而 LLM 调用是概率性的,它的失败方式往往不是报错,而是「非常自信地给出错误结果」。所以 AI 架构图必须在传统图不会关注的位置画出校验、护栏和降级路径。

推理架构 vs 训练流水线

两者读者不同,不该画在一张图里。训练流水线涵盖数据采集、标注、微调、评测,偶尔运行一次;推理架构描述每个用户请求发生什么,持续在跑。混在一起会让人分不清哪些环节在延迟关键路径上。

单模型 vs 多模型路由

很多线上系统会把简单请求路由到小模型、困难请求交给大模型。如果实际有路由而图上只画一个 LLM 方框,读者对成本和延迟的估算会严重失真。请把路由器画成独立的判断节点,并标出路由依据。

常见误区

  • 把 LLM 画成一个不透明的黑盒

    一个写着「LLM」的方框,把决定系统行为的东西全藏住了:系统提示词、注入了哪些上下文、工具定义、输出解析。至少要把提示词拼装和响应校验拆出来——绝大多数 bug 实际就出在这两处,所以它们恰恰是图最该暴露的部分。

  • RAG 里漏掉 embedding 环节

    很多图直接画「查询 → 向量库 → 结果」,把 embedding 模型省了。但 embedding 模型在两个位置都是硬依赖:建索引时和查询时,而且两处必须用**同一个**模型。省掉它,就藏住了检索质量悄悄变差的最常见原因。

  • 不标 token 成本和延迟

    在 AI 系统里,成本和延迟是架构属性,不是实现细节——串行调用三次 LLM 的设计和只调一次的设计,是两个完全不同的产品。请在每个 LLM 环节标出大致的 token 成本和延迟,这样这张图才能支撑真正的设计决策。

  • 把向量库当成普通数据库画

    向量检索返回的是按相似度排序的近似最近邻,不是精确匹配。画得和 SQL 数据库一模一样,会暗示这是确定性查找,让读者期待系统给不出的保证。请在检索环节标注 top-k 和相似度阈值。

常见问题

AI 架构图至少要画哪些组件?+

对一个 LLM 应用来说:入口、提示词拼装(含注入了哪些上下文)、模型调用、输出校验,以及校验失败时的降级路径。如果加了检索,还需要 embedding 模型和向量库。这几块基本覆盖了线上故障实际发生的位置。

Agent 的循环怎么画才不会乱?+

把循环画一次,并明确标出退出条件——最大迭代次数,或者终止判断——而不是把几轮展开画成一长串。退出条件是评审最关心的部分,因为没有退出条件的 Agent 就是一个成本不设上限的风险。可用工具列在循环旁边,而不是塞进循环里面。

要不要标出具体用的哪个模型?+

标层级和理由,而不是只写一个几个月后就过期的版本号。「分类用小模型、最终回答用大模型」这种描述能跨越模型升级,还顺带解释了设计意图。精确版本号应该固定在配置里,而不是写在一张希望长期有效的图上。

护栏和安全检查应该画在哪?+

模型调用的前后都要有,而且两边检查的东西不同。输入侧处理提示词注入和不允许的请求;输出侧处理幻觉、格式校验和敏感内容泄漏。只画一侧是很常见的缺口,评审时一定会被问到。

缓存在 AI 流程里怎么表达?+

要区分层级,因为它们行为不同:精确匹配的响应缓存、按 embedding 相似度命中的语义缓存、以及模型服务方提供的 prompt 缓存。标清你指的是哪一种、以及什么情况下失效——语义缓存可能返回「相似但错误」的答案,这个风险精确缓存是没有的。

在线开始编辑

回到模板页,替换成你自己的内容,就可以继续使用这套结构。

使用这个模板: /editor/new?template=ai-pipeline

编辑此 AI 架构图模板