libs/core/langchain_core/callbacks/streaming_stdout.py PYTHON 153 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(self, token: str, **kwargs: Any) -> None:51        """Run on new LLM token. Only available when streaming is enabled.5253        Args:54            token: The new token.55            **kwargs: Additional keyword arguments.56        """57        sys.stdout.write(token)58        sys.stdout.flush()5960    def on_llm_end(self, response: LLMResult, **kwargs: Any) -> None:61        """Run when LLM ends running.6263        Args:64            response: The response from the LLM.65            **kwargs: Additional keyword arguments.66        """6768    def on_llm_error(self, error: BaseException, **kwargs: Any) -> None:69        """Run when LLM errors.7071        Args:72            error: The error that occurred.73            **kwargs: Additional keyword arguments.74        """7576    def on_chain_start(77        self, serialized: dict[str, Any], inputs: dict[str, Any], **kwargs: Any78    ) -> None:79        """Run when a chain starts running.8081        Args:82            serialized: The serialized chain.83            inputs: The inputs to the chain.84            **kwargs: Additional keyword arguments.85        """8687    def on_chain_end(self, outputs: dict[str, Any], **kwargs: Any) -> None:88        """Run when a chain ends running.8990        Args:91            outputs: The outputs of the chain.92            **kwargs: Additional keyword arguments.93        """9495    def on_chain_error(self, error: BaseException, **kwargs: Any) -> None:96        """Run when chain errors.9798        Args:99            error: The error that occurred.100            **kwargs: Additional keyword arguments.101        """102103    def on_tool_start(104        self, serialized: dict[str, Any], input_str: str, **kwargs: Any105    ) -> None:106        """Run when the tool starts running.107108        Args:109            serialized: The serialized tool.110            input_str: The input string.111            **kwargs: Additional keyword arguments.112        """113114    def on_agent_action(self, action: AgentAction, **kwargs: Any) -> Any:115        """Run on agent action.116117        Args:118            action: The agent action.119            **kwargs: Additional keyword arguments.120        """121122    def on_tool_end(self, output: Any, **kwargs: Any) -> None:123        """Run when tool ends running.124125        Args:126            output: The output of the tool.127            **kwargs: Additional keyword arguments.128        """129130    def on_tool_error(self, error: BaseException, **kwargs: Any) -> None:131        """Run when tool errors.132133        Args:134            error: The error that occurred.135            **kwargs: Additional keyword arguments.136        """137138    def on_text(self, text: str, **kwargs: Any) -> None:139        """Run on an arbitrary text.140141        Args:142            text: The text to print.143            **kwargs: Additional keyword arguments.144        """145146    def on_agent_finish(self, finish: AgentFinish, **kwargs: Any) -> None:147        """Run on the agent end.148149        Args:150            finish: The agent finish.151            **kwargs: Additional keyword arguments.152        """

Code quality findings 4

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_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.