跳转到正文

AI 应用架构模式完全指南 ​

"从 Demo 到生产的距离,比想象中更远——好的架构是成功的一半。"

AI 应用架构 是指设计和部署 AI 系统的技术模式与最佳实践。本指南涵盖生产级 LLM 应用的架构设计、部署策略、成本监控和可观测性。

2025 现状

将 AI 从实验推向生产需要在基础设施、算力、数据和人才方面进行大量投资。成熟的架构模式正在成为企业竞争优势。


一、AI 应用架构概述 ​

1.1 架构演进阶段 ​

阶段特点典型形态
Prototype快速验证、单体应用Jupyter Notebook + API
MVP基本功能、简单部署单服务+简单监控
Production高可用、可扩展微服务+完整运维
Enterprise多团队、治理合规平台化+MLOps/LLMOps

1.2 核心架构需求 ​

需求说明关键考量
可扩展性应对负载变化水平扩展、弹性伸缩
可靠性持续稳定服务容错、降级、重试
可观测性理解系统状态日志、指标、追踪
安全性保护数据和系统认证、加密、审计
成本效率控制运营成本资源优化、缓存
可维护性易于更新迭代模块化、版本控制

二、主流架构模式 ​

2.1 架构模式对比 ​

模式适用场景优势复杂度
API-Centric简单问答应用快速部署低
RAG 模式知识密集型应用准确可靠中
Agent 模式复杂任务自动化灵活强大高
Workflow 编排多步骤业务流程可控可审计中
微服务大规模企业应用独立扩展高
事件驱动实时处理场景解耦高效中

2.2 API-Centric 架构 ​

最简单的 LLM 应用架构:

用户请求 → API Gateway → LLM Service → LLM API → 响应
组件职责
API Gateway认证、限流、路由
LLM ServicePrompt 管理、上下文处理
LLM APIOpenAI/Claude/Gemini 等
缓存层减少重复调用

2.3 RAG 架构 ​

适合知识密集型应用:

组件职责技术选型
文档处理解析、分块Unstructured, Docling
向量数据库存储嵌入向量Pinecone, Qdrant, Weaviate
检索服务相似度搜索混合搜索、重排序
生成服务LLM 响应生成GPT / Claude / Gemini 各家旗舰
编排层流程控制LangChain, LlamaIndex

2.4 Agentic 架构 ​

适合自主任务执行:

组件职责类比
Agent Core(Model)推理、决策、规划🧠 大脑
Tool Registry工具注册和管理🖐️ 双手
Orchestration Layer管理操作循环、记忆、策略执行🔌 神经系统
Memory Store短期/长期记忆💾 记忆
Executor工具调用执行⚡ 肌肉
Deployment Services托管、监控、日志、管理🦵 身体与腿

Agent 部署与服务 ​

在本地构建 Agent 适合原型开发,但生产部署需要完整的服务支持:

服务类别说明技术选型
会话管理维护对话历史和状态Redis, PostgreSQL
记忆持久化跨会话持久存储向量数据库 + KV 存储
日志与追踪记录 Agent 决策轨迹OpenTelemetry, Langfuse
安全与合规数据隐私、数据驻留VPC, 加密
API 网关认证、限流、路由Kong, API Gateway

部署选项:

选项适用场景工具
托管平台快速部署、一站式Vertex AI Agent Engine
容器化控制度高、DevOps 集成Cloud Run, GKE, Docker
Serverless弹性扩展、按需计费Cloud Functions

Google 建议

对于初次部署,使用托管平台的 deploy 命令快速上线。生产就绪需要更大投入,包括 CI/CD 和自动化测试。

2.5 微服务架构 ​

企业级 AI 应用:

服务职责扩展策略
Gateway Service入口、认证水平扩展
Prompt Service提示词管理按需扩展
Embedding Service向量化GPU 弹性
Retrieval Service检索读副本扩展
Generation ServiceLLM 调用按模型分组
Orchestration Service流程编排事件驱动

三、生产部署策略 ​

3.1 部署模式 ​

模式说明适用场景
Serverless按需计算、自动扩缩流量波动大
ContainerDocker/K8s 部署标准企业环境
VM 部署虚拟机直接部署简单场景
边缘部署本地/边缘设备低延迟、隐私
混合部署云+边缘组合综合需求

