第 1 课 / 共 7 课14 分钟2 个闯关

大模型应用到底在干什么

模型无状态、三种 role、token 计费、为什么需要 LangChain。

前置提醒:这条路线假设你会 Python 基础(变量、函数、字典、异常)。没学过的话,先去走 Python 路线的前 7 课,回来会轻松很多。

大模型应用到底在干什么

你以为的 AI 应用:一个很聪明的模型。

实际上的 AI 应用:一个把材料整理好、递给模型、再把模型的话整理成程序能用的数据的流水线。

模型本身是个黑盒 API:你发一段文字,它回一段文字。就这么简单。所有"看起来很聪明"的产品,聪明之处几乎都在黑盒外面——你怎么组织上下文、怎么约束输出、怎么接工具、怎么处理失败。

先不用 LangChain,看看原始形态

from openai import OpenAI

client = OpenAI(api_key="sk-...", base_url="https://api.deepseek.com")

resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一个简洁的助手,回答不超过两句话。"},
        {"role": "user", "content": "什么是 API?"},
    ],
)
print(resp.choices[0].message.content)

三种 role 必须分清

  • system:给模型立人设和规则,优先级最高,用户看不见
  • user:用户说的话
  • assistant:模型之前说过的话(多轮对话时要把历史带上)

一个关键事实:模型没有记忆

每次调用都是全新的。它能"记得"上一轮,只是因为你把上一轮的内容又发了一遍

messages = [
    {"role": "system", "content": "你是助手"},
    {"role": "user", "content": "我叫小明"},
    {"role": "assistant", "content": "你好小明"},
    {"role": "user", "content": "我叫什么?"},   # 靠上面两条它才知道
]

所谓"记忆功能",本质上就是替你管理这个列表。理解这一点,后面的 Memory 一课就没有任何神秘感了。

token 与成本

模型按 token 计费,不是按字数。粗略换算:1 个英文单词≈1.3 token,1 个汉字≈0.6~1 token。输入和输出分别计价,通常输出更贵。

这意味着两条工程准则:

  1. 别把无关内容一股脑塞进上下文。 贵、慢,而且会稀释模型的注意力,效果反而变差。
  2. 上下文有长度上限。 对话长到一定程度必须裁剪或摘要,否则直接报错。

LangChain 解决什么问题

上面那段代码已经能用了,为什么还要 LangChain?

因为真实应用里你会反复遇到同样几件麻烦事:换个模型厂商要重写一遍调用代码、提示词里拼变量、把模型输出的文字解析成 JSON、管理对话历史、把文档切块检索、让模型调用工具。LangChain 把这些固化成标准零件,你负责拼装。

代价是多一层抽象。学习时的正确心态是:先知道它底下就是上面那段 HTTP 调用,抽象漏了的时候你才知道去哪找问题。

环境准备

pip install langchain langchain-openai python-dotenv

API key 写进 .env 文件,永远不要硬编码在代码里(一旦提交到 GitHub 就等于公开了,有机器人专门扫这个):

OPENAI_API_KEY=sk-xxxx
OPENAI_BASE_URL=https://api.deepseek.com
from dotenv import load_dotenv
load_dotenv()        # 读取 .env 到环境变量

记得把 .env 写进 .gitignore

关于版本

LangChain 迭代很快,网上大量教程是旧版写法。本课程用 LCEL(表达式语言)风格,也就是用 | 把组件串起来的那种写法。如果你搜到的代码里出现 LLMChain(...)initialize_agent(...),那是旧接口,不要照抄。遇到不确定的写法,直接问 AI 私教或查官方文档的当前版本页面。

10 秒自测

为什么模型"能记住"你上一句说了什么?

因为你每次请求都把完整的历史消息一起发过去了。模型本身无状态,记忆是应用层做出来的。

广告位(未配置 AdSense,上线后在此展示)

动手闯关

读懂了不算会,写出来才算

0/2 已通过

闯关和判题完全免费,交错了不扣任何东西。卡住随时点「问 AI」,它能看到你正在写的代码。

关卡 01选择+10 点 · +15 XP

模型的"记忆"从哪来

为什么模型能"记住"你上一轮说了什么?

  • 可能是多选,选错不扣点数,随便试。
登录后闯关拿点数
关卡 02选择+10 点 · +15 XP

system 角色是干什么的

关于 messages 里的三种 role,哪些说法正确?(可多选)

  • 可能是多选,选错不扣点数,随便试。
登录后闯关拿点数

学完了?标记一下

标记完成会记进度、涨 20 XP,还会点亮连续学习天数。