Author
Published On
Sep 8, 2025
Category
模块一:模型I/O (Models I/O) - 与LLM对话的基础
第二课时:Chat Models:对话模型的魅力
(视频/文章封面建议:两个卡通风格的对话气泡,一个代表“人”,一个代表“AI”,中间有一个“角色扮演”的面具图标,象征着Chat Models的核心特性)
Part 1: 从“文本补全”到“角色扮演”——Chat Models vs. LLM
上节课,我们认识了LLM,一个强大的“文本自动补全引擎”。你给它“天空是”,它可能接“蓝色的”。它很厉害,但它不太懂“对话的艺术”。
在现实世界中,我们更习惯的是聊天。我们希望AI能扮演一个特定的角色(比如“一个耐心的Python导师”),能理解我们说的每一句话,并给出符合角色的回应。
为了实现这一点,LangChain引入了更高级的模型抽象:Chat Models(聊天模型)。
它们之间有什么区别呢?
让我们用一个更生动的比喻来解释:
- LLM(大语言模型) 就像一个才华横溢的“即兴演员”。你给他一个开头,他就能天马行空地往下演,但他没有固定的角色,也不记得上一场戏演了什么。
- Chat Models(聊天模型) 则像一个专业的“方法派演员”。在开拍前,导演会给他一份详细的角色说明书(比如“你是一个愤世嫉俗的侦探”),他会完全沉浸在这个角色里。他不仅能听懂对手的台词,还能结合之前几场戏的剧情(上下文),做出最符合角色的反应。
| 特性 | LLM (大语言模型) | Chat Models (聊天模型) |
| :--- | :--- | :--- |
| 输入 | 纯文本 | 一个消息列表 |
| 核心 | 文本补全 | 对话、角色扮演 |
| 理解 | 理解文本的连续性 | 理解角色和对话上下文 |
| 典型模型 |
gpt-3.5-turbo-instruct|gpt-3.5-turbo,gpt-4,claude-3| | 比喻 | 即兴演员 | 方法派演员 | 简单来说,Chat Models是为“对话”而生的,它们是构建聊天机器人、智能助手等应用的基石。
Part 2: 对话的“语法”——消息类型
既然Chat Models的输入是“消息列表”,那么这些“消息”有哪些类型呢?这就是Chat Models的“语法”。
LangChain定义了三种核心的消息类型,它们共同构成了一段完整的对话:
SystemMessage(系统消息)- 作用: 这是最高级别的指令,用来设定AI的角色、性格和总体目标。它就像是导演在开拍前对演员的最终叮嘱。
- 特点: 通常只出现在对话的最开始,对整个对话的基调产生深远影响。
- 比喻: 导演的剧本总纲。
HumanMessage(人类消息)- 作用: 代表用户(你)输入的内容。这是你向AI提出的问题、下达的指令。
- 比喻: 演员的台词或观众的提问。
AIMessage(AI消息)- 作用: 代表AI之前的回复。在构建多轮对话时,我们需要把AI上一次的回答也放进输入列表里,这样它才能“记住”自己说过什么。
- 比喻: 演员上一句的表演记录。
一个典型的对话流程就是:
[SystemMessage]->[HumanMessage]->[AIMessage]->[HumanMessage]->[AIMessage]-> ...
Part 3: 实战演练——构建一个简单的多轮对话
理论说再多,不如亲手写一遍。现在,让我们来构建一个能记住上下文的简单对话机器人。
【实战准备】
创建一个新文件
chat_playground.py。
【代码实现】运行并观察结果!
你会看到类似这样的输出(具体内容可能不同):
拿去吧,愿代码的风永远吹向你的船帆!