3.2 部署策略 ​

策略说明风险级别
蓝绿部署两套环境切换低
金丝雀发布小流量验证低
滚动更新逐步替换实例中
A/B 测试对比不同版本效果低
影子模式生产流量复制测试低

3.3 部署检查清单 ​

阶段检查项
部署前安全扫描、性能测试、回滚计划
部署中健康检查、指标监控、告警就绪
部署后功能验证、性能基线、错误率监控

3.4 Kubernetes 部署示例 ​

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: llm-service
spec:
  replicas: 3
  selector:
    matchLabels:
      app: llm-service
  template:
    metadata:
      labels:
        app: llm-service
    spec:
      containers:
      - name: llm-service
        image: llm-service:v1.0
        resources:
          requests:
            memory: "1Gi"
            cpu: "500m"
          limits:
            memory: "2Gi"
            cpu: "1000m"
        env:
        - name: OPENAI_API_KEY
          valueFrom:
            secretKeyRef:
              name: llm-secrets
              key: openai-key
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
        readinessProbe:
          httpGet:
            path: /ready
            port: 8080

四、LLMOps 实践 ​

4.1 LLMOps vs MLOps ​

方面MLOpsLLMOps
模型来源自建训练调用 API + 微调
核心资产模型权重Prompt + Context
版本控制模型版本Prompt + 配置版本
评估方式精确指标人类评估 + 自动评估
关键挑战特征工程Prompt 工程、RAG 优化

4.2 LLMOps 核心组件 ​

组件职责推荐工具
Prompt 管理版本控制、A/B 测试Langfuse, PromptLayer
模型路由多模型调度LiteLLM, OpenRouter
评估系统自动化评估RAGAS, Braintrust
监控追踪可观测性LangSmith, Arize
成本管理用量分析自建 + 平台工具

4.3 Prompt 版本管理 ​

python
# Prompt 模板管理示例
class PromptManager:
    def __init__(self):
        self.prompts = {}
        self.versions = {}
    
    def register(self, name: str, template: str, version: str):
        """注册 Prompt 模板"""
        key = f"{name}:{version}"
        self.prompts[key] = template
        if name not in self.versions:
            self.versions[name] = []
        self.versions[name].append(version)
    
    def get(self, name: str, version: str = "latest") -> str:
        """获取 Prompt 模板"""
        if version == "latest":
            version = self.versions[name][-1]
        return self.prompts[f"{name}:{version}"]
    
    def rollback(self, name: str, version: str):
        """回滚到指定版本"""
        # 实现版本回滚逻辑
        pass

4.4 模型路由策略 ​

策略说明适用场景
成本优先优先使用便宜模型预算敏感
质量优先优先使用最强模型质量关键
智能路由根据任务复杂度选择平衡场景
负载均衡分散到多个提供商高可用
故障转移主模型失败时切换容错

五、可观测性 ​

5.1 LLM 可观测性三支柱 ​

支柱内容关键指标
日志Prompt、响应、元数据完整交互记录
指标延迟、吞吐量、成本性能和业务指标
追踪请求完整链路端到端调用链

5.2 关键监控指标 ​

类别指标告警阈值
延迟P50/P95/P99 响应时间P99 > 5s
可用性成功率< 99.5%
吞吐量QPS接近容量限制
Token 用量输入/输出 Token超预算
成本每请求成本环比增长 >20%
质量幻觉率、相关性低于基线

5.3 LLM 交互日志结构 ​

python
@dataclass
class LLMInteractionLog:
    # 请求信息
    request_id: str
    timestamp: datetime
    user_id: str
    session_id: str
    
    # 模型信息
    model: str
    model_version: str
    provider: str
    
    # 输入输出
    prompt: str
    prompt_template_id: str
    completion: str
    
    # 性能指标
    latency_ms: int
    input_tokens: int
    output_tokens: int
    total_tokens: int
    
    # 成本
    cost_usd: float
    
    # 质量指标(可选)
    user_feedback: Optional[int]
    auto_eval_score: Optional[float]

5.4 可观测性工具详细对比 ​

