LangChain组件Chat models详解(3)——消息(Messages)
本章目录如下:
- 《Gradio全解13——LangChain组件Chat models详解(1)——功能介绍》
- 《Gradio全解13——LangChain组件Chat models详解(2)——接口》
- 《Gradio全解13——LangChain组件Chat models详解(3)——消息(Messages)》
- 《Gradio全解13——LangChain组件Chat models详解(4)——结构化输出》
- 《Gradio全解13——LangChain组件Chat models详解(5)——多模态》
- 《Gradio全解13——LangChain组件Chat models详解(6)——高级主题》
本篇摘要
本章介绍LangChain组件Chat Models。
13. LangChain组件Chat models详解
LangChain本身集成了大量供应商和组件,资料庞杂,理解起来颇有难度。Chat models作为LangChain的主要组件,涵盖了最常用的功能,也是各提供商集成的主要载体,所以本章将详细介绍Chat models。更详细资料请参阅官方LangChain Componets文档。
本章主要内容包括Chat models介绍、接口、消息、结构化输出、多模态和高级主题,为后续使用Agent创建Gradio做铺垫。
13.3 消息(Messages)
LangChain提供了一种统一的消息格式Messages,可用于所有聊天模型,让用户能够使用不同的聊天模型而无需担心每个模型提供者使用的特定消息格式细节。本节主要讲述各种消息类型。
13.3.1 消息概述
本小节主要介绍角色、消息格式、内容content、附加消息及消息结构等。
1. 角色
上文已提到,消息格式一般包含role、content和additional metadata三部分,下面分别介绍。其中role的分类说明如下表:
Role | Description |
---|---|
system | 用于告诉聊天模型如何行为并提供额外的上下文,但并非所有聊天模型提供商都支持此角色。 |
user | 代表与模型交互的用户的输入,通常以文本或其他交互输入的形式出现。 |
assistant | 代表模型的响应,可以包括文本或调用工具的请求。 |
tool | 在检索外部数据或处理后,用于将工具调用型结果传递回模型的消息类型,通常与支持工具调用的聊天模型一起使用。 |
function (legacy) | 遗留角色,对应于OpenAI的旧版函数调用API,应使用tool角色替代。 |
2. 内容(Content)
消息的内容可以是文本,也可以是表示多模态数据(如图像、音频、视频)的字典列表。不同聊天模型提供商之间的内容格式可能有所不同,目前大多数聊天模型主要支持文本作为内容类型,部分模型也支持多模态数据,但大多数聊天模型提供商对多模态数据的支持仍然有限。
content可以包含多种消息格式,更多信息请参阅下文:
- SystemMessage:用于传递指导对话的内容;
- HumanMessage:用于表示用户输入的内容;
- AIMessage:用于表示模型响应的内容;
- Multimodality:参考多模态章节。
3. 附加数据
根据聊天模型提供商的不同,消息可能还包含附加数据Additional metadata,如下表所示:
other data | Description |
---|---|
ID | 消息的可选唯一标识符。 |
Name | 可选的名称属性,用于区分具有相同角色的不同实体/发言者(并非所有模型都支持)。 |
Metadata | 关于消息的附加信息,例如时间戳、令牌使 |