Skip to content

模型 (Models)

LangChain 中的模型是构建 LLM 应用的核心。理解不同类型的模型及其交互方式至关重要。

核心概念

LangChain 将模型主要分为两类:

1. LLMs (大语言模型)

  • 输入: 文本字符串。
  • 输出: 文本字符串。
  • 用途: 适用于文本补全、简单的指令跟随。
  • 示例: GPT-3 (legacy), Llama 2 基础版。

2. Chat Models (聊天模型)

  • 输入: 聊天消息列表 (List of Messages)。
  • 输出: 单个聊天消息 (Message)。
  • 用途: 对话系统、多轮交互、遵循复杂指令。
  • 底层: 通常由 LLM 支持,但接口针对对话进行了优化。
  • 示例: GPT-4, GPT-3.5-turbo, Claude 3, Gemini。

消息类型 (Messages)

在 Chat Models 中,我们使用不同的消息类型来区分角色的职责:

  • SystemMessage: 系统指令,设定 AI 的行为、角色或背景。通常放在对话的最开始。
  • HumanMessage: 用户的输入。
  • AIMessage: AI 的回复。

基础用法示例

我们以 ChatOpenAI 为例(需安装 langchain-openai)。

调用聊天模型

python
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

# 1. 初始化模型
# model 可以是 gpt-3.5-turbo, gpt-4 等
chat = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.7)

# 2. 构建消息列表
messages = [
    SystemMessage(content="你是一个专业的翻译助手,负责将中文翻译成英文。"),
    HumanMessage(content="LangChain 是一个强大的框架。")
]

# 3. 调用模型
response = chat.invoke(messages)

# 4. 查看结果
print(response)
# 输出: content='LangChain is a powerful framework.' ...
print(response.content)
# 输出: LangChain is a powerful framework.

多样化模型支持

LangChain 支持几乎所有主流模型提供商:

  • OpenAI: ChatOpenAI
  • Anthropic: ChatAnthropic
  • Google: ChatVertexAI / ChatGoogleGenerativeAI
  • Mistral: ChatMistralAI
  • Ollama (本地模型): ChatOllama

接口是统一的,这意味着你可以轻松切换底层模型而无需大幅修改代码。


掌握了模型调用后,下一步让我们学习如何更优雅地向模型发号施令:提示词 (Prompts)

LangChain中文文档