工具类型开源核心能力最佳场景
LangSmith专用 LLM❌深度 LangChain 集成、Agent 调试、Prompt PlaygroundLangChain 项目
Langfuse专用 LLM✅全链路追踪、成本追踪、自托管、OpenTelemetry需自托管、预算敏感
Arize Phoenix专用 LLM✅RAG 分析、漂移检测、Notebook 集成RAG 应用、ML 团队
Arize AX企业级❌Phoenix 企业版、SSO/RBAC、托管服务企业大规模部署
Braintrust专用 LLM❌评估、Prompt Playground、实验追踪评估驱动开发
Helicone专用 LLM✅代理模式、低侵入、成本分析快速集成
Datadog通用 APM❌企业级、全栈监控、LLM Observability 插件已有 Datadog 用户
Grafana通用监控✅灵活仪表盘、开源、可扩展自建监控体系

选择建议:

  • LangChain 项目 → LangSmith(最佳集成)
  • 需要自托管 → Langfuse(开源、可控)
  • RAG 重度应用 → Arize Phoenix(RAG 分析强)
  • 快速集成 → Helicone(代理模式无需改代码)

5.5 追踪集成示例 ​

python
from langfuse import Langfuse
from openai import OpenAI

langfuse = Langfuse()
client = OpenAI()

def generate_with_tracing(prompt: str, user_id: str):
    # 创建追踪
    trace = langfuse.trace(
        name="chat-generation",
        user_id=user_id,
        metadata={"source": "api"}
    )
    
    # 创建生成 span
    generation = trace.generation(
        name="openai-chat",
        model="gpt-5.6",
        input=prompt
    )
    
    try:
        response = client.chat.completions.create(
            model="gpt-5.6",
            messages=[{"role": "user", "content": prompt}]
        )
        
        output = response.choices[0].message.content
        
        # 记录输出
        generation.end(
            output=output,
            usage={
                "input": response.usage.prompt_tokens,
                "output": response.usage.completion_tokens
            }
        )
        
        return output
        
    except Exception as e:
        generation.end(status_message=str(e), level="ERROR")
        raise

六、成本监控与优化 ​

6.1 成本构成分析 ​

成本项占比(典型)优化空间
LLM API 调用40-60%高
Embedding API10-20%中
向量数据库10-15%中
计算资源15-25%中
存储5-10%低

6.2 成本优化策略详解 ​

策略类别策略节省幅度实施难度说明
Token 优化Prompt 精简20-40%低删除冗余词、用列表代替段落
Token 优化RAG 上下文裁剪50-70%中只传必要上下文
Token 优化输出长度限制10-30%低max_tokens 控制
模型选择智能路由50-80%中简单任务用小模型
模型选择模型量化30-50%(自托管)高8-bit/4-bit 量化
缓存语义缓存30-70%中相似查询复用
缓存Embedding 缓存40-60%低避免重复嵌入
批处理请求聚合15-25%低批量 API 调用
部署自托管50-80%高免 API 费用

6.3 缓存策略详解 ​

缓存类型原理适用场景节省幅度工具
精确匹配查询完全相同高重复查询100%(命中时)Redis
语义缓存Embedding 相似度匹配意图相似查询30-70%GPTCache, Redis+向量
KV 缓存存储 Transformer 中间状态长对话、连续生成20-40%vLLM 内置
Embedding 缓存缓存文档向量RAG 应用40-60%向量数据库
部分响应缓存缓存中间结果多步骤工作流10-30%自建

语义缓存实现示例:

python
import numpy as np
from openai import OpenAI
import redis

client = OpenAI()
cache = redis.Redis()

def semantic_cache_query(query: str, threshold: float = 0.92):
    """语义缓存查询"""
    # 1. 生成查询 embedding
    query_embedding = client.embeddings.create(
        model="text-embedding-3-small",
        input=query
    ).data[0].embedding
    
    # 2. 搜索相似缓存
    cached_items = cache.hgetall("semantic_cache")
    for key, value in cached_items.items():
        cached = json.loads(value)
        similarity = np.dot(query_embedding, cached["embedding"])
        if similarity >= threshold:
            return cached["response"], True  # 命中缓存
    
    # 3. 未命中,调用 LLM
    response = call_llm(query)
    
    # 4. 存入缓存
    cache.hset("semantic_cache", query, json.dumps({
        "embedding": query_embedding,
        "response": response
    }))
    
    return response, False

