filter_messages#
- langchain_core.messages.utils.filter_messages(messages: Sequence[MessageLikeRepresentation] | None = None, **kwargs: Any) list[BaseMessage] | Runnable[Sequence[MessageLikeRepresentation], list[BaseMessage]] [source]#
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.
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