第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-3 | In-context Learning | 问答、翻译 |
| 第三代 | GPT-4/Claude | 推理+多模态 | Agent、代码生成 |
LLM的核心能力矩阵
- 文本生成:写文章、写代码、写邮件
- 文本理解:摘要、分类、情感分析
- 推理能力:逻辑推理、数学计算
- 对话能力:多轮对话、上下文理解
- 指令遵循:按格式输出、遵循规则
LLM不是百科全书,它是"最会猜下一个词"的模型。理解了这一点,你就理解了它为什么会产生幻觉——因为它在"猜",不是在"查"。
LLM的典型应用场景
| 场景 | 输入 | 输出 | 商业价值 |
|---|---|---|---|
| 智能客服 | 用户问题 | 标准回答 | 降低人力成本 |
| 内容创作 | 主题/大纲 | 文章/文案 | 提升创作效率 |
| 代码辅助 | 需求描述 | 代码实现 | 加速开发 |
| 数据分析 | 数据集 | 分析报告 | 辅助决策 |
| 知识问答 | 领域问题 | 专业回答 | 知识管理 |
1.2 LLM 如何影响软件构建与交互方式
传统软件 vs LLM驱动的软件
| 维度 | 传统软件 | LLM驱动软件 |
|---|---|---|
| 交互方式 | 按钮/表单/菜单 | 自然语言对话 |
| 逻辑实现 | 硬编码规则 | 模型推理 |
| 扩展性 | 加功能=加代码 | 加功能=加Prompt |
| 边界处理 | try-catch兜底 | 模型自行处理 |
| 个性化 | 基于用户画像 | 基于对话上下文 |
LLM对软件架构的影响
- 从确定到概率:传统软件输入确定、输出确定;LLM应用输入确定、输出概率性
- 从流程到意图:用户不再需要知道操作流程,只需要表达意图
- 从硬编码到编排:业务逻辑从代码层移到Prompt层
- 从同步到流式:LLM生成是token-by-token,需要流式响应
新的开发范式
传统开发:需求 → 设计 → 编码 → 测试 → 部署
LLM开发:需求 → Prompt设计 → 链式编排 → 评估 → 部署关键区别:你不再写业务逻辑,而是教AI怎么执行业务逻辑。
开发LLM应用,你写的不是代码逻辑,而是"让AI理解你意图"的桥梁。Prompt工程就是这座桥的设计图纸。
1.3 LLM 与 Agent 应用的交互方式及常见术语
三种交互模式
- 单次问答(Completion)
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)- 多轮对话(Chat)
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)- Agent模式(Tool Use)
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
)常见术语速查
| 术语 | 英文 | 含义 |
|---|---|---|
| Token | Token | LLM处理的最小文本单元,约0.75个英文单词 |
| 上下文窗口 | Context Window | 单次请求能处理的最大token数 |
| 温度 | Temperature | 控制输出随机性,0=确定性,1=随机 |
| 幻觉 | Hallucination | 模型生成看似合理但实际错误的内容 |
| RAG | Retrieval-Augmented Generation | 检索增强生成,让LLM查资料再回答 |
| Embedding | Embedding | 将文本转为向量表示 |
| Fine-tuning | Fine-tuning | 在特定数据上进一步训练模型 |
| Prompt | Prompt | 输入给LLM的指令文本 |
| Chain | Chain | 多个LLM调用串联的执行链 |
| Agent | Agent | 能自主选择工具和决策的LLM应用 |
1.4 LLMOps 平台开发基础与架构设计
什么是LLMOps
LLMOps = LLM + Operations,即大语言模型的应用运维平台。和MLOps类似,但关注点从模型训练转移到了模型应用。
LLMOps vs MLOps
| 维度 | MLOps | LLMOps |
|---|---|---|
| 核心关注 | 模型训练和部署 | 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 + SQLAlchemy | Python生态,AI库集成方便 |
| AI框架 | LangChain + LangGraph | 最成熟的LLM应用框架 |
| 数据库 | PostgreSQL | 可靠的关系型数据库 |
| 向量库 | Faiss / Weaviate | 高性能向量检索 |
| 缓存 | Redis | 会话管理+队列 |
| 部署 | Docker + Nginx | 容器化+反向代理 |
1.5 LLMOps 项目功能演示与需求拆分
核心功能清单
| 模块 | 功能 | 优先级 | 阶段 |
|---|---|---|---|
| 聊天机器人 | 基础对话 | P0 | 一 |
| 记忆模块 | 对话历史+总结 | P0 | 二 |
| 知识库 | RAG检索 | P0 | 二 |
| 插件/联网 | 工具调用 | P1 | 二 |
| 可视化编排 | Prompt配置 | P1 | 三 |
| 流式响应 | 打字机效果 | P1 | 三 |
| 认证授权 | JWT+GitHub | P1 | 三 |
| 内容审核 | 关键词+LLM审核 | P2 | 三 |
| 开放API | 第三方接入 | P2 | 三 |
| 多应用 | 应用管理 | P2 | 四 |
| 工作流 | LangGraph编排 | P2 | 四 |
| 多模型 | 多LLM切换 | P2 | 四 |
| 统计分析 | Token+费用 | P3 | 五 |
| 多模态 | 语音+图片 | P3 | 六 |
需求拆分原则
- 纵向切分:每个阶段交付一个可运行的完整功能
- 渐进增强:从基础功能开始,逐步增加高级能力
- 前后端并行:后端先行,前端紧跟
8阶段交付计划
阶段一(3周):搭建 + 基础聊天机器人
→ 能对话,有UI,跑通全链路
阶段二(3周):记忆 + RAG + 联网
→ 商业级聊天机器人
阶段三(5周):编排 + 安全 + API
→ 完整LLMOps平台
阶段四(2周):多应用 + 工作流 + 多模型
→ 扩展型平台
阶段五(2周):性能优化 + 部署
→ 生产级系统
阶段六(1周):多模态 + 第三方集成
→ 全能力平台
阶段七(3周):五大商业实战
→ 可商用的AI产品
阶段八(2周):前沿技术 + 总结
→ 进阶视野1.6 利用 ChatGPT 辅助学习与开发
ChatGPT作为编程助手的3种用法
- 学习新概念
请用简单的语言解释LangChain的LCEL是什么,
给出一个最简单的代码示例,并说明它解决了什么问题。- 代码生成与调试
我需要用Flask写一个API,接收用户消息,调用OpenAI返回回复。
请给出完整的代码,包含错误处理。- 架构设计讨论
我要开发一个LLMOps平台,需要支持多应用、工作流编排、多模型切换。
请帮我设计数据库表结构,重点考虑扩展性。高效提问的5个技巧
| 技巧 | 说明 | 示例 |
|---|---|---|
| 给上下文 | 提供项目背景 | "我在开发一个Flask后端..." |
| 指定格式 | 明确输出格式 | "请用表格形式输出" |
| 分步骤 | 复杂问题拆开问 | 先问架构,再问实现 |
| 要解释 | 不要只给代码 | "解释每行代码的作用" |
| 给约束 | 限定技术栈 | "只用Python 3.11+" |
ChatGPT不是万能的,但它是目前最高效的"知识检索+代码生成"工具。关键是你得会问——问得好,答得妙。
辅助开发工作流
1. 描述需求 → ChatGPT生成代码框架
2. 理解代码 → 有不懂的直接问
3. 修改调试 → 贴报错信息让它分析
4. 优化重构 → 让它审查代码质量
5. 写测试 → 让它生成测试用例注意事项
- 不要盲目复制代码,理解后再用
- ChatGPT可能用过时的API,要对照官方文档
- 安全相关代码(认证、加密)必须自己审查
- 复杂架构设计要结合实际业务场景
本章小结
| 主题 | 核心要点 |
|---|---|
| LLM认知 | 三代演进,核心是"预测下一个token" |
| 软件构建变革 | 从确定到概率,从流程到意图 |
| 交互模式 | 单次问答/多轮对话/Agent模式 |
| LLMOps架构 | 前端+后端+AI层+基础设施四层架构 |
| 功能规划 | 8阶段渐进交付,14个功能模块 |
| ChatGPT辅助 | 5个高效提问技巧,4条注意事项 |
觉得有用?收藏起来,下次直接照抄。
你用LLM做过什么有意思的应用?评论区聊聊你的经验。
关注怕浪猫,下期我们正式动手——搭建LLMOps后端,跑通第一个聊天机器人。
系列进度 1/23
下章预告: 第2章我们开始写代码——Python环境搭建、Flask后端开发、对接OpenAI,让你在本地跑通第一个AI聊天机器人。