消息类型
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。