filter_messages(
messages: Iterable[MessageLikeRepresentation] | PromptValue,
*,
include_names: | 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: None |
include_types | Sequence[str | type[BaseMessage]] | None | Default: None |
exclude_types | Sequence[str | type[BaseMessage]] | None | Default: None |
include_ids | Sequence[str] | None | Default: None |
exclude_ids | Sequence[str] | None | Default: None |
exclude_tool_calls | Sequence[str] | bool | None | Default: None |
Filter messages based on name, type or id.
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"),
]Messages names to exclude.
Message types to include. Can be specified as string names
(e.g. 'system', 'human', 'ai', ...) or as BaseMessage
classes (e.g. SystemMessage, HumanMessage, AIMessage, ...).
Message types to exclude. Can be specified as string names
(e.g. 'system', 'human', 'ai', ...) or as BaseMessage
classes (e.g. SystemMessage, HumanMessage, AIMessage, ...).
Message IDs to include.
Message IDs to exclude.
Tool call IDs to exclude. Can be one of the following:
True: All AIMessage objects with tool calls and all ToolMessage
objects will be excluded.ToolMessage objects with the corresponding tool call ID will be
excluded.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.