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定义了三种核心的消息类型,它们共同构成了一段完整的对话:
  1. SystemMessage(系统消息)
      • 作用: 这是最高级别的指令,用来设定AI的角色、性格和总体目标。它就像是导演在开拍前对演员的最终叮嘱。
      • 特点: 通常只出现在对话的最开始,对整个对话的基调产生深远影响。
      • 比喻: 导演的剧本总纲
  1. HumanMessage(人类消息)
      • 作用: 代表用户(你)输入的内容。这是你向AI提出的问题、下达的指令。
      • 比喻: 演员的台词或观众的提问
  1. AIMessage(AI消息)
      • 作用: 代表AI之前的回复。在构建多轮对话时,我们需要把AI上一次的回答也放进输入列表里,这样它才能“记住”自己说过什么。
      • 比喻: 演员上一句的表演记录一个典型的对话流程就是:[SystemMessage] -> [HumanMessage] -> [AIMessage] -> [HumanMessage] -> [AIMessage] -> ...

Part 3: 实战演练——构建一个简单的多轮对话

理论说再多,不如亲手写一遍。现在,让我们来构建一个能记住上下文的简单对话机器人。 【实战准备】 创建一个新文件 chat_playground.py【代码实现】
运行并观察结果! 你会看到类似这样的输出(具体内容可能不同):
拿去吧,愿代码的风永远吹向你的船帆!
Loading...