消息类型
ChatModels 接受一个消息列表作为输入并返回一条消息。有几种不同类型的消息。所有消息都有 role 和 content 属性。role 描述了谁在说这条消息。LangChain 为不同的角色拥有不同的消息类。content 属性描述了消息的内容。这可能是几种不同的类型:
- 一个字符串(大多数模型处理这种类型的内容)
- 一个字典列表(用于多模态输入,其中字典包含有关该输入类型和输入位置的信息)
此外,消息还有一个 additional_kwargs 属性。这是可以传递有关消息的其他信息的地方。这主要用于 特定于提供程序 而不是通用的输入参数。这方面最为人所知的例子是来自 OpenAI 的 function_call。
用户消息
这代表用户发出的消息。通常只包含内容。
AI 消息
这代表模型发出的消息。这可能会有 additional_kwargs - 例如,如果使用 OpenAI 工具调用,则可能包含 tool_calls。
系统消息
这代表系统消息,告诉模型如何行为。通常只包含内容。并非每个模型都支持这个。
函数消息
这代表函数调用的结果。除了 role 和 content 之外,这条消息还有一个 name 参数,用来传达生成该结果的函数的名称。
工具消息
这代表工具调用的结果。这与 FunctionMessage 不同,以匹配 OpenAI 的 function 和 tool 消息类型。除了 role 和 content 之外,这条消息还有一个 tool_call_id 参数,用来传达调用工具生成此结果的调用的 ID。