一、先说背景:联网搜索的局限
为这个问题做了多轮联网搜索(中英文都试过),但当前搜索后端对技术类查询基本失效——中文长句返回的是”磁力链接/迅雷下载/传奇私服”,英文单词返回的是词典条目或学术期刊页。唯一抓到一篇真实可用的文章是腾讯云开发者社区的《一文搞懂大模型》,它确认了几个基础事实:
- 问答系统(一问一答)是几乎所有 LLM 应用的核心交互形态;
- 交互形式分 API、Web 页面对话、App 交互 三类(国内各家都同时提供这三种);
- token 收费贵,主要贵在每次请求都要在 GPU 上跑复杂运算的运行时成本,不只是训练成本;
- 有”在线模型”(调 API)和”离线模型”(自己部署)两条路。
其余架构细节用领域知识补全,会标注清楚哪些是行业通用做法、哪些是关键决策点。
二、这类 App 的典型架构
一句话概括:和传统 Web 应用共享同一个”前后端 + 数据库”的骨架,但中间多了一条”流式推理管线”,并且几乎所有设计决策都围绕”LLM 推理又慢又贵、且是逐 token 吐字”这个事实展开。
分层来看(从上到下):
1. 客户端层(App / Web / 桌面端)
- 桌面端常用 Tauri/Electron 包壳;移动端原生或跨端框架;Web 端主流是 React/Next.js。
- 聊天产品形态:消息流(像 IM)、Markdown/代码块渲染、LaTeX 公式渲染、流式打字光标、停止生成按钮、多轮会话切换、上下文编辑。
- 富文本渲染是这类前端的核心难点之一:AI 输出是混合 Markdown + 代码 + 公式的流式文本,要在”边收边渲染”的同时保证不闪烁、代码块高亮完整、表格不抖动。这块比传统网站”渲染服务端给定的 HTML”复杂得多。
2. 接入/网关层(API Gateway)
- 鉴权(OAuth / API Key)、限流、配额管理(免费用户多少次/天、Plus 多少次/3小时)、计费埋点。
- 负载均衡、灰度发布、A/B 测试(不同用户路由到不同模型版本)。
- 这一层和传统 Web 网关几乎一样,差别只是多了”按 token 计费”和”按模型路由”。
3. 业务编排层(Application / Backend BFF)
- 会话管理:维护多轮对话历史、上下文截断/压缩(超长上下文要做摘要、滑窗、检索增强)。
- 插件/工具调度(function calling / tool use)、联网搜索、代码解释器、文件解析。
- 安全与内容审核:输入/输出的敏感词过滤、越狱检测、PII 脱敏、安全护栏。
- 这层是传统网站里”业务逻辑层”的升级版——多了”对话状态机 + 工具编排 + 上下文工程”。
4. 推理服务层(Inference Serving)—— 这层是最大区别
- 推理引擎:vLLM、SGLang、TensorRT-LLM、LMDeploy 等,做 PagedAttention / KV cache 复用 / continuous batching,把 GPU 吞吐拉满。
- 模型服务化:把模型包成 OpenAI 兼容的 HTTP API(
/v1/chat/completions),支持流式。 - 这层是传统网站完全没有的。传统网站后端是”查数据库返回结果”,这里是”把 prompt 喂进 GPU,逐 token 吐出来”,延迟从几十毫秒变成几秒到几十秒。
5. 存储层
- 对话历史:向量数据库(Milvus/Pinecone/pgvector)做语义检索(RAG),结构化库(PostgreSQL/MySQL)存会话元数据。
- 知识库:文档切片 → embedding → 向量库,支持上传文件问答。
- 缓存:对相同/相似 prompt 做语义缓存,省 token 钱。
- 传统网站主要存”业务数据”(订单、用户);这里多了”向量 + 对话历史”这两类新存储。
6. 模型训练/微调层(不一定每家都做)
- 预训练(极少公司做,烧钱)、SFT 监督微调、RLHF/DPO 对齐、领域微调。
- 这层是研究/算法团队的事,和”App 开发”关系不大,但决定了产品能力的上限。
三、开发流程(和传统网站的对比)
| 阶段 | 传统网站 | AI 聊天 App |
|---|---|---|
| 需求/原型 | 页面、表单、流程图 | 对话流、Prompt 设计、角色设定 |
| 后端开发 | CRUD + 业务逻辑 | 编排层 + 推理服务对接 + 流式接口 |
| 前端开发 | 页面、组件、表单校验 | 流式渲染引擎、Markdown/代码/公式渲染、打字效果 |
| 数据层 | 关系库设计 | + 向量库、embedding 流水线、RAG 检索 |
| 测试 | 功能/接口/压测 | + Prompt 评测、回归集、幻觉率、安全越狱测试、模型输出非确定性 |
| 部署 | Web 服务器 + DB | + GPU 集群、推理服务、模型权重分发 |
| 运维 | 服务可用性、慢查询 | + GPU 利用率、token 成本、首 token 延迟(TTFT)、生成吞吐 |
| 迭代 | 代码发布 | + Prompt 迭代、模型版本切换、A/B 不同模型 |
四、与传统网站开发的核心异同
相同点
- 都是前后端分离 + API + 数据库的整体骨架;
- 都要鉴权、限流、CORS、HTTPS、日志监控、CI/CD;
- 前端都用 React/Vue 类框架,后端都用 Python/Go/Node;
- 都要过 nginx、CDN、负载均衡这套基础设施。
关键差异点(这才是重点)
-
流式响应是头等公民,而非可选 传统网站是”请求→等后端算完→返回完整响应”;AI App 几乎必须 SSE(Server-Sent Events)流式逐 token 返回,否则用户要干等十几秒。这改变了前后端契约:不能用普通
fetch().json(),要用ReadableStream/ EventSource,还要处理”中途取消""断线重连""渲染一半代码块”。WebSocket 反而用得少(SSE 单向更轻、HTTP 基础设施友好),多模态实时语音才用 WS。 -
后端瓶颈从”I/O + DB”变成”GPU 推理算力” 传统网站调优是 SQL、索引、缓存;AI App 调优是 batch 调度、KV cache 命中率、GPU 显存、首 token 延迟。扩容方式也不一样——DB 是加从库,推理是加 GPU 卡。
-
输出是非确定性的,测试范式变了 传统网站 assert “返回值 == 期望”;AI 输出每次可能不同,要用评测集 + 评分模型(LLM-as-judge) + 通过率指标,回归测试靠抽样打分而非精确比对。
-
成本模型不同:按 token 计费/计成本 传统网站每请求成本近乎 0(CPU/带宽);AI App 每次请求都有 GPU 算力成本,要做配额、限速、语义缓存、prompt 压缩。成本是产品设计的一部分(免费额度、Plus 订阅、按量付费)。
-
上下文工程取代了”状态管理” 传统网站管”用户会话登录态”;AI App 要管多轮对话历史、上下文截断、记忆压缩、RAG 检索注入,还要处理超长上下文的 token 预算。
-
新增一整条”模型/算法”流水线 传统网站没有”模型版本”;AI App 要管模型权重版本、灰度切换、回滚、A/B 不同模型、微调数据。这是纯新增的工程领域。
-
安全重点不同 传统网站防 SQL 注入、XSS、CSRF;AI App 在此之上还要防越狱(jailbreak)、prompt 注入、敏感内容生成、数据投毒、PII 泄露到训练数据。输出侧的内容审核比传统网站重得多。
-
多模态是增量复杂度 图像生成、语音对话、视频——每种模态都有独立的模型服务和流式协议(音频要低延迟双向流),传统网站不涉及。
五、一个最小可行的技术栈参考
- 前端:Next.js + 一个流式 Markdown 渲染器(react-markdown + shiki/highlight.js + KaTeX)
- 后端编排:Python(FastAPI) 或 Node,SSE 推流
- 推理:直接调 OpenAI/通义/豆包 API 起步;自部署用 vLLM
- 存储:PostgreSQL(会话)+ pgvector(向量/RAG)
- 基础设施:nginx、Redis(限流/缓存)、Grafana 看 token 成本和 TTFT
国内千问、豆包、文心一言走的也是这套分层,区别只在它们自己训了模型 + 自建 GPU 推理集群,而小型产品多是”套壳调大厂 API + 做编排和前端体验”。
一句话总结:骨架(前后端 + 网关 + DB)和传统网站几乎一样,但中间插了一条”流式推理管线”,把后端瓶颈从数据库 I/O 变成 GPU 算力、把测试从精确断言变成评测打分、把成本从接近零变成按 token 计费、把安全从注入防护变成越狱/内容审核——流式 + 推理 + 上下文工程 + 评测这四件事是 AI App 区别于传统网站的本质。
六、移动端 App 的独立门道
移动端相对 Web 有不少独立门道,尤其”端侧推理”这块这两年变化很快。下面略过前面已讲过的通用内容(前后端骨架、网关、流式基本原理),只讲移动端特有的门道。
1. 路线选择问题
传统网站没有这个问题,AI App 移动端要先定调:
| 路线 | 模型在哪跑 | 代表 | 适合 |
|---|---|---|---|
| 纯云端推理 | 模型在服务器,App 只做 UI + SSE 收流 | ChatGPT、豆包、通义、文心 App | 大模型、强能力、联网 |
| 端云协同 | 简单任务端侧、复杂任务上云 | Apple Intelligence、新版 Siri、Pixel | 隐私/低延迟/离线场景 |
| 纯端侧推理 | 模型跑在手机本地 | MLC/llama.cpp 社区 App、离线助手 | 隐私刚需、离线、轻量任务 |
国内几大厂 App(豆包/通义/文心)几乎都是纯云端——模型太大、靠云 API 商业化、端侧成本不划算。端侧推理更多是系统级能力(Apple/Google)和第三方/社区在做。这条路线选择会直接决定后面整条工程链路。
2. 端侧推理(移动端独有重点)
这是移动端相对 Web 最不一样的部分。主流端侧推理框架:
| 框架 | 出品 | 特点 |
|---|---|---|
| MLC-LLM | MLC AI | 编译到 Metal/Vulkan/OpenCL,iPhone/Android/Web 都能跑 Llama/Phi/Gemma,社区最活跃 |
| llama.cpp | 社区 | C/C++ 底座,iOS 走 Metal、Android 走 OpenCL/Vulkan,很多第三方 App 底层就是它 |
| ExecuTorch | Meta(PyTorch Edge) | 针 ARM CPU 优化,跑 Llama 系列,和 PyTorch 训练侧无缝 |
| MediaPipe LLM | 跨平台(Android/iOS/Web)统一运行时,支持 Gemma/Llama/Phi | |
| Qualcomm AI Hub | 高通 | 直跑骁龙 NPU/GPU/DSP |
| ONNX Runtime Mobile | 微软 | 跨平台,偏通用 |
系统级原生能力(更值得关注,因为不依赖用户下载模型):
- Apple Intelligence(iOS 18.2+):系统内置约 3B 模型本地跑,重型任务走 Private Cloud Compute(Apple Silicon 服务器、端到端加密、不留存请求)。需要 A17 Pro / M1+ 起。
- Apple Foundation Models framework(WWDC 2025 / iOS 26):第三方 App 可免费调那个端侧 ~3B 模型,纯本地、无需 API Key,支持工具调用和约束生成(guided decoding),A17 Pro 上约 30–40 tok/s。这是端侧从”系统自用”到”开发者可用”的关键转变。
- Gemini Nano(Android):Google 端侧模型,跑在 Pixel 8 Pro+ 及部分三星机型,经 AICore 下发;开发者通过 ML Kit 的 Generative API 调用,按机型功耗分档。
端侧的核心约束(决定能跑多大模型):
- 内存:iPhone 4–8GB、安卓 6–12GB,系统 + 你 App + 模型 + 对话历史全挤在一起。所以端侧模型基本是 1.8B–3B,4-bit 量化后约 1.5–2GB,7B 在中低端机就会 OOM。
- 量化:GGUF 的 Q4_K_M / int4 是主流,精度换内存和速度。
- 下发策略:模型几 GB,不能塞进 App 包(App Store 单包有上限),要首次启动按需下载、做断点续传、做机型适配(低端机不下发或不启用)。
3. 移动端工程难点(云端路线也躲不掉)
流式渲染在原生 UI 里比 Web 难得多:
- iOS:
URLSession没有 SSE,要用 data task +dataTask(with:didReceiveData:)委托手动按块拼、按\n\n切事件;或用 Starscream/EventSource 三方库。 - Android:OkHttp 对 SSE 支持较好,可配合 Retrofit。
- 真正难的是边收边渲染:Markdown/代码块/LaTeX 在原生 UI(
UITextView/TextKit、JetpackCompose的AnnotatedString)里渲染本就比 Web 的react-markdown麻烦,还要在 token 不断追加时不重排抖动、代码块高亮完整、表格不跳。很多 App 干脆用 WebView 内嵌一个富文本渲染页来绕过——这是个务实但被吐槽的方案。
后台与进程生命周期(移动端相对 Web 最致命的差异):
- iOS 后台约 30s 到几分钟就被挂起/杀掉,长生成期间 App 一进后台,SSE 连接就断。
- 解法有限且都别扭:前台时
idleTimerDisabled保屏常亮;用BGTaskScheduler做有限后台任务;或靠推送通知唤醒。没有”开个后台线程慢慢跑”这种 Web 式的自由。 - 网络切换(Wi-Fi↔蜂窝)也会掐断流式连接,要做断点续传 + 已生成内容的本地缓存与续写。
发热与降频:
- 长时间流式(尤其再叠加端侧推理)会让设备发烫 → CPU/GPU 降频 → token 变慢。iOS 有 thermal state API 可监测,热到一定程度要主动降级(如关掉端侧推理、降流式速率)。
- Web 不存在这个问题(算力在服务器)。
内存与闪退:
- 长对话历史 + 富文本渲染 + 可能的端侧模型同抢内存,低端机 OOM 闪退是高频 bug。要做:对话历史分页/懒加载、渲染层虚拟列表、文本节点复用、及时释放离屏内容。
弱网与移动网络特征:
- 蜂窝高延迟 + 抖动,SSE 比 Web 场景更易断流;要做指数退避重连 + 已生成内容对账(断在哪、续多少)。
- 首字延迟(TTFT)在弱网下被放大,要做打字占位符/骨架态安抚用户。
4. 客户端技术选型
| 方案 | 优点 | 代价 |
|---|---|---|
| 原生 Swift/Kotlin | 性能/内存最好、能接端侧推理框架、原生富文本体验最佳 | 两套代码、成本高 |
| Flutter / React Native | 一套代码两端、富文本生态尚可 | RN 对流式长文本性能要调优;接端侧推理要写原生桥接 |
| WebView 壳(Capacitor/Tauri Mobile) | 直接复用 Web 流式渲染,最快上线 | 性能/体验受限,难做端侧推理和系统级集成 |
产品形态偏轻(纯云端对话)→ 跨端/壳性价比高;要做端侧推理或深度系统集成(Apple Intelligence 扩展、系统级快捷指令)→ 倾向原生。
5. 多模态与语音在移动端的特殊性
- 语音对话:实时双向音频流要用 WebSocket(不是 SSE),要求低延迟,端侧跑 Whisper 类模型做 STT。移动端麦克风/扬声器权限、后台音频会话、蓝牙耳机切换都是坑。
- 拍照/相册问答:图片上传要压缩、EXIF 方向校正、分片续传;iOS/Android 相册权限流程不同。
- 实时屏幕理解 / 助手:需要屏幕录制权限(iOS ReplayKit、Android MediaProjection),合规和电量都是挑战。
6. 分发与合规(Web 没有的环节)
- App Store / Google Play 审核:AI 生成内容类 App 是重点审查对象——要有内容过滤、举报通道、用户协议,否则被拒;UGC(用户自建 bot/提示词)还要按 UGC 策略审核。
- 按地区合规:端侧推理模型权重在某些地区有出口管制(例如美国 OFAC 模型清单),云端服务要按地区做模型路由。
- 隐私:端侧推理的卖点是”数据不出设备”,但 App 仍要声明是否会把对话上传;Apple ATT/Android 隐私沙箱对广告归因和跨 App 数据都有限制。
7. 与传统移动 App 开发的异同(聚焦差异)
| 维度 | 传统移动 App(电商/社交/工具) | AI 聊天 App |
|---|---|---|
| 主交互 | 列表/表单/详情页 | 对话流 + 富文本流式渲染 |
| 网络模型 | 请求-响应(等返回) | SSE 流式为主,处理断流/续写 |
| 后台行为 | 后台可静默拉数据/推送 | 长生成被后台杀,体验设计受限 |
| 算力瓶颈 | 服务器 DB/带宽 | 云端 GPU 或端侧 NPU/内存 |
| 包体积 | 资源/图片 | + 可能几 GB 的端侧模型权重(按需下载) |
| 离线能力 | 缓存数据即可离线看 | 离线 = 端侧推理,工程量陡增 |
| 测试 | 精确断言 | + Prompt 评测集、模型回归、幻觉率 |
| 合规 | 数据隐私 | + AIGC 审核、模型出口管制、UGC 审查 |
| 发热/电量 | 一般不显著 | 长流式/端侧推理显著,要降级策略 |
8. 最小可行移动端技术栈(云端起步)
- 客户端:Flutter 或 React Native(纯云端对话够用)+ 一个流式 Markdown 渲染组件(Flutter 的
flutter_markdown+ 自定义 SSE 客户端) - 网络:Dio(http)/OkHttp 的 SSE 拦截器,带断线重连与已生成内容对账
- 后端:FastAPI + SSE 推流 + OpenAI 兼容协议(
/v1/chat/completions) - 要做端侧时:iOS 走 Apple Foundation Models(最省事、免下发权重);跨端通用走 MLC-LLM 或 llama.cpp,配 4-bit 量化的 1.8B–3B 模型
- 监控:TTFT、流式中断率、内存峰值、机型分布、OOM 率
一句话总结移动端:相比 Web 版,移动端的本质新增项是——进程生命周期受限(后台被杀)+ 富文本流式在原生 UI 里更难 + 弱网断流处理 + 发热降频 + 端侧推理这条独立技术线(内存/量化/权重下发)+ App 分发与 AIGC 合规。其中端侧推理(尤其 Apple Foundation Models / Gemini Nano 这类系统级能力开放给开发者)是这两年变化最快的部分,也是移动端相对 Web 最独有的工程价值所在。