Filter messages based on name, type or id.
filter_messages(
messages: Iterable[MessageLikeRepresentation] | PromptValue,
*,
include_names: Sequence[str] | None = None,
exclude_names: Sequence[str] | None = None,
include_types: Sequence[str | type[BaseMessage]] | None = None,
exclude_types: Sequence[str | type[BaseMessage]] | None = None,
include_ids: Sequence[str] | None = None,
exclude_ids: Sequence[str] | None = None,
exclude_tool_calls: Sequence[str] | bool | None = None
) -> 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,
include_names=("example_user", "example_assistant"),
include_types=("system",),
exclude_ids=("bar",),
)
[
SystemMessage("you're a good assistant."),
HumanMessage("what's your name", id="foo", name="example_user"),
]| Name | Type | Description |
|---|---|---|
messages* | Iterable[MessageLikeRepresentation] | PromptValue | Sequence Message-like objects to filter. |
include_names | Sequence[str] | None | Default: NoneMessage names to include. |
exclude_names | Sequence[str] | None | Default: NoneMessages names to exclude. |
include_types | Sequence[str | type[BaseMessage]] | None | Default: NoneMessage types to include. Can be specified as string names
(e.g. |
exclude_types | Sequence[str | type[BaseMessage]] | None | Default: NoneMessage types to exclude. Can be specified as string names
(e.g. |
include_ids | Sequence[str] | None | Default: NoneMessage IDs to include. |
exclude_ids | Sequence[str] | None | Default: NoneMessage IDs to exclude. |
exclude_tool_calls | Sequence[str] | bool | None | Default: NoneTool call IDs to exclude. Can be one of the following:
|