langchain_core.prompts.chat
.MessagesPlaceholder¶
- class langchain_core.prompts.chat.MessagesPlaceholder[source]¶
-
假定变量已经是消息列表的提示模板。
一个可以使用来传递消息列表的占位符。
直接使用
from langchain_core.prompts import MessagesPlaceholder prompt = MessagesPlaceholder("history") prompt.format_messages() # raises KeyError prompt = MessagesPlaceholder("history", optional=True) prompt.format_messages() # returns empty list [] prompt.format_messages( history=[ ("system", "You are an AI assistant."), ("human", "Hello!"), ] ) # -> [ # SystemMessage(content="You are an AI assistant."), # HumanMessage(content="Hello!"), # ]
使用聊天历史构建提示
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder prompt = ChatPromptTemplate.from_messages( [ ("system", "You are a helpful assistant."), MessagesPlaceholder("history"), ("human", "{question}") ] ) prompt.invoke( { "history": [("human", "what's 5 + 2"), ("ai", "5 + 2 is 7")], "question": "now multiply that by 4" } ) # -> ChatPromptValue(messages=[ # SystemMessage(content="You are a helpful assistant."), # HumanMessage(content="what's 5 + 2"), # AIMessage(content="5 + 2 is 7"), # HumanMessage(content="now multiply that by 4"), # ])
限制消息数量
from langchain_core.prompts import MessagesPlaceholder prompt = MessagesPlaceholder("history", n_messages=1) prompt.format_messages( history=[ ("system", "You are an AI assistant."), ("human", "Hello!"), ] ) # -> [ # HumanMessage(content="Hello!"), # ]
- 参数n_messages: Optional[PositiveInt] = None¶
要包含的消息的最大数量。如果为 None,则包含所有消息。默认为 None。
- 约束
exclusiveMinimum = 0
- 参数optional: bool = False¶
如果为 True,则可以不带参数调用 format_messages 并返回一个空列表。如果为 False,则需要传递名为 variable_name 的命名参数,即使该参数的值为空列表。
- 参数variable_name: str [必需]¶
用作消息的变量的名称。
- asyncaformat_messages(**kwargs: Any) List[BaseMessage] ¶
从 kwargs 中异步格式化消息。应返回一系列 BaseMessage。
- 参数
**kwargs (Any) – 用于格式化的关键字参数。
- 返回
BaseMessage 列表。
- 返回类型
List[BaseMessage]
- format_messages(**kwargs: Any) List[BaseMessage] [来源代码]¶
从 kwargs 中格式化消息。
- 参数
**kwargs (Any) – 用于格式化的关键字参数。
- 返回
BaseMessage 列表。
- 抛出
ValueError – 如果变量不是消息列表。
- 返回类型
List[BaseMessage]
- pretty_print() None ¶
打印人类可读的表现形式。
- 返回类型
None
- pretty_repr(html: bool = False) str [source]¶
人类可读的表现形式。
- 参数
html (bool) – 是否格式化为HTML。默认为False。
- 返回
人类可读的表现形式。
- 返回类型
str
- property input_variables: List[str]¶
此提示模板的输入变量。
- 返回
输入变量名称的列表。