LangChain聊天模型详解

LangChain聊天模型详解

在这里插入图片描述

概述

聊天模型是使用消息序列作为输入并返回聊天消息作为输出的语言模型(与使用纯文本的传统模型相对)。这些通常是较新的模型(较旧的模型通常是LLM)。聊天模型支持为对话消息分配不同的角色,有助于区分来自AI、用户和系统消息等指令的消息。

虽然底层模型是消息输入、消息输出,但LangChain包装器也允许这些模型接受字符串作为输入。这意味着您可以轻松地使用聊天模型来替代LLM。

当传入字符串作为输入时,它会被转换为HumanMessage,然后传递给底层模型。

核心功能

1. 消息处理 💬

  • 支持多种消息类型(用户、助手、系统、工具消息)
  • 自动处理消息格式转换
  • 保持对话上下文和历史

2. 工具调用 🔧

  • 支持函数/工具调用功能
  • 结构化输出生成
  • 与外部API和服务集成

3. 多模态支持 🎨

  • 处理文本、图像、音频等多种数据类型
  • 跨模态理解和生成
  • 丰富的交互体验

4. 流式响应 ⚡

  • 实时流式输出
  • 降低响应延迟
  • 改善用户体验

集成支持

LangChain支持众多聊天模型提供商的集成,包括:

  • OpenAI - GPT系列模型
  • Anthropic - Claude系列模型
  • Google - Gemini和PaLM模型
  • AWS - Bedrock平台模型
  • Azure - Azure OpenAI服务
  • Cohere - Command系列模型
  • Hugging Face - 开源模型
  • Ollama - 本地部署模型

更多集成信息请参考聊天模型集成文档

接口规范

核心方法

所有聊天模型都实现了标准的Runnable接口,提供以下核心方法:

1. invoke() - 单次调用
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-3.5-turbo")
response = model.invoke("你好,世界!")
print(response.content)
2. batch() - 批量处理
messages_list = [
    "翻译这句话:Hello",
    "解释量子计算",
    "写一首关于春天的诗"
]
responses = model.batch(messages_list)
for response in responses:
    print(response.content)
3. stream() - 流式输出
for chunk in model.stream("请详细解释人工智能"):
    print(chunk.content, end="", flush=True)
4. astream() - 异步流式输出
import asyncio

async def async_stream_example():
    async for chunk in model.astream("解释机器学习"):
        print(chunk.content, end="", flush=True)

asyncio.run(async_stream_example())

输入和输出

输入类型

聊天模型可以接受以下输入类型:

  • 字符串 - 自动转换为HumanMessage
  • 消息列表 - 包含不同角色的消息序列
  • PromptValue - 来自提示模板的结构化输入
输出类型

聊天模型返回:

  • AIMessage - 包含模型响应的消息对象
  • 工具调用 - 当模型决定调用工具时
  • 结构化数据 - 使用结构化输出功能时

标准参数

LangChain为聊天模型定义了一组标准参数,以提供一致的接口:

参数 描述 示例值
model 要使用的特定AI模型的名称或标识符 “gpt-3.5-turbo”, “gpt-4”
temperature 控制模型输出的随机性。较高值(如1.0)使响应更有创意,较低值(如0.0)使其更确定和专注 0.0-1.0
timeout 等待模型响应的最大时间(秒),超时后取消请求 30, 60
max_tokens 限制响应中的总令牌数(单词和标点符号),控制输出长度 100, 1000
stop 指定停止序列,指示模型何时应停止生成令牌 [“\n”, “END”]
max_retries 由于网络超时或速率限制等问题导致请求失败时,系统重新发送请求的最大尝试次数 3, 5
api_key 与模型提供商进行身份验证所需的API密钥 “sk-…”
base_url 发送请求的API端点URL “https://api.openai.com/v1”
rate_limiter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值