Skip to content

第1章 LLM 基础认知与 LLMOps 架构设计

试了6种AI应用开发方式,我靠LLMOps平台把交付效率翻了8倍。

我是怕浪猫,这个系列我们干一件大事——从零搭建一个完整的LLMOps平台。不是Demo,不是玩具,是能跑在生产环境的商业级AI应用平台。第1章先把地基打好:搞懂LLM到底是怎么回事,以及我们这个平台要怎么设计。


1.1 大语言模型(LLM)快速认知与应用场景

什么是LLM

大语言模型(Large Language Model)就是用海量文本训练出来的神经网络,它能在给定前文的情况下预测下一个token。听起来简单,但这个"预测下一个token"的能力,催生出了对话、写作、编程、推理等一系列应用。

LLM的三代演进

代际代表模型核心能力典型应用
第一代GPT-1/2文本续写写作辅助
第二代GPT-3In-context Learning问答、翻译
第三代GPT-4/Claude推理+多模态Agent、代码生成

LLM的核心能力矩阵

  1. 文本生成:写文章、写代码、写邮件
  2. 文本理解:摘要、分类、情感分析
  3. 推理能力:逻辑推理、数学计算
  4. 对话能力:多轮对话、上下文理解
  5. 指令遵循:按格式输出、遵循规则

LLM不是百科全书,它是"最会猜下一个词"的模型。理解了这一点,你就理解了它为什么会产生幻觉——因为它在"猜",不是在"查"。

LLM的典型应用场景

场景输入输出商业价值
智能客服用户问题标准回答降低人力成本
内容创作主题/大纲文章/文案提升创作效率
代码辅助需求描述代码实现加速开发
数据分析数据集分析报告辅助决策
知识问答领域问题专业回答知识管理

1.2 LLM 如何影响软件构建与交互方式

传统软件 vs LLM驱动的软件

维度传统软件LLM驱动软件
交互方式按钮/表单/菜单自然语言对话
逻辑实现硬编码规则模型推理
扩展性加功能=加代码加功能=加Prompt
边界处理try-catch兜底模型自行处理
个性化基于用户画像基于对话上下文

LLM对软件架构的影响

  1. 从确定到概率:传统软件输入确定、输出确定;LLM应用输入确定、输出概率性
  2. 从流程到意图:用户不再需要知道操作流程,只需要表达意图
  3. 从硬编码到编排:业务逻辑从代码层移到Prompt层
  4. 从同步到流式:LLM生成是token-by-token,需要流式响应

新的开发范式

传统开发:需求 → 设计 → 编码 → 测试 → 部署
LLM开发:需求 → Prompt设计 → 链式编排 → 评估 → 部署

关键区别:你不再写业务逻辑,而是教AI怎么执行业务逻辑。

开发LLM应用,你写的不是代码逻辑,而是"让AI理解你意图"的桥梁。Prompt工程就是这座桥的设计图纸。


1.3 LLM 与 Agent 应用的交互方式及常见术语

三种交互模式

  1. 单次问答(Completion)
python
from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "什么是LLMOps?"}]
)
print(response.choices[0].message.content)
  1. 多轮对话(Chat)
python
messages = [
    {"role": "system", "content": "你是一个Python专家"},
    {"role": "user", "content": "怎么读取CSV文件?"},
    {"role": "assistant", "content": "可以用pandas..."},
    {"role": "user", "content": "如果文件很大呢?"}
]
response = client.chat.completions.create(model="gpt-4", messages=messages)
  1. Agent模式(Tool Use)
python
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "获取天气信息",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}}
        }
    }
}]

response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
    tools=tools
)

常见术语速查

术语英文含义
TokenTokenLLM处理的最小文本单元,约0.75个英文单词
上下文窗口Context Window单次请求能处理的最大token数
温度Temperature控制输出随机性,0=确定性,1=随机
幻觉Hallucination模型生成看似合理但实际错误的内容
RAGRetrieval-Augmented Generation检索增强生成,让LLM查资料再回答
EmbeddingEmbedding将文本转为向量表示
Fine-tuningFine-tuning在特定数据上进一步训练模型
PromptPrompt输入给LLM的指令文本
ChainChain多个LLM调用串联的执行链
AgentAgent能自主选择工具和决策的LLM应用

1.4 LLMOps 平台开发基础与架构设计

什么是LLMOps

LLMOps = LLM + Operations,即大语言模型的应用运维平台。和MLOps类似,但关注点从模型训练转移到了模型应用。

LLMOps vs MLOps

维度MLOpsLLMOps
核心关注模型训练和部署Prompt编排和应用部署
数据类型结构化数据非结构化文本
评估方式准确率/F1人工评估/LLM评估
更新频率模型定期重训Prompt实时调整
成本模型训练成本为主推理成本(Token)为主

平台架构设计

