核心模块(Modules)
模型 I/O(ModelIO)
聊天(Chat)
消息类型(MessageTypes)

消息类型

ChatModels接受一个消息列表作为输入并返回一条消息。有几种不同类型的消息。所有消息都有rolecontent属性。role描述了谁在说这条消息。LangChain为不同的角色拥有不同的消息类。content属性描述了消息的内容。这可能是几种不同的类型:

  • 一个字符串(大多数模型处理这种类型的内容)
  • 一个字典列表(用于多模态输入,其中字典包含有关该输入类型和输入位置的信息)

此外,消息还有一个additional_kwargs属性。这是可以传递有关消息的其他信息的地方。这主要用于特定于提供程序而不是通用的输入参数。这方面最为人所知的例子是来自OpenAI的function_call

用户消息

这代表用户发出的消息。通常只包含内容。

AI消息

这代表模型发出的消息。这可能会有additional_kwargs - 例如,如果使用OpenAI工具调用,则可能包含tool_calls

系统消息

这代表系统消息,告诉模型如何行为。通常只包含内容。并非每个模型都支持这个。

函数消息

这代表函数调用的结果。除了rolecontent之外,这条消息还有一个name参数,用来传达生成该结果的函数的名称。

工具消息

这代表工具调用的结果。这与FunctionMessage不同,以匹配OpenAI的functiontool消息类型。除了rolecontent之外,这条消息还有一个tool_call_id参数,用来传达调用工具生成此结果的调用的ID。