大模型-聊天模型(Chat Model)

介绍

专门为 对话交互 设计的大模型。

特点

  1. 输入是 「带角色的消息列表」
  2. 天生支持多轮对话
  3. 天生支持工具调用(函数调用)
  4. 经过指令微调 + RLHF 对齐
    → 听话、安全、符合人类对话习惯
  5. 接口规范、稳定、易开发

角色

在 LangChain 的聊天模型(Chat Model)中,消息是按 角色(Role) 来组织的,最核心的角色有三个:

  • system:系统提示(设定AI身份)
  • user:用户问题
  • assistant:AI回答

SystemMessage(系统角色)

作用:给 AI 设定身份、规则、行为准则,是“AI 的人设”。

特点:

  • 放在消息列表最前面
  • 只在对话开始时生效一次(部分模型支持中途更新)
  • 优先级高,AI 会优先遵循系统提示

例子:

"你是一个专业的Python编程助手,回答要简洁、准确,避免废话。"

HumanMessage(用户角色)

作用:代表用户的提问、指令或输入。

特点:

  • 每次用户交互都用这个角色
  • 可以是问题、指令、上下文补充等

例子:

"帮我解释一下什么是RAG?"

AIMessage(AI 助手角色)

作用:代表 AI 上一轮的回答,用于多轮对话的 上下文记忆。

特点:

  • 由模型返回,开发者需要把它追加到消息列表中
  • 是多轮对话的关键,让 AI 知道自己之前说了什么

例子:

"RAG是检索增强生成,通过检索外部知识库来提升大模型回答的准确性..."

其他辅助角色(可选)

  • FunctionMessage / ToolMessage:用于工具调用场景,记录工具调用的结果,让 AI 基于工具返回的信息继续回答。

  • ChatMessage:通用角色,可自定义角色名,用于特殊场景。

必须携带AI 助手角色的场景

只要对话存在 上下文依赖,就必须携带关键历史,比如:

  • 用户追问:先问 “什么是 RAG”,再问 “它的核心步骤是什么”(后一个问题依赖前一个的定义);
  • 多轮纠错:用户指出 “你刚才的代码有问题”,模型需要知道 “刚才的代码是什么”;
  • 场景化交互:电商客服中,用户先提 “我的订单没发货”,再问 “能退款吗”(依赖 “订单” 这个上下文)。

无需带的场景

用户先问 “写一首唐诗”,再问 “计算 1+2+3 的和”(两个问题无关联,无需带前一轮历史)。

总结

  • SystemMessage:定规则、立人设
  • HumanMessage:用户输入
  • AIMessage:AI 输出,用于上下文

多轮对话 = 不断追加 HumanMessage 和 AIMessage 到列表中

和普通 LLM(大语言模型)的区别

对比 LLM(文本续写) Chat Model(聊天模型)
输入 一段文本 多角色消息结构
能力 续写、补全 对话、理解意图、多轮
工具调用 弱/不支持 原生支持
训练 预训练 预训练 + SFT + RLHF
开发体验 难控制 易控制、稳定
现在主流 旧接口 新项目全部用这个

一句话:LLM 是续写器,Chat Model 是对话机器人。

为什么现在开发都用 Chat Model?

  1. 做产品必须多轮对话
  2. 必须工具调用(查天气、查数据库、RAG)
  3. 行为可控,不会乱输出
  4. 所有新模型只更新 Chat 接口

市面典型 Chat Model 有哪些?

  • OpenAI:gpt-3.5-turbo、gpt-4o
  • 百度文心:ERNIE Bot
  • 阿里通义:Qwen
  • 智谱:GLM-4
  • 字节:豆包 Doubao
  • 腾讯:混元 Hunyuan
  • 讯飞:星火 Spark

应用场景

  • 智能客服
  • AI 助手
  • 聊天机器人
  • RAG 知识库问答
  • 带工具的 AI(联网、查数据)
  • 多轮交互类产品

总结

Chat Model = 对话专用大模型

  • 输入:角色消息
  • 能力:多轮对话 + 工具调用
  • 训练:对齐人类偏好
  • 开发:99% 新项目首选

你要我给你一段最精简的 Python + LangChain Chat Model 示例代码吗?


原文出处:/show_1GW2poSGZZqf.html