┌─────────────────────────────────────────────┐
│                 前端(Vue.js)                │
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────┐   │
│  │ 聊天  │ │ 知识库│ │ 编排  │ │ 工作流    │   │
│  │ 界面  │ │ 管理 │ │ 配置  │ │ 可视化    │   │
│  └──────┘ └──────┘ └──────┘ └──────────┘   │
├─────────────────────────────────────────────┤
│                 后端(Flask)                 │
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────┐   │
│  │ API   │ │ 认证 │ │ 审核 │ │ 开放API  │   │
│  │ 路由  │ │ 授权 │ │ 模块 │ │ 模块     │   │
│  └──────┘ └──────┘ └──────┘ └──────────┘   │
├─────────────────────────────────────────────┤
│               AI层(LangChain)              │
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────┐   │
│  │ LLM   │ │ RAG  │ │Agent │ │ LangGraph│   │
│  │ 对接  │ │ 检索 │ │ 工具 │ │ 工作流   │   │
│  └──────┘ └──────┘ └──────┘ └──────────┘   │
├─────────────────────────────────────────────┤
│              基础设施层                       │
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────┐   │
│  │ PG DB │ │ 向量DB│ │Redis │ │ Docker   │   │
│  └──────┘ └──────┘ └──────┘ └──────────┘   │
└─────────────────────────────────────────────┘

技术栈选型

层级技术选型理由
前端Vue 3 + Vite生态成熟,组件丰富
UI库TailwindCSS + ArcoDesign原子化CSS + 企业级组件
后端Flask + SQLAlchemyPython生态,AI库集成方便
AI框架LangChain + LangGraph最成熟的LLM应用框架
数据库PostgreSQL可靠的关系型数据库
向量库Faiss / Weaviate高性能向量检索
缓存Redis会话管理+队列
部署Docker + Nginx容器化+反向代理

1.5 LLMOps 项目功能演示与需求拆分

核心功能清单

模块功能优先级阶段
聊天机器人基础对话P0
记忆模块对话历史+总结P0
知识库RAG检索P0
插件/联网工具调用P1
可视化编排Prompt配置P1
流式响应打字机效果P1
认证授权JWT+GitHubP1
内容审核关键词+LLM审核P2
开放API第三方接入P2
多应用应用管理P2
工作流LangGraph编排P2
多模型多LLM切换P2
统计分析Token+费用P3
多模态语音+图片P3

需求拆分原则

  1. 纵向切分:每个阶段交付一个可运行的完整功能
  2. 渐进增强:从基础功能开始,逐步增加高级能力
  3. 前后端并行:后端先行,前端紧跟

8阶段交付计划

阶段一(3周):搭建 + 基础聊天机器人
  → 能对话,有UI,跑通全链路

阶段二(3周):记忆 + RAG + 联网
  → 商业级聊天机器人

阶段三(5周):编排 + 安全 + API
  → 完整LLMOps平台

阶段四(2周):多应用 + 工作流 + 多模型
  → 扩展型平台

阶段五(2周):性能优化 + 部署
  → 生产级系统

阶段六(1周):多模态 + 第三方集成
  → 全能力平台

阶段七(3周):五大商业实战
  → 可商用的AI产品

阶段八(2周):前沿技术 + 总结
  → 进阶视野

1.6 利用 ChatGPT 辅助学习与开发

ChatGPT作为编程助手的3种用法

  1. 学习新概念
请用简单的语言解释LangChain的LCEL是什么,
给出一个最简单的代码示例,并说明它解决了什么问题。
  1. 代码生成与调试
我需要用Flask写一个API,接收用户消息,调用OpenAI返回回复。
请给出完整的代码,包含错误处理。
  1. 架构设计讨论
我要开发一个LLMOps平台,需要支持多应用、工作流编排、多模型切换。
请帮我设计数据库表结构,重点考虑扩展性。

高效提问的5个技巧

技巧说明示例
给上下文提供项目背景"我在开发一个Flask后端..."
指定格式明确输出格式"请用表格形式输出"
分步骤复杂问题拆开问先问架构,再问实现
要解释不要只给代码"解释每行代码的作用"
给约束限定技术栈"只用Python 3.11+"

ChatGPT不是万能的,但它是目前最高效的"知识检索+代码生成"工具。关键是你得会问——问得好,答得妙。

辅助开发工作流

1. 描述需求 → ChatGPT生成代码框架
2. 理解代码 → 有不懂的直接问
3. 修改调试 → 贴报错信息让它分析
4. 优化重构 → 让它审查代码质量
5. 写测试 → 让它生成测试用例

注意事项

  1. 不要盲目复制代码,理解后再用
  2. ChatGPT可能用过时的API,要对照官方文档
  3. 安全相关代码(认证、加密)必须自己审查
  4. 复杂架构设计要结合实际业务场景

本章小结

主题核心要点
LLM认知三代演进,核心是"预测下一个token"
软件构建变革从确定到概率,从流程到意图
交互模式单次问答/多轮对话/Agent模式
LLMOps架构前端+后端+AI层+基础设施四层架构
功能规划8阶段渐进交付,14个功能模块
ChatGPT辅助5个高效提问技巧,4条注意事项

觉得有用?收藏起来,下次直接照抄。

你用LLM做过什么有意思的应用?评论区聊聊你的经验。

关注怕浪猫,下期我们正式动手——搭建LLMOps后端,跑通第一个聊天机器人。

系列进度 1/23

下章预告: 第2章我们开始写代码——Python环境搭建、Flask后端开发、对接OpenAI,让你在本地跑通第一个AI聊天机器人。

热爱生活,喜好美食,追求未来!