filter_messages#
- langchain_core.messages.utils.filter_messages(
- messages: Sequence[MessageLikeRepresentation] | None = None,
- **kwargs: Any,
Filter messages based on name, type or id.
- Parameters:
messages (Union[Sequence[MessageLikeRepresentation], None]) β Sequence Message-like objects to filter.
include_names β Message names to include. Default is None.
exclude_names β Messages names to exclude. Default is None.
include_types β Message types to include. Can be specified as string names (e.g. βsystemβ, βhumanβ, βaiβ, β¦) or as BaseMessage classes (e.g. SystemMessage, HumanMessage, AIMessage, β¦). Default is None.
exclude_types β Message types to exclude. Can be specified as string names (e.g. βsystemβ, βhumanβ, βaiβ, β¦) or as BaseMessage classes (e.g. SystemMessage, HumanMessage, AIMessage, β¦). Default is None.
include_ids β Message IDs to include. Default is None.
exclude_ids β Message IDs to exclude. Default is None.
exclude_tool_calls β
Tool call IDs to exclude. Default is None. Can be one of the following: - True: all AIMessages with tool calls and all ToolMessages will be excluded. - a sequence of tool call IDs to exclude:
ToolMessages with the corresponding tool call ID will be excluded.
The tool_calls in the AIMessage will be updated to exclude matching tool calls. If all tool_calls are filtered from an AIMessage, the whole message is excluded.
kwargs (Any)
- Returns:
A list of Messages that meets at least one of the incl_* conditions and none of the excl_* conditions. If not incl_* conditions are specified then anything that is not explicitly excluded will be included.
- Raises:
ValueError if two incompatible arguments are provided. β
- Return type:
Union[list[BaseMessage], Runnable[Sequence[MessageLikeRepresentation], list[BaseMessage]]]
Example
from langchain_core.messages import filter_messages, AIMessage, HumanMessage, SystemMessage messages = [ SystemMessage("you're a good assistant."), HumanMessage("what's your name", id="foo", name="example_user"), AIMessage("steve-o", id="bar", name="example_assistant"), HumanMessage("what's your favorite color", id="baz",), AIMessage("silicon blue", id="blah",), ] filter_messages( messages, incl_names=("example_user", "example_assistant"), incl_types=("system",), excl_ids=("bar",), )
[ SystemMessage("you're a good assistant."), HumanMessage("what's your name", id="foo", name="example_user"), ]
Examples using filter_messages