LogStreamCallbackHandler#
- class langchain_core.tracers.log_stream.LogStreamCallbackHandler(*, auto_close: bool = True, include_names: Sequence[str] | None = None, include_types: Sequence[str] | None = None, include_tags: Sequence[str] | None = None, exclude_names: Sequence[str] | None = None, exclude_types: Sequence[str] | None = None, exclude_tags: Sequence[str] | None = None, _schema_format: Literal['original', 'streaming_events'] = 'streaming_events')[source]#
Tracer that streams run logs to a stream.
A tracer that streams run logs to a stream.
- Parameters:
auto_close (bool) – Whether to close the stream when the root run finishes.
include_names (Optional[Sequence[str]]) – Only include runs from Runnables with matching names.
include_types (Optional[Sequence[str]]) – Only include runs from Runnables with matching types.
include_tags (Optional[Sequence[str]]) – Only include runs from Runnables with matching tags.
exclude_names (Optional[Sequence[str]]) – Exclude runs from Runnables with matching names.
exclude_types (Optional[Sequence[str]]) – Exclude runs from Runnables with matching types.
exclude_tags (Optional[Sequence[str]]) – Exclude runs from Runnables with matching tags.
_schema_format (Literal['original', 'streaming_events']) –
Primarily changes how the inputs and outputs are handled. For internal use only. This API will change. - ‘original’ is the format used by all current tracers.
This format is slightly inconsistent with respect to inputs and outputs.
’streaming_events’ is used for supporting streaming events, for internal usage. It will likely change in the future, or be deprecated entirely in favor of a dedicated async tracer for streaming events.
- Raises:
ValueError – If an invalid schema format is provided (internal use only).
Attributes
ignore_agent
Whether to ignore agent callbacks.
ignore_chain
Whether to ignore chain callbacks.
ignore_chat_model
Whether to ignore chat model callbacks.
ignore_custom_event
Ignore custom event.
ignore_llm
Whether to ignore LLM callbacks.
ignore_retriever
Whether to ignore retriever callbacks.
ignore_retry
Whether to ignore retry callbacks.
log_missing_parent
raise_error
Whether to raise an error if an exception occurs.
run_inline
Whether to run the callback inline.
Methods
__init__
(*[, auto_close, include_names, ...])A tracer that streams run logs to a stream.
include_run
(run)Check if a Run should be included in the log.
on_agent_action
(action, *, run_id[, ...])Run on agent action.
on_agent_finish
(finish, *, run_id[, ...])Run on the agent end.
on_chain_end
(outputs, *, run_id[, inputs])End a trace for a chain run.
on_chain_error
(error, *[, inputs])Handle an error for a chain run.
on_chain_start
(serialized, inputs, *, run_id)Start a trace for a chain run.
on_chat_model_start
(serialized, messages, *, ...)Start a trace for an LLM run.
on_custom_event
(name, data, *, run_id[, ...])Override to define a handler for a custom event.
on_llm_end
(response, *, run_id, **kwargs)End a trace for an LLM run.
on_llm_error
(error, *, run_id, **kwargs)Handle an error for an LLM run.
on_llm_new_token
(token, *[, chunk, ...])Run on new LLM token.
on_llm_start
(serialized, prompts, *, run_id)Start a trace for an LLM run.
on_retriever_end
(documents, *, run_id, **kwargs)Run when the Retriever ends running.
on_retriever_error
(error, *, run_id, **kwargs)Run when Retriever errors.
on_retriever_start
(serialized, query, *, run_id)Run when the Retriever starts running.
on_retry
(retry_state, *, run_id, **kwargs)Run on retry.
on_text
(text, *, run_id[, parent_run_id])Run on an arbitrary text.
on_tool_end
(output, *, run_id, **kwargs)End a trace for a tool run.
on_tool_error
(error, *, run_id, **kwargs)Handle an error for a tool run.
on_tool_start
(serialized, input_str, *, run_id)Start a trace for a tool run.
send
(*ops)Send a patch to the stream, return False if the stream is closed.
tap_output_aiter
(run_id, output)Tap an output async iterator to stream its values to the log.
tap_output_iter
(run_id, output)Tap an output async iterator to stream its values to the log.
- __init__(*, auto_close: bool = True, include_names: Sequence[str] | None = None, include_types: Sequence[str] | None = None, include_tags: Sequence[str] | None = None, exclude_names: Sequence[str] | None = None, exclude_types: Sequence[str] | None = None, exclude_tags: Sequence[str] | None = None, _schema_format: Literal['original', 'streaming_events'] = 'streaming_events') None [source]#
A tracer that streams run logs to a stream.
- Parameters:
auto_close (bool) – Whether to close the stream when the root run finishes.
include_names (Sequence[str] | None) – Only include runs from Runnables with matching names.
include_types (Sequence[str] | None) – Only include runs from Runnables with matching types.
include_tags (Sequence[str] | None) – Only include runs from Runnables with matching tags.
exclude_names (Sequence[str] | None) – Exclude runs from Runnables with matching names.
exclude_types (Sequence[str] | None) – Exclude runs from Runnables with matching types.
exclude_tags (Sequence[str] | None) – Exclude runs from Runnables with matching tags.
_schema_format (Literal['original', 'streaming_events']) –
Primarily changes how the inputs and outputs are handled. For internal use only. This API will change. - ‘original’ is the format used by all current tracers.
This format is slightly inconsistent with respect to inputs and outputs.
’streaming_events’ is used for supporting streaming events, for internal usage. It will likely change in the future, or be deprecated entirely in favor of a dedicated async tracer for streaming events.
- Raises:
ValueError – If an invalid schema format is provided (internal use only).
- Return type:
None
- include_run(run: RunTree) bool [source]#
Check if a Run should be included in the log.
- Parameters:
run (RunTree) – The Run to check.
- Returns:
True if the run should be included, False otherwise.
- Return type:
bool
- on_agent_action(action: AgentAction, *, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any) Any #
Run on agent action.
- Parameters:
action (AgentAction) – The agent action.
run_id (UUID) – The run ID. This is the ID of the current run.
parent_run_id (UUID) – The parent run ID. This is the ID of the parent run.
kwargs (Any) – Additional keyword arguments.
- Return type:
Any
- on_agent_finish(finish: AgentFinish, *, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any) Any #
Run on the agent end.
- Parameters:
finish (AgentFinish) – The agent finish.
run_id (UUID) – The run ID. This is the ID of the current run.
parent_run_id (UUID) – The parent run ID. This is the ID of the parent run.
kwargs (Any) – Additional keyword arguments.
- Return type:
Any
- on_chain_end(outputs: dict[str, Any], *, run_id: UUID, inputs: dict[str, Any] | None = None, **kwargs: Any) RunTree #
End a trace for a chain run.
- Parameters:
outputs (dict[str, Any]) – The outputs for the chain.
run_id (UUID) – The run ID.
inputs (dict[str, Any] | None) – The inputs for the chain. Defaults to None.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_chain_error(error: BaseException, *, inputs: dict[str, Any] | None = None, run_id: UUID, **kwargs: Any) RunTree #
Handle an error for a chain run.
- Parameters:
error (BaseException) – The error.
inputs (dict[str, Any] | None) – The inputs for the chain. Defaults to None.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_chain_start(serialized: dict[str, Any], inputs: dict[str, Any], *, run_id: UUID, tags: list[str] | None = None, parent_run_id: UUID | None = None, metadata: dict[str, Any] | None = None, run_type: str | None = None, name: str | None = None, **kwargs: Any) RunTree #
Start a trace for a chain run.
- Parameters:
serialized (dict[str, Any]) – The serialized chain.
inputs (dict[str, Any]) – The inputs for the chain.
run_id (UUID) – The run ID.
tags (list[str] | None) – The tags for the run. Defaults to None.
parent_run_id (UUID | None) – The parent run ID. Defaults to None.
metadata (dict[str, Any] | None) – The metadata for the run. Defaults to None.
run_type (str | None) – The type of the run. Defaults to None.
name (str | None) – The name of the run.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_chat_model_start(serialized: dict[str, Any], messages: list[list[BaseMessage]], *, run_id: UUID, tags: list[str] | None = None, parent_run_id: UUID | None = None, metadata: dict[str, Any] | None = None, name: str | None = None, **kwargs: Any) RunTree #
Start a trace for an LLM run.
- Parameters:
serialized (dict[str, Any]) – The serialized model.
messages (list[list[BaseMessage]]) – The messages to start the chat with.
run_id (UUID) – The run ID.
tags (list[str] | None) – The tags for the run. Defaults to None.
parent_run_id (UUID | None) – The parent run ID. Defaults to None.
metadata (dict[str, Any] | None) – The metadata for the run. Defaults to None.
name (str | None) – The name of the run.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_custom_event(name: str, data: Any, *, run_id: UUID, tags: list[str] | None = None, metadata: dict[str, Any] | None = None, **kwargs: Any) Any #
Override to define a handler for a custom event.
- Parameters:
name (str) – The name of the custom event.
data (Any) – The data for the custom event. Format will match the format specified by the user.
run_id (UUID) – The ID of the run.
tags (list[str] | None) – The tags associated with the custom event (includes inherited tags).
metadata (dict[str, Any] | None) – The metadata associated with the custom event (includes inherited metadata).
kwargs (Any)
- Return type:
Any
Added in version 0.2.15.
- on_llm_end(response: LLMResult, *, run_id: UUID, **kwargs: Any) RunTree #
End a trace for an LLM run.
- Parameters:
response (LLMResult) – The response.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_llm_error(error: BaseException, *, run_id: UUID, **kwargs: Any) RunTree #
Handle an error for an LLM run.
- Parameters:
error (BaseException) – The error.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_llm_new_token(token: str, *, chunk: GenerationChunk | ChatGenerationChunk | None = None, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any) RunTree #
Run on new LLM token. Only available when streaming is enabled.
- Parameters:
token (str) – The token.
chunk (GenerationChunk | ChatGenerationChunk | None) – The chunk. Defaults to None.
run_id (UUID) – The run ID.
parent_run_id (UUID | None) – The parent run ID. Defaults to None.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_llm_start(serialized: dict[str, Any], prompts: list[str], *, run_id: UUID, tags: list[str] | None = None, parent_run_id: UUID | None = None, metadata: dict[str, Any] | None = None, name: str | None = None, **kwargs: Any) RunTree #
Start a trace for an LLM run.
- Parameters:
serialized (dict[str, Any]) – The serialized model.
prompts (list[str]) – The prompts to start the LLM with.
run_id (UUID) – The run ID.
tags (list[str] | None) – The tags for the run. Defaults to None.
parent_run_id (UUID | None) – The parent run ID. Defaults to None.
metadata (dict[str, Any] | None) – The metadata for the run. Defaults to None.
name (str | None) – The name of the run.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_retriever_end(documents: Sequence[Document], *, run_id: UUID, **kwargs: Any) Run #
Run when the Retriever ends running.
- Parameters:
documents (Sequence[Document]) – The documents.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
Run
- on_retriever_error(error: BaseException, *, run_id: UUID, **kwargs: Any) RunTree #
Run when Retriever errors.
- Parameters:
error (BaseException) – The error.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_retriever_start(serialized: dict[str, Any], query: str, *, run_id: UUID, parent_run_id: UUID | None = None, tags: list[str] | None = None, metadata: dict[str, Any] | None = None, name: str | None = None, **kwargs: Any) RunTree #
Run when the Retriever starts running.
- Parameters:
serialized (dict[str, Any]) – The serialized retriever.
query (str) – The query.
run_id (UUID) – The run ID.
parent_run_id (UUID | None) – The parent run ID. Defaults to None.
tags (list[str] | None) – The tags for the run. Defaults to None.
metadata (dict[str, Any] | None) – The metadata for the run. Defaults to None.
name (str | None) – The name of the run.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_retry(retry_state: RetryCallState, *, run_id: UUID, **kwargs: Any) RunTree #
Run on retry.
- Parameters:
retry_state (RetryCallState) – The retry state.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_text(text: str, *, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any) Any #
Run on an arbitrary text.
- Parameters:
text (str) – The text.
run_id (UUID) – The run ID. This is the ID of the current run.
parent_run_id (UUID) – The parent run ID. This is the ID of the parent run.
kwargs (Any) – Additional keyword arguments.
- Return type:
Any
- on_tool_end(output: Any, *, run_id: UUID, **kwargs: Any) RunTree #
End a trace for a tool run.
- Parameters:
output (Any) – The output for the tool.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_tool_error(error: BaseException, *, run_id: UUID, **kwargs: Any) RunTree #
Handle an error for a tool run.
- Parameters:
error (BaseException) – The error.
run_id (UUID) – The run ID.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- on_tool_start(serialized: dict[str, Any], input_str: str, *, run_id: UUID, tags: list[str] | None = None, parent_run_id: UUID | None = None, metadata: dict[str, Any] | None = None, name: str | None = None, inputs: dict[str, Any] | None = None, **kwargs: Any) RunTree #
Start a trace for a tool run.
- Parameters:
serialized (dict[str, Any]) – The serialized tool.
input_str (str) – The input string.
run_id (UUID) – The run ID.
tags (list[str] | None) – The tags for the run. Defaults to None.
parent_run_id (UUID | None) – The parent run ID. Defaults to None.
metadata (dict[str, Any] | None) – The metadata for the run. Defaults to None.
name (str | None) – The name of the run.
inputs (dict[str, Any] | None) – The inputs for the tool.
kwargs (Any) – Additional arguments.
- Returns:
The run.
- Return type:
RunTree
- send(*ops: dict[str, Any]) bool [source]#
Send a patch to the stream, return False if the stream is closed.
- Parameters:
*ops (dict[str, Any]) – The operations to send to the stream.
- Returns:
- True if the patch was sent successfully, False if the stream
is closed.
- Return type:
bool
- async tap_output_aiter(run_id: UUID, output: AsyncIterator[T]) AsyncIterator[T] [source]#
Tap an output async iterator to stream its values to the log.
- Parameters:
run_id (UUID) – The ID of the run.
output (AsyncIterator[T]) – The output async iterator.
- Yields:
T – The output value.
- Return type:
AsyncIterator[T]