Toggle Menu
Prev Up Next

# `langchain_community.callbacks.streamlit.streamlit_callback_handler`.StreamlitCallbackHandler

class langchain_community.callbacks.streamlit.streamlit_callback_handler.StreamlitCallbackHandler(parent_container: DeltaGenerator, *, max_thought_containers: int = 4, expand_new_thoughts: bool = True, collapse_completed_thoughts: bool = True, thought_labeler: Optional[LLMThoughtLabeler] = None)

  Callback handler that writes to a Streamlit app.

  Create a StreamlitCallbackHandler instance.

  Parameters

    - parent_container (DeltaGenerator) – The st.container that will contain all the Streamlit elements that the Handler creates.

    - max_thought_containers (int) – The max number of completed LLM thought containers to show at once. When this threshold is reached, a new thought will cause the oldest thoughts to be collapsed into a “History” expander. Defaults to 4.

    - expand_new_thoughts (bool) – Each LLM “thought” gets its own st.expander. This param controls whether that expander is expanded by default. Defaults to True.

    - collapse_completed_thoughts (bool) – If True, LLM thought expanders will be collapsed when completed. Defaults to True.

    - thought_labeler (Optional[LLMThoughtLabeler]) – An optional custom LLMThoughtLabeler instance. If unspecified, the handler will use the default thought labeling logic. Defaults to None.

  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_llm` | Whether to ignore LLM callbacks.
  `ignore_retriever` | Whether to ignore retriever callbacks.
  `ignore_retry` | Whether to ignore retry callbacks.
  `raise_error` |
  `run_inline` |

  Methods

  `__init__`(parent_container, *[, ...]) | Create a StreamlitCallbackHandler instance.
  `on_agent_action`(action[, color]) | Run on agent action.
  `on_agent_finish`(finish[, color]) | Run on agent end.
  `on_chain_end`(outputs, **kwargs) | Run when chain ends running.
  `on_chain_error`(error, **kwargs) | Run when chain errors.
  `on_chain_start`(serialized, inputs, **kwargs) | Run when chain starts running.
  `on_chat_model_start`(serialized, messages, *, ...) | Run when a chat model starts running.
  `on_llm_end`(response, **kwargs) | Run when LLM ends running.
  `on_llm_error`(error, **kwargs) | Run when LLM errors. :param error: The error that occurred. :type error: BaseException :param kwargs: Additional keyword arguments. - response (LLMResult): The response which was generated before the error occurred. :type kwargs: Any.
  `on_llm_new_token`(token, **kwargs) | Run on new LLM token.
  `on_llm_start`(serialized, prompts, **kwargs) | Run when LLM starts running.
  `on_retriever_end`(documents, *, run_id[, ...]) | Run when Retriever ends running.
  `on_retriever_error`(error, *, run_id[, ...]) | Run when Retriever errors.
  `on_retriever_start`(serialized, query, *, run_id) | Run when Retriever starts running.
  `on_retry`(retry_state, *, run_id[, parent_run_id]) | Run on a retry event.
  `on_text`(text[, color, end]) | Run on arbitrary text.
  `on_tool_end`(output[, color, ...]) | Run when tool ends running.
  `on_tool_error`(error, **kwargs) | Run when tool errors.
  `on_tool_start`(serialized, input_str, **kwargs) | Run when tool starts running.

  __init__(parent_container: DeltaGenerator, *, max_thought_containers: int = 4, expand_new_thoughts: bool = True, collapse_completed_thoughts: bool = True, thought_labeler: Optional[LLMThoughtLabeler] = None)

    Create a StreamlitCallbackHandler instance.

    Parameters

      - parent_container (DeltaGenerator) – The st.container that will contain all the Streamlit elements that the Handler creates.

      - max_thought_containers (int) – The max number of completed LLM thought containers to show at once. When this threshold is reached, a new thought will cause the oldest thoughts to be collapsed into a “History” expander. Defaults to 4.

      - expand_new_thoughts (bool) – Each LLM “thought” gets its own st.expander. This param controls whether that expander is expanded by default. Defaults to True.

      - collapse_completed_thoughts (bool) – If True, LLM thought expanders will be collapsed when completed. Defaults to True.

      - thought_labeler (Optional[LLMThoughtLabeler]) – An optional custom LLMThoughtLabeler instance. If unspecified, the handler will use the default thought labeling logic. Defaults to None.

  on_agent_action(action: AgentAction, color: Optional[str] = None, **kwargs: Any) → Any

    Run on agent action.

    Parameters

      - action (AgentAction) –

      - color (Optional[str]) –

      - kwargs (Any) –

    Return type

      Any

  on_agent_finish(finish: AgentFinish, color: Optional[str] = None, **kwargs: Any) → None

    Run on agent end.

    Parameters

      - finish (AgentFinish) –

      - color (Optional[str]) –

      - kwargs (Any) –

    Return type

      None

  on_chain_end(outputs: Dict[str, Any], **kwargs: Any) → None

    Run when chain ends running.

    Parameters

      - outputs (Dict[str, Any]) –

      - kwargs (Any) –

    Return type

      None

  on_chain_error(error: BaseException, **kwargs: Any) → None

    Run when chain errors.

    Parameters

      - error (BaseException) –

      - kwargs (Any) –

    Return type

      None

  on_chain_start(serialized: Dict[str, Any], inputs: Dict[str, Any], **kwargs: Any) → None

    Run when chain starts running.

    Parameters

      - serialized (Dict[str, Any]) –

      - inputs (Dict[str, Any]) –

      - kwargs (Any) –

    Return type

      None

  on_chat_model_start(serialized: Dict[str, Any], messages: List[List[BaseMessage]], *, run_id: UUID, parent_run_id: Optional[UUID] = None, tags: Optional[List[str]] = None, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) → Any

    Run when a chat model starts running.

    ATTENTION: This method is called for chat models. If you’re implementing

      a handler for a non-chat model, you should use on_llm_start instead.

    Parameters

      - serialized (Dict[str, Any]) –

      - messages (List[List[BaseMessage]]) –

      - run_id (UUID) –

      - parent_run_id (Optional[UUID]) –

      - tags (Optional[List[str]]) –

      - metadata (Optional[Dict[str, Any]]) –

      - kwargs (Any) –

    Return type

      Any

  on_llm_end(response: LLMResult, **kwargs: Any) → None

    Run when LLM ends running.

    Parameters

      - response (LLMResult) –

      - kwargs (Any) –

    Return type

      None

  on_llm_error(error: BaseException, **kwargs: Any) → None

    Run when LLM errors. :param error: The error that occurred. :type error: BaseException :param kwargs: Additional keyword arguments.

    > - response (LLMResult): The response which was generated before

    >     the error occurred.

    Parameters

      - error (BaseException) –

      - kwargs (Any) –

    Return type

      None

  on_llm_new_token(token: str, **kwargs: Any) → None

    Run on new LLM token. Only available when streaming is enabled.

    Parameters

      - token (str) – The new token.

      - chunk (GenerationChunk | ChatGenerationChunk) – The new generated chunk,

      - information. (containing content and other) –

      - kwargs (Any) –

    Return type

      None

  on_llm_start(serialized: Dict[str, Any], prompts: List[str], **kwargs: Any) → None

    Run when LLM starts running.

    ATTENTION: This method is called for non-chat models (regular LLMs). If

      you’re implementing a handler for a chat model, you should use on_chat_model_start instead.

    Parameters

      - serialized (Dict[str, Any]) –

      - prompts (List[str]) –

      - kwargs (Any) –

    Return type

      None

  on_retriever_end(documents: Sequence[Document], *, run_id: UUID, parent_run_id: Optional[UUID] = None, **kwargs: Any) → Any

    Run when Retriever ends running.

    Parameters

      - documents (Sequence[Document]) –

      - run_id (UUID) –

      - parent_run_id (Optional[UUID]) –

      - kwargs (Any) –

    Return type

      Any

  on_retriever_error(error: BaseException, *, run_id: UUID, parent_run_id: Optional[UUID] = None, **kwargs: Any) → Any

    Run when Retriever errors.

    Parameters

      - error (BaseException) –

      - run_id (UUID) –

      - parent_run_id (Optional[UUID]) –

      - kwargs (Any) –

    Return type

      Any

  on_retriever_start(serialized: Dict[str, Any], query: str, *, run_id: UUID, parent_run_id: Optional[UUID] = None, tags: Optional[List[str]] = None, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) → Any

    Run when Retriever starts running.

    Parameters

      - serialized (Dict[str, Any]) –

      - query (str) –

      - run_id (UUID) –

      - parent_run_id (Optional[UUID]) –

      - tags (Optional[List[str]]) –

      - metadata (Optional[Dict[str, Any]]) –

      - kwargs (Any) –

    Return type

      Any

  on_retry(retry_state: RetryCallState, *, run_id: UUID, parent_run_id: Optional[UUID] = None, **kwargs: Any) → Any

    Run on a retry event.

    Parameters

      - retry_state (RetryCallState) –

      - run_id (UUID) –

      - parent_run_id (Optional[UUID]) –

      - kwargs (Any) –

    Return type

      Any

  on_text(text: str, color: Optional[str] = None, end: str = '', **kwargs: Any) → None

    Run on arbitrary text.

    Parameters

      - text (str) –

      - color (Optional[str]) –

      - end (str) –

      - kwargs (Any) –

    Return type

      None

  on_tool_end(output: Any, color: Optional[str] = None, observation_prefix: Optional[str] = None, llm_prefix: Optional[str] = None, **kwargs: Any) → None

    Run when tool ends running.

    Parameters

      - output (Any) –

      - color (Optional[str]) –

      - observation_prefix (Optional[str]) –

      - llm_prefix (Optional[str]) –

      - kwargs (Any) –

    Return type

      None

  on_tool_error(error: BaseException, **kwargs: Any) → None

    Run when tool errors.

    Parameters

      - error (BaseException) –

      - kwargs (Any) –

    Return type

      None

  on_tool_start(serialized: Dict[str, Any], input_str: str, **kwargs: Any) → None

    Run when tool starts running.

    Parameters

      - serialized (Dict[str, Any]) –

      - input_str (str) –

      - kwargs (Any) –

    Return type

      None

# Examples using StreamlitCallbackHandler

- GPT4All

- Streamlit