模型 (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中文文档