LangChain Model组件!

Model组件的基本组成

Model 是 LangChain 的核心组件,但是 LangChain 本身不提供自己的 LLM,而是提供了一个标准接口。

用于封装不同类型的 LLM 进行交互。

其中 LangChain 为两种类型的模型提供接口和集成。

LLM:使用纯文本作为输入和输出的大语言模型。

Chat Model:使用聊天消息列表作为输入并返回聊天消息的聊天模型。

在 LangChain 中,无论是 LLM 亦或者 Chat Model 都可以接受 PromptValue/字符串/消息列表 作为参数。

内部会根据模型的类型自动转换成字符串亦或者消息列表,屏蔽了不同模型的差异。

对于 Model 组件,LangChain 有一个模型总基类,并对基类进行了划分。

f5d6fb8c6d5ac84c49a5801cb5fc480a

调用大模型最常用的方法为:

invoke:传递对应的文本提示/消息提示,大语言模型生成对应的内容。

batch:invoke 的批量版本,可以一次性生成多个内容。

stream:invoke 的流式输出版本,大语言模型每生成一个字符就返回一个字符。

基础聊天应用的运行流程更改成如下:

379671798a9dab7f0afb9a6e72f15de4

Message组件

在 LangChain 中,Message 是消息组件。

所有消息都具有type(类型)、content(内容)、response_metadata(响应元数据)。

LangChain 封装的 Message 涵盖了 5 种类型的消息:

  • SystemMessage、HumanMessage、AIMessage、FunctionMessage、ToolMessage。

2222f90186bb39948842b77bec350835