filter_messages#
- langchain_core.messages.utils.filter_messages(
- messages: Sequence[MessageLikeRepresentation] | None = None,
- **kwargs: Any,
Filter messages based on
name
,type
orid
.- 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 asBaseMessage
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 asBaseMessage
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 ``AIMessage``s with tool calls and all``ToolMessage``s will be excluded.
a sequence of tool call IDs to exclude: - ``ToolMessage``s with the corresponding tool call ID will be
excluded.
The
tool_calls
in the AIMessage will be updated to exclude matching tool calls. If alltool_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 theexcl_*
conditions. If notincl_*
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