libs/core/langchain_core/callbacks/streaming_stdout.py PYTHON 155 lines View on github.com → Search inside
1"""Callback Handler streams to stdout on new llm token."""23from __future__ import annotations45import sys6from typing import TYPE_CHECKING, Any78from typing_extensions import override910from langchain_core.callbacks.base import BaseCallbackHandler1112if TYPE_CHECKING:13    from langchain_core.agents import AgentAction, AgentFinish14    from langchain_core.messages import BaseMessage15    from langchain_core.outputs import LLMResult161718class StreamingStdOutCallbackHandler(BaseCallbackHandler):19    """Callback handler for streaming.2021    !!! warning "Only works with LLMs that support streaming."22    """2324    def on_llm_start(25        self, serialized: dict[str, Any], prompts: list[str], **kwargs: Any26    ) -> None:27        """Run when LLM starts running.2829        Args:30            serialized: The serialized LLM.31            prompts: The prompts to run.32            **kwargs: Additional keyword arguments.33        """3435    def on_chat_model_start(36        self,37        serialized: dict[str, Any],38        messages: list[list[BaseMessage]],39        **kwargs: Any,40    ) -> None:41        """Run when LLM starts running.4243        Args:44            serialized: The serialized LLM.45            messages: The messages to run.46            **kwargs: Additional keyword arguments.47        """4849    @override50    def on_llm_new_token(51        self, token: str | list[str | dict[str, Any]], **kwargs: Any52    ) -> None:53        """Run on new LLM token. Only available when streaming is enabled.5455        Args:56            token: The new token, or a list of content blocks.57            **kwargs: Additional keyword arguments.58        """59        sys.stdout.write(str(token))60        sys.stdout.flush()6162    def on_llm_end(self, response: LLMResult, **kwargs: Any) -> None:63        """Run when LLM ends running.6465        Args:66            response: The response from the LLM.67            **kwargs: Additional keyword arguments.68        """6970    def on_llm_error(self, error: BaseException, **kwargs: Any) -> None:71        """Run when LLM errors.7273        Args:74            error: The error that occurred.75            **kwargs: Additional keyword arguments.76        """7778    def on_chain_start(79        self, serialized: dict[str, Any], inputs: dict[str, Any], **kwargs: Any80    ) -> None:81        """Run when a chain starts running.8283        Args:84            serialized: The serialized chain.85            inputs: The inputs to the chain.86            **kwargs: Additional keyword arguments.87        """8889    def on_chain_end(self, outputs: dict[str, Any], **kwargs: Any) -> None:90        """Run when a chain ends running.9192        Args:93            outputs: The outputs of the chain.94            **kwargs: Additional keyword arguments.95        """9697    def on_chain_error(self, error: BaseException, **kwargs: Any) -> None:98        """Run when chain errors.99100        Args:101            error: The error that occurred.102            **kwargs: Additional keyword arguments.103        """104105    def on_tool_start(106        self, serialized: dict[str, Any], input_str: str, **kwargs: Any107    ) -> None:108        """Run when the tool starts running.109110        Args:111            serialized: The serialized tool.112            input_str: The input string.113            **kwargs: Additional keyword arguments.114        """115116    def on_agent_action(self, action: AgentAction, **kwargs: Any) -> Any:117        """Run on agent action.118119        Args:120            action: The agent action.121            **kwargs: Additional keyword arguments.122        """123124    def on_tool_end(self, output: Any, **kwargs: Any) -> None:125        """Run when tool ends running.126127        Args:128            output: The output of the tool.129            **kwargs: Additional keyword arguments.130        """131132    def on_tool_error(self, error: BaseException, **kwargs: Any) -> None:133        """Run when tool errors.134135        Args:136            error: The error that occurred.137            **kwargs: Additional keyword arguments.138        """139140    def on_text(self, text: str, **kwargs: Any) -> None:141        """Run on an arbitrary text.142143        Args:144            text: The text to print.145            **kwargs: Additional keyword arguments.146        """147148    def on_agent_finish(self, finish: AgentFinish, **kwargs: Any) -> None:149        """Run on the agent end.150151        Args:152            finish: The agent finish.153            **kwargs: Additional keyword arguments.154        """

Code quality findings 5

Ensure functions have docstrings for documentation
missing-docstring
def on_llm_start(
Ensure functions have docstrings for documentation
missing-docstring
def on_chat_model_start(
Ensure functions have docstrings for documentation
missing-docstring
def on_llm_new_token(
Ensure functions have docstrings for documentation
missing-docstring
def on_chain_start(
Ensure functions have docstrings for documentation
missing-docstring
def on_tool_start(

Get this view in your editor

Same data, no extra tab — call code_get_file + code_get_findings over MCP from Claude/Cursor/Copilot.