6.4 成本监控仪表盘 ​

指标维度告警条件
日成本总计/按模型/按用户超预算 20%
单请求成本按模型/按功能异常偏高
Token 效率输入/输出比比例异常
缓存命中率按缓存类型低于 30%
成本趋势周/月对比增长过快

七、高可用与容错 ​

7.1 高可用设计原则 ​

原则说明
冗余多实例、多区域部署
隔离故障域隔离
降级核心功能优先保障
限流保护后端服务
熔断快速失败、避免级联

7.2 容错策略 ​

策略说明实现方式
超时控制避免无限等待设置合理超时
重试机制处理瞬时故障指数退避
降级响应主服务不可用时缓存响应/简化模型
多提供商避免单点依赖OpenAI+Claude+Gemini
限流保护防止过载令牌桶/滑动窗口

7.3 降级方案示例 ​

python
class LLMService:
    def __init__(self):
        self.primary = OpenAI()
        self.fallback_models = ["gpt-5.6-terra", "gpt-5.6-luna"]
        self.cache = RedisCache()
    
    async def generate(self, prompt: str) -> str:
        # 1. 检查缓存
        cached = await self.cache.get(prompt)
        if cached:
            return cached
        
        # 2. 尝试主模型
        try:
            return await self._call_model("gpt-5.6", prompt)
        except Exception as e:
            logger.warning(f"Primary model failed: {e}")
        
        # 3. 尝试降级模型
        for model in self.fallback_models:
            try:
                return await self._call_model(model, prompt)
            except Exception as e:
                logger.warning(f"Fallback {model} failed: {e}")
        
        # 4. 最终降级
        return "抱歉,服务暂时不可用,请稍后重试。"

八、安全与合规 ​

8.1 生产安全检查清单 ​

类别检查项
认证授权API Key 加密存储、最小权限原则
数据安全传输加密、敏感数据脱敏
输入验证Prompt 注入防护、输入长度限制
输出过滤内容安全审核、PII 过滤
审计日志完整的操作记录
访问控制基于角色的权限管理

8.2 合规要求 ​

法规关键要求应对措施
GDPR数据保护、删除权数据最小化、审计
EU AI Act高风险 AI 合规风险评估、文档化
SOC 2安全控制控制实施、审计
HIPAA健康数据保护加密、访问控制

九、工具与平台 ​

9.1 LLMOps 平台详细对比 ​

平台开源核心功能特点适用场景
LangSmith❌追踪、Prompt、评估LangChain 深度集成、Agent 调试LangChain 项目
Langfuse✅追踪、成本、评估自托管、OpenTelemetry、50+ 集成开源优先团队
Arize Phoenix✅追踪、RAG 分析、漂移检测ML 监控背景、Notebook 友好RAG/ML 团队
Braintrust❌评估、实验、Prompt评估为核心、A/B 测试评估驱动开发
Weights & Biases❌实验追踪、评估ML 实验管理背景ML 团队
TrueFoundry❌端到端 LLMOps完整平台、多模型服务企业级
Dify✅低代码开发、RAG可视化构建、快速原型非技术团队
Helicone✅代理监控、成本无侵入集成快速接入

9.2 基础设施选型 ​

组件推荐选型备选方案
容器编排KubernetesDocker Compose
API 网关Kong, NginxAWS API Gateway
消息队列Redis, RabbitMQKafka
监控Prometheus + GrafanaDatadog
日志ELK StackLoki
追踪Jaeger, ZipkinDatadog APM

十、2025-2026 趋势 ​

趋势说明
平台化 LLMOps一站式 LLM 运维平台
AI 基础设施即代码声明式 AI 资源管理
智能成本优化AI 驱动的成本优化
边云协同云端+边缘混合部署
自动化评估LLM as Judge 评估
Agent 运维体系专门的 Agent 监控治理

核心建议

  1. 渐进式演进:从简单架构开始,按需复杂化
  2. 可观测性优先:第一天就部署完整监控
  3. 成本意识:持续监控和优化成本
  4. 安全内建:安全考量融入设计阶段
  5. 自动化运维:减少人工干预,提高效率

← 返回 AI 知识库