跳转到内容

回调

langchain_core.callbacks.base.AsyncCallbackHandler

Bases: BaseCallbackHandler

LangChain 的异步回调处理器。

方法 描述
on_llm_start

在模型开始运行时运行。

on_chat_model_start

在聊天模型开始运行时运行。

on_llm_new_token

在新输出令牌上运行。仅在启用流式传输时可用。

on_llm_end

在模型结束运行时运行。

on_llm_error

在 LLM 发生错误时运行。

on_chain_start

在链开始运行时运行。

on_chain_end

在链结束运行时运行。

on_chain_error

在链发生错误时运行。

on_tool_start

在工具开始运行时运行。

on_tool_end

在工具结束运行时运行。

on_tool_error

在工具发生错误时运行。

on_text

在任意文本上运行。

on_retry

在重试事件上运行。

on_agent_action

在代理操作上运行。

on_agent_finish

在代理结束时运行。

on_retriever_start

在检索器开始时运行。

on_retriever_end

在检索器结束时运行。

on_retriever_error

在检索器发生错误时运行。

on_custom_event

重写以定义自定义事件的处理器。

raise_error class-attribute instance-attribute

raise_error: bool = False

发生异常时是否引发错误。

run_inline class-attribute instance-attribute

run_inline: bool = False

是否内联运行回调。

ignore_llm property

ignore_llm: bool

是否忽略 LLM 回调。

ignore_retry property

ignore_retry: bool

是否忽略重试回调。

ignore_chain property

ignore_chain: bool

是否忽略链回调。

ignore_agent property

ignore_agent: bool

是否忽略代理回调。

ignore_retriever property

ignore_retriever: bool

是否忽略检索器回调。

ignore_chat_model property

ignore_chat_model: bool

是否忽略聊天模型回调。

ignore_custom_event property

ignore_custom_event: bool

忽略自定义事件。

on_llm_start async

on_llm_start(
    serialized: dict[str, Any],
    prompts: list[str],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> None

在模型开始运行时运行。

警告

此方法用于非聊天模型(常规 LLM)。如果您正在为聊天模型实现处理器,应改用 on_chat_model_start

参数 描述
serialized

序列化的 LLM。

类型: dict[str, Any]

prompts

提示。

类型: list[str]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chat_model_start async

on_chat_model_start(
    serialized: dict[str, Any],
    messages: list[list[BaseMessage]],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在聊天模型开始运行时运行。

警告

此方法用于聊天模型。如果您正在为非聊天模型实现处理器,应改用 on_llm_start

参数 描述
serialized

序列化的聊天模型。

类型: dict[str, Any]

messages

消息。

类型: list[list[BaseMessage]]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_new_token async

on_llm_new_token(
    token: str,
    *,
    chunk: GenerationChunk | ChatGenerationChunk | None = None,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在新输出令牌上运行。仅在启用流式传输时可用。

适用于聊天模型和非聊天模型(传统 LLM)。

参数 描述
token

新的令牌。

类型: str

chunk

新生成的块,包含内容和其他信息。

类型: GenerationChunk | ChatGenerationChunk | None 默认值: None

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_end async

on_llm_end(
    response: LLMResult,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在模型结束运行时运行。

参数 描述
response

已生成的响应。

类型: LLMResult

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_error async

on_llm_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在 LLM 发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。 - response (LLMResult): 错误发生前生成的响应。

类型: Any 默认值: {}

on_chain_start async

on_chain_start(
    serialized: dict[str, Any],
    inputs: dict[str, Any],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> None

在链开始运行时运行。

参数 描述
serialized

序列化的链。

类型: dict[str, Any]

inputs

输入。

类型: dict[str, Any]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_end async

on_chain_end(
    outputs: dict[str, Any],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在链结束运行时运行。

参数 描述
outputs

链的输出。

类型: dict[str, Any]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_error async

on_chain_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在链发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_start async

on_tool_start(
    serialized: dict[str, Any],
    input_str: str,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    inputs: dict[str, Any] | None = None,
    **kwargs: Any,
) -> None

在工具开始运行时运行。

参数 描述
serialized

序列化的工具。

类型: dict[str, Any]

input_str

输入字符串。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

inputs

输入。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_end async

on_tool_end(
    output: Any,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在工具结束运行时运行。

参数 描述
output

工具的输出。

类型: Any

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_error async

on_tool_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在工具发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_text async

on_text(
    text: str,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在任意文本上运行。

参数 描述
text

文本。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retry async

on_retry(
    retry_state: RetryCallState,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在重试事件上运行。

参数 描述
retry_state

重试状态。

类型: RetryCallState

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_agent_action async

on_agent_action(
    action: AgentAction,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在代理操作上运行。

参数 描述
action

代理操作。

类型: AgentAction

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_agent_finish async

on_agent_finish(
    finish: AgentFinish,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在代理结束时运行。

参数 描述
finish

代理结束。

类型: AgentFinish

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_start async

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,
    **kwargs: Any,
) -> None

在检索器开始时运行。

参数 描述
serialized

序列化的检索器。

类型: dict[str, Any]

query

查询。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_end async

on_retriever_end(
    documents: Sequence[Document],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在检索器结束时运行。

参数 描述
documents

检索到的文档。

类型: Sequence[Document]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_error async

on_retriever_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    **kwargs: Any,
) -> None

在检索器发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_custom_event async

on_custom_event(
    name: str,
    data: Any,
    *,
    run_id: UUID,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> None

重写以定义自定义事件的处理器。

参数 描述
name

自定义事件的名称。

类型: str

data

自定义事件的数据。格式将与用户指定的格式匹配。

类型: Any

run_id

运行的 ID。

类型: UUID

tags

与自定义事件关联的标签(包括继承的标签)。

类型: list[str] | None 默认值: None

metadata

与自定义事件关联的元数据(包括继承的元数据)。

类型: dict[str, Any] | None 默认值: None

langchain_core.callbacks.base.BaseCallbackHandler

Bases: LLMManagerMixin, ChainManagerMixin, ToolManagerMixin, RetrieverManagerMixin, CallbackManagerMixin, RunManagerMixin

LangChain 的基本回调处理器。

方法 描述
on_text

在任意文本上运行。

on_retry

在重试事件上运行。

on_custom_event

重写以定义自定义事件的处理器。

on_llm_start

在 LLM 开始运行时运行。

on_chat_model_start

在聊天模型开始运行时运行。

on_retriever_start

在检索器开始运行时运行。

on_chain_start

在链开始运行时运行。

on_tool_start

在工具开始运行时运行。

on_retriever_error

在检索器发生错误时运行。

on_retriever_end

在检索器结束运行时运行。

on_tool_end

在工具结束运行时运行。

on_tool_error

在工具发生错误时运行。

on_chain_end

在链结束运行时运行。

on_chain_error

在链发生错误时运行。

on_agent_action

在代理操作上运行。

on_agent_finish

在代理结束时运行。

on_llm_new_token

在新输出令牌上运行。仅在启用流式传输时可用。

on_llm_end

在 LLM 结束运行时运行。

on_llm_error

在 LLM 发生错误时运行。

raise_error class-attribute instance-attribute

raise_error: bool = False

发生异常时是否引发错误。

run_inline class-attribute instance-attribute

run_inline: bool = False

是否内联运行回调。

ignore_llm property

ignore_llm: bool

是否忽略 LLM 回调。

ignore_retry property

ignore_retry: bool

是否忽略重试回调。

ignore_chain property

ignore_chain: bool

是否忽略链回调。

ignore_agent property

ignore_agent: bool

是否忽略代理回调。

ignore_retriever property

ignore_retriever: bool

是否忽略检索器回调。

ignore_chat_model property

ignore_chat_model: bool

是否忽略聊天模型回调。

ignore_custom_event property

ignore_custom_event: bool

忽略自定义事件。

on_text

on_text(
    text: str, *, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any
) -> Any

在任意文本上运行。

参数 描述
text

文本。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retry

on_retry(
    retry_state: RetryCallState,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在重试事件上运行。

参数 描述
retry_state

重试状态。

类型: RetryCallState

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_custom_event

on_custom_event(
    name: str,
    data: Any,
    *,
    run_id: UUID,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

重写以定义自定义事件的处理器。

参数 描述
name

自定义事件的名称。

类型: str

data

自定义事件的数据。格式将与用户指定的格式匹配。

类型: Any

run_id

运行的 ID。

类型: UUID

tags

与自定义事件关联的标签(包括继承的标签)。

类型: list[str] | None 默认值: None

metadata

与自定义事件关联的元数据(包括继承的元数据)。

类型: dict[str, Any] | None 默认值: None

on_llm_start

on_llm_start(
    serialized: dict[str, Any],
    prompts: list[str],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在 LLM 开始运行时运行。

警告

此方法用于非聊天模型(常规 LLM)。如果您正在为聊天模型实现处理器,应改用 on_chat_model_start

参数 描述
serialized

序列化的 LLM。

类型: dict[str, Any]

prompts

提示。

类型: list[str]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chat_model_start

on_chat_model_start(
    serialized: dict[str, Any],
    messages: list[list[BaseMessage]],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在聊天模型开始运行时运行。

警告

此方法用于聊天模型。如果您正在为非聊天模型实现处理器,应改用 on_llm_start

参数 描述
serialized

序列化的聊天模型。

类型: dict[str, Any]

messages

消息。

类型: list[list[BaseMessage]]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_start

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,
    **kwargs: Any,
) -> Any

在检索器开始运行时运行。

参数 描述
serialized

序列化的检索器。

类型: dict[str, Any]

query

查询。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_start

on_chain_start(
    serialized: dict[str, Any],
    inputs: dict[str, Any],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在链开始运行时运行。

参数 描述
serialized

序列化的链。

类型: dict[str, Any]

inputs

输入。

类型: dict[str, Any]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_start

on_tool_start(
    serialized: dict[str, Any],
    input_str: str,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    inputs: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在工具开始运行时运行。

参数 描述
serialized

序列化的链。

类型: dict[str, Any]

input_str

输入字符串。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

inputs

输入。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_error

on_retriever_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在检索器发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_end

on_retriever_end(
    documents: Sequence[Document],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在检索器结束运行时运行。

参数 描述
documents

检索到的文档。

类型: Sequence[Document]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_end

on_tool_end(
    output: Any, *, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any
) -> Any

在工具结束运行时运行。

参数 描述
output

工具的输出。

类型: Any

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_error

on_tool_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在工具发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_end

on_chain_end(
    outputs: dict[str, Any],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在链结束运行时运行。

参数 描述
outputs

链的输出。

类型: dict[str, Any]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_error

on_chain_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在链发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_agent_action

on_agent_action(
    action: AgentAction,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在代理操作上运行。

参数 描述
action

代理操作。

类型: AgentAction

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_agent_finish

on_agent_finish(
    finish: AgentFinish,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在代理结束时运行。

参数 描述
finish

代理结束。

类型: AgentFinish

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_new_token

on_llm_new_token(
    token: str,
    *,
    chunk: GenerationChunk | ChatGenerationChunk | None = None,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在新输出令牌上运行。仅在启用流式传输时可用。

适用于聊天模型和非聊天模型(传统 LLM)。

参数 描述
token

新的令牌。

类型: str

chunk

新生成的块,包含内容和其他信息。

类型: GenerationChunk | ChatGenerationChunk | None 默认值: None

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_end

on_llm_end(
    response: LLMResult,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在 LLM 结束运行时运行。

参数 描述
response

已生成的响应。

类型: LLMResult

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_error

on_llm_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在 LLM 发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

langchain_core.callbacks.manager.AsyncCallbackManager

Bases: BaseCallbackManager

处理来自 LangChain 的回调的异步回调管理器。

方法 描述
on_llm_start

在 LLM 开始运行时运行。

on_chat_model_start

LLM 开始运行时异步运行。

on_chain_start

链开始运行时异步运行。

on_tool_start

在工具开始运行时运行。

on_custom_event

向处理器分派一个临时事件(异步版本)。

on_retriever_start

在检索器开始运行时运行。

configure

配置异步回调管理器。

__init__

初始化回调管理器。

copy

返回回调管理器的副本。

merge

将回调管理器与另一个回调管理器合并。

add_handler

向回调管理器添加一个处理器。

remove_handler

从回调管理器中删除一个处理器。

set_handlers

将处理器设置为回调管理器上唯一的处理器。

set_handler

将处理器设置为回调管理器上唯一的处理器。

add_tags

向回调管理器添加标签。

remove_tags

从回调管理器中删除标签。

add_metadata

向回调管理器添加元数据。

remove_metadata

从回调管理器中删除元数据。

is_async property

is_async: bool

返回处理器是否为异步。

on_llm_start async

on_llm_start(
    serialized: dict[str, Any],
    prompts: list[str],
    run_id: UUID | None = None,
    **kwargs: Any,
) -> list[AsyncCallbackManagerForLLMRun]

在 LLM 开始运行时运行。

参数 描述
serialized

序列化的 LLM。

类型: dict[str, Any]

prompts

提示列表。

类型: list[str]

run_id

运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[AsyncCallbackManagerForLLMRun]

异步回调管理器列表,每个 LLM 运行对应

list[AsyncCallbackManagerForLLMRun]

每个提示。

on_chat_model_start async

on_chat_model_start(
    serialized: dict[str, Any],
    messages: list[list[BaseMessage]],
    run_id: UUID | None = None,
    **kwargs: Any,
) -> list[AsyncCallbackManagerForLLMRun]

LLM 开始运行时异步运行。

参数 描述
serialized

序列化的 LLM。

类型: dict[str, Any]

messages

消息列表。

类型: list[list[BaseMessage]]

run_id

运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[AsyncCallbackManagerForLLMRun]

异步回调管理器列表,每个 LLM 运行对应

list[AsyncCallbackManagerForLLMRun]

每个内部消息列表。

on_chain_start async

on_chain_start(
    serialized: dict[str, Any] | None,
    inputs: dict[str, Any] | Any,
    run_id: UUID | None = None,
    **kwargs: Any,
) -> AsyncCallbackManagerForChainRun

链开始运行时异步运行。

参数 描述
serialized

序列化的链。

类型: dict[str, Any] | None

inputs

链的输入。

类型: dict[str, Any] | Any

run_id

运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
AsyncCallbackManagerForChainRun

链运行的异步回调管理器。

on_tool_start async

on_tool_start(
    serialized: dict[str, Any] | None,
    input_str: str,
    run_id: UUID | None = None,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> AsyncCallbackManagerForToolRun

在工具开始运行时运行。

参数 描述
serialized

序列化的工具。

类型: dict[str, Any] | None

input_str

工具的输入。

类型: str

run_id

运行的 ID。

类型: UUID | None 默认值: None

parent_run_id

父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
AsyncCallbackManagerForToolRun

工具运行的异步回调管理器。

on_custom_event async

on_custom_event(
    name: str, data: Any, run_id: UUID | None = None, **kwargs: Any
) -> None

向处理器分派一个临时事件(异步版本)。

此事件不应在任何内部 LangChain 代码中使用。该事件专为库用户设计,用于分派适合其应用程序的自定义事件。

参数 描述
name

临时事件的名称。

类型: str

data

临时事件的数据。

类型: Any

run_id

运行的 ID。

类型: UUID | None 默认值: None

引发 描述
ValueError

如果传递了额外的关键字参数。

on_retriever_start async

on_retriever_start(
    serialized: dict[str, Any] | None,
    query: str,
    run_id: UUID | None = None,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> AsyncCallbackManagerForRetrieverRun

在检索器开始运行时运行。

参数 描述
serialized

序列化的检索器。

类型: dict[str, Any] | None

query

查询。

类型: str

run_id

运行的 ID。

类型: UUID | None 默认值: None

parent_run_id

父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
AsyncCallbackManagerForRetrieverRun

检索器运行的异步回调管理器。

configure classmethod

configure(
    inheritable_callbacks: Callbacks = None,
    local_callbacks: Callbacks = None,
    verbose: bool = False,
    inheritable_tags: list[str] | None = None,
    local_tags: list[str] | None = None,
    inheritable_metadata: dict[str, Any] | None = None,
    local_metadata: dict[str, Any] | None = None,
) -> AsyncCallbackManager

配置异步回调管理器。

参数 描述
inheritable_callbacks

可继承的回调。

类型: Callbacks 默认值: None

local_callbacks

本地回调。

类型: Callbacks 默认值: None

verbose

是否启用详细模式。

类型: bool 默认值: False

inheritable_tags

可继承的标签。

类型: list[str] | None 默认值: None

local_tags

本地标签。

类型: list[str] | None 默认值: None

inheritable_metadata

可继承的元数据。

类型: dict[str, Any] | None 默认值: None

local_metadata

本地元数据。

类型: dict[str, Any] | None 默认值: None

返回 描述
AsyncCallbackManager

已配置的异步回调管理器。

__init__

__init__(
    handlers: list[BaseCallbackHandler],
    inheritable_handlers: list[BaseCallbackHandler] | None = None,
    parent_run_id: UUID | None = None,
    *,
    tags: list[str] | None = None,
    inheritable_tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    inheritable_metadata: dict[str, Any] | None = None,
) -> None

初始化回调管理器。

参数 描述
handlers

处理器。

类型: list[BaseCallbackHandler]

inheritable_handlers

可继承的处理器。

类型: list[BaseCallbackHandler] | None 默认值: None

parent_run_id

父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

inheritable_tags

可继承的标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

inheritable_metadata

可继承的元数据。

类型: dict[str, Any] | None 默认值: None

copy

copy() -> Self

返回回调管理器的副本。

merge

merge(other: BaseCallbackManager) -> Self

将回调管理器与另一个回调管理器合并。

可以在子类中重写。主要在 merge_configs 内部使用。

返回 描述
Self

与当前对象类型相同的合并回调管理器。

示例:合并两个回调管理器。

```python
from langchain_core.callbacks.manager import (
    CallbackManager,
    trace_as_chain_group,
)
from langchain_core.callbacks.stdout import StdOutCallbackHandler

manager = CallbackManager(handlers=[StdOutCallbackHandler()], tags=["tag2"])
with trace_as_chain_group("My Group Name", tags=["tag1"]) as group_manager:
    merged_manager = group_manager.merge(manager)
    print(merged_manager.handlers)
    # [
    #    <langchain_core.callbacks.stdout.StdOutCallbackHandler object at ...>,
    #    <langchain_core.callbacks.streaming_stdout.StreamingStdOutCallbackHandler object at ...>,
    # ]

    print(merged_manager.tags)
    #    ['tag2', 'tag1']
```

add_handler

add_handler(handler: BaseCallbackHandler, inherit: bool = True) -> None

向回调管理器添加一个处理器。

参数 描述
handler

要添加的处理器。

类型: BaseCallbackHandler

inherit

是否继承该处理器。

类型: bool 默认值: True

remove_handler

remove_handler(handler: BaseCallbackHandler) -> None

从回调管理器中删除一个处理器。

参数 描述
handler

要移除的处理器。

类型: BaseCallbackHandler

set_handlers

set_handlers(handlers: list[BaseCallbackHandler], inherit: bool = True) -> None

将处理器设置为回调管理器上唯一的处理器。

参数 描述
handlers

要设置的处理器。

类型: list[BaseCallbackHandler]

inherit

是否继承这些处理器。

类型: bool 默认值: True

set_handler

set_handler(handler: BaseCallbackHandler, inherit: bool = True) -> None

将处理器设置为回调管理器上唯一的处理器。

参数 描述
handler

要设置的处理器。

类型: BaseCallbackHandler

inherit

是否继承该处理器。

类型: bool 默认值: True

add_tags

add_tags(tags: list[str], inherit: bool = True) -> None

向回调管理器添加标签。

参数 描述
tags

要添加的标签。

类型: list[str]

inherit

是否继承这些标签。

类型: bool 默认值: True

remove_tags

remove_tags(tags: list[str]) -> None

从回调管理器中删除标签。

参数 描述
tags

要移除的标签。

类型: list[str]

add_metadata

add_metadata(metadata: dict[str, Any], inherit: bool = True) -> None

向回调管理器添加元数据。

参数 描述
metadata

要添加的元数据。

类型: dict[str, Any]

inherit

是否继承这些元数据。

类型: bool 默认值: True

remove_metadata

remove_metadata(keys: list[str]) -> None

从回调管理器中删除元数据。

参数 描述
keys

要移除的键。

类型: list[str]

langchain_core.callbacks.manager.CallbackManager

Bases: BaseCallbackManager

LangChain 的回调管理器。

方法 描述
on_llm_start

在 LLM 开始运行时运行。

on_chat_model_start

在聊天模型开始运行时运行。

on_chain_start

在链开始运行时运行。

on_tool_start

在工具开始运行时运行。

on_retriever_start

在检索器开始运行时运行。

on_custom_event

向处理器分派一个临时事件(异步版本)。

configure

配置回调管理器。

__init__

初始化回调管理器。

copy

返回回调管理器的副本。

merge

将回调管理器与另一个回调管理器合并。

add_handler

向回调管理器添加一个处理器。

remove_handler

从回调管理器中删除一个处理器。

set_handlers

将处理器设置为回调管理器上唯一的处理器。

set_handler

将处理器设置为回调管理器上唯一的处理器。

add_tags

向回调管理器添加标签。

remove_tags

从回调管理器中删除标签。

add_metadata

向回调管理器添加元数据。

remove_metadata

从回调管理器中删除元数据。

is_async property

is_async: bool

回调管理器是否是异步的。

on_llm_start

on_llm_start(
    serialized: dict[str, Any],
    prompts: list[str],
    run_id: UUID | None = None,
    **kwargs: Any,
) -> list[CallbackManagerForLLMRun]

在 LLM 开始运行时运行。

参数 描述
serialized

序列化的 LLM。

类型: dict[str, Any]

prompts

提示列表。

类型: list[str]

run_id

运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[CallbackManagerForLLMRun]

每个提示作为一个 LLM 运行的回调管理器。

on_chat_model_start

on_chat_model_start(
    serialized: dict[str, Any],
    messages: list[list[BaseMessage]],
    run_id: UUID | None = None,
    **kwargs: Any,
) -> list[CallbackManagerForLLMRun]

在聊天模型开始运行时运行。

参数 描述
serialized

序列化的 LLM。

类型: dict[str, Any]

messages

消息列表。

类型: list[list[BaseMessage]]

run_id

运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
list[CallbackManagerForLLMRun]

每个消息列表作为一个 LLM 运行的回调管理器。

on_chain_start

on_chain_start(
    serialized: dict[str, Any] | None,
    inputs: dict[str, Any] | Any,
    run_id: UUID | None = None,
    **kwargs: Any,
) -> CallbackManagerForChainRun

在链开始运行时运行。

参数 描述
serialized

序列化的链。

类型: dict[str, Any] | None

inputs

链的输入。

类型: dict[str, Any] | Any

run_id

运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
CallbackManagerForChainRun

链运行的回调管理器。

on_tool_start

on_tool_start(
    serialized: dict[str, Any] | None,
    input_str: str,
    run_id: UUID | None = None,
    parent_run_id: UUID | None = None,
    inputs: dict[str, Any] | None = None,
    **kwargs: Any,
) -> CallbackManagerForToolRun

在工具开始运行时运行。

参数 描述
serialized

工具的序列化表示。

类型: dict[str, Any] | None

input_str

作为字符串的工具输入。非字符串输入会被转换为字符串。

类型: str

run_id

运行的 ID。

类型: UUID | None 默认值: None

parent_run_id

父运行的 ID。

类型: UUID | None 默认值: None

inputs

如果提供,则是工具的原始输入。当需要原始输入时,推荐使用此参数而不是 input_str。如果提供,输入应格式化为字典。键将对应于工具中的命名参数。

类型: dict[str, Any] | None 默认值: None

**kwargs

要传递给事件处理器的关键字参数

类型: Any 默认值: {}

返回 描述
CallbackManagerForToolRun

工具运行的回调管理器。

on_retriever_start

on_retriever_start(
    serialized: dict[str, Any] | None,
    query: str,
    run_id: UUID | None = None,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> CallbackManagerForRetrieverRun

在检索器开始运行时运行。

参数 描述
serialized

序列化的检索器。

类型: dict[str, Any] | None

query

查询。

类型: str

run_id

运行的 ID。

类型: UUID | None 默认值: None

parent_run_id

父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

返回 描述
CallbackManagerForRetrieverRun

检索器运行的回调管理器。

on_custom_event

on_custom_event(
    name: str, data: Any, run_id: UUID | None = None, **kwargs: Any
) -> None

向处理器分派一个临时事件(异步版本)。

此事件不应在任何内部 LangChain 代码中使用。该事件专为库用户设计,用于分派适合其应用程序的自定义事件。

参数 描述
name

临时事件的名称。

类型: str

data

临时事件的数据。

类型: Any

run_id

运行的 ID。

类型: UUID | None 默认值: None

引发 描述
ValueError

如果传递了额外的关键字参数。

configure classmethod

configure(
    inheritable_callbacks: Callbacks = None,
    local_callbacks: Callbacks = None,
    verbose: bool = False,
    inheritable_tags: list[str] | None = None,
    local_tags: list[str] | None = None,
    inheritable_metadata: dict[str, Any] | None = None,
    local_metadata: dict[str, Any] | None = None,
) -> CallbackManager

配置回调管理器。

参数 描述
inheritable_callbacks

可继承的回调。

类型: Callbacks 默认值: None

local_callbacks

本地回调。

类型: Callbacks 默认值: None

verbose

是否启用详细模式。

类型: bool 默认值: False

inheritable_tags

可继承的标签。

类型: list[str] | None 默认值: None

local_tags

本地标签。

类型: list[str] | None 默认值: None

inheritable_metadata

可继承的元数据。

类型: dict[str, Any] | None 默认值: None

local_metadata

本地元数据。

类型: dict[str, Any] | None 默认值: None

返回 描述
CallbackManager

已配置的回调管理器。

__init__

__init__(
    handlers: list[BaseCallbackHandler],
    inheritable_handlers: list[BaseCallbackHandler] | None = None,
    parent_run_id: UUID | None = None,
    *,
    tags: list[str] | None = None,
    inheritable_tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    inheritable_metadata: dict[str, Any] | None = None,
) -> None

初始化回调管理器。

参数 描述
handlers

处理器。

类型: list[BaseCallbackHandler]

inheritable_handlers

可继承的处理器。

类型: list[BaseCallbackHandler] | None 默认值: None

parent_run_id

父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

inheritable_tags

可继承的标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

inheritable_metadata

可继承的元数据。

类型: dict[str, Any] | None 默认值: None

copy

copy() -> Self

返回回调管理器的副本。

merge

merge(other: BaseCallbackManager) -> Self

将回调管理器与另一个回调管理器合并。

可以在子类中重写。主要在 merge_configs 内部使用。

返回 描述
Self

与当前对象类型相同的合并回调管理器。

示例:合并两个回调管理器。

```python
from langchain_core.callbacks.manager import (
    CallbackManager,
    trace_as_chain_group,
)
from langchain_core.callbacks.stdout import StdOutCallbackHandler

manager = CallbackManager(handlers=[StdOutCallbackHandler()], tags=["tag2"])
with trace_as_chain_group("My Group Name", tags=["tag1"]) as group_manager:
    merged_manager = group_manager.merge(manager)
    print(merged_manager.handlers)
    # [
    #    <langchain_core.callbacks.stdout.StdOutCallbackHandler object at ...>,
    #    <langchain_core.callbacks.streaming_stdout.StreamingStdOutCallbackHandler object at ...>,
    # ]

    print(merged_manager.tags)
    #    ['tag2', 'tag1']
```

add_handler

add_handler(handler: BaseCallbackHandler, inherit: bool = True) -> None

向回调管理器添加一个处理器。

参数 描述
handler

要添加的处理器。

类型: BaseCallbackHandler

inherit

是否继承该处理器。

类型: bool 默认值: True

remove_handler

remove_handler(handler: BaseCallbackHandler) -> None

从回调管理器中删除一个处理器。

参数 描述
handler

要移除的处理器。

类型: BaseCallbackHandler

set_handlers

set_handlers(handlers: list[BaseCallbackHandler], inherit: bool = True) -> None

将处理器设置为回调管理器上唯一的处理器。

参数 描述
handlers

要设置的处理器。

类型: list[BaseCallbackHandler]

inherit

是否继承这些处理器。

类型: bool 默认值: True

set_handler

set_handler(handler: BaseCallbackHandler, inherit: bool = True) -> None

将处理器设置为回调管理器上唯一的处理器。

参数 描述
handler

要设置的处理器。

类型: BaseCallbackHandler

inherit

是否继承该处理器。

类型: bool 默认值: True

add_tags

add_tags(tags: list[str], inherit: bool = True) -> None

向回调管理器添加标签。

参数 描述
tags

要添加的标签。

类型: list[str]

inherit

是否继承这些标签。

类型: bool 默认值: True

remove_tags

remove_tags(tags: list[str]) -> None

从回调管理器中删除标签。

参数 描述
tags

要移除的标签。

类型: list[str]

add_metadata

add_metadata(metadata: dict[str, Any], inherit: bool = True) -> None

向回调管理器添加元数据。

参数 描述
metadata

要添加的元数据。

类型: dict[str, Any]

inherit

是否继承这些元数据。

类型: bool 默认值: True

remove_metadata

remove_metadata(keys: list[str]) -> None

从回调管理器中删除元数据。

参数 描述
keys

要移除的键。

类型: list[str]

langchain_core.callbacks.usage.UsageMetadataCallbackHandler

Bases: BaseCallbackHandler

跟踪 AIMessage.usage_metadata 的回调处理器。

示例

from langchain.chat_models import init_chat_model
from langchain_core.callbacks import UsageMetadataCallbackHandler

llm_1 = init_chat_model(model="openai:gpt-4o-mini")
llm_2 = init_chat_model(model="anthropic:claude-3-5-haiku-20241022")

callback = UsageMetadataCallbackHandler()
result_1 = llm_1.invoke("Hello", config={"callbacks": [callback]})
result_2 = llm_2.invoke("Hello", config={"callbacks": [callback]})
callback.usage_metadata
{'gpt-4o-mini-2024-07-18': {'input_tokens': 8,
  'output_tokens': 10,
  'total_tokens': 18,
  'input_token_details': {'audio': 0, 'cache_read': 0},
  'output_token_details': {'audio': 0, 'reasoning': 0}},
 'claude-3-5-haiku-20241022': {'input_tokens': 8,
  'output_tokens': 21,
  'total_tokens': 29,
  'input_token_details': {'cache_read': 0, 'cache_creation': 0}}}

于 0.3.49 版本中添加

方法 描述
__init__

初始化 UsageMetadataCallbackHandler。

on_llm_end

收集令牌使用情况。

on_text

在任意文本上运行。

on_retry

在重试事件上运行。

on_custom_event

重写以定义自定义事件的处理器。

on_llm_start

在 LLM 开始运行时运行。

on_chat_model_start

在聊天模型开始运行时运行。

on_retriever_start

在检索器开始运行时运行。

on_chain_start

在链开始运行时运行。

on_tool_start

在工具开始运行时运行。

on_retriever_error

在检索器发生错误时运行。

on_retriever_end

在检索器结束运行时运行。

on_tool_end

在工具结束运行时运行。

on_tool_error

在工具发生错误时运行。

on_chain_end

在链结束运行时运行。

on_chain_error

在链发生错误时运行。

on_agent_action

在代理操作上运行。

on_agent_finish

在代理结束时运行。

on_llm_new_token

在新输出令牌上运行。仅在启用流式传输时可用。

on_llm_error

在 LLM 发生错误时运行。

raise_error class-attribute instance-attribute

raise_error: bool = False

发生异常时是否引发错误。

run_inline class-attribute instance-attribute

run_inline: bool = False

是否内联运行回调。

ignore_llm property

ignore_llm: bool

是否忽略 LLM 回调。

ignore_retry property

ignore_retry: bool

是否忽略重试回调。

ignore_chain property

ignore_chain: bool

是否忽略链回调。

ignore_agent property

ignore_agent: bool

是否忽略代理回调。

ignore_retriever property

ignore_retriever: bool

是否忽略检索器回调。

ignore_chat_model property

ignore_chat_model: bool

是否忽略聊天模型回调。

ignore_custom_event property

ignore_custom_event: bool

忽略自定义事件。

__init__

__init__() -> None

初始化 UsageMetadataCallbackHandler。

on_llm_end

on_llm_end(response: LLMResult, **kwargs: Any) -> None

收集令牌使用情况。

on_text

on_text(
    text: str, *, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any
) -> Any

在任意文本上运行。

参数 描述
text

文本。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retry

on_retry(
    retry_state: RetryCallState,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在重试事件上运行。

参数 描述
retry_state

重试状态。

类型: RetryCallState

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_custom_event

on_custom_event(
    name: str,
    data: Any,
    *,
    run_id: UUID,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

重写以定义自定义事件的处理器。

参数 描述
name

自定义事件的名称。

类型: str

data

自定义事件的数据。格式将与用户指定的格式匹配。

类型: Any

run_id

运行的 ID。

类型: UUID

tags

与自定义事件关联的标签(包括继承的标签)。

类型: list[str] | None 默认值: None

metadata

与自定义事件关联的元数据(包括继承的元数据)。

类型: dict[str, Any] | None 默认值: None

on_llm_start

on_llm_start(
    serialized: dict[str, Any],
    prompts: list[str],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在 LLM 开始运行时运行。

警告

此方法用于非聊天模型(常规 LLM)。如果您正在为聊天模型实现处理器,应改用 on_chat_model_start

参数 描述
serialized

序列化的 LLM。

类型: dict[str, Any]

prompts

提示。

类型: list[str]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chat_model_start

on_chat_model_start(
    serialized: dict[str, Any],
    messages: list[list[BaseMessage]],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在聊天模型开始运行时运行。

警告

此方法用于聊天模型。如果您正在为非聊天模型实现处理器,应改用 on_llm_start

参数 描述
serialized

序列化的聊天模型。

类型: dict[str, Any]

messages

消息。

类型: list[list[BaseMessage]]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_start

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,
    **kwargs: Any,
) -> Any

在检索器开始运行时运行。

参数 描述
serialized

序列化的检索器。

类型: dict[str, Any]

query

查询。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_start

on_chain_start(
    serialized: dict[str, Any],
    inputs: dict[str, Any],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在链开始运行时运行。

参数 描述
serialized

序列化的链。

类型: dict[str, Any]

inputs

输入。

类型: dict[str, Any]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_start

on_tool_start(
    serialized: dict[str, Any],
    input_str: str,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    tags: list[str] | None = None,
    metadata: dict[str, Any] | None = None,
    inputs: dict[str, Any] | None = None,
    **kwargs: Any,
) -> Any

在工具开始运行时运行。

参数 描述
serialized

序列化的链。

类型: dict[str, Any]

input_str

输入字符串。

类型: str

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

tags

标签。

类型: list[str] | None 默认值: None

metadata

元数据。

类型: dict[str, Any] | None 默认值: None

inputs

输入。

类型: dict[str, Any] | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_error

on_retriever_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在检索器发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_retriever_end

on_retriever_end(
    documents: Sequence[Document],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在检索器结束运行时运行。

参数 描述
documents

检索到的文档。

类型: Sequence[Document]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_end

on_tool_end(
    output: Any, *, run_id: UUID, parent_run_id: UUID | None = None, **kwargs: Any
) -> Any

在工具结束运行时运行。

参数 描述
output

工具的输出。

类型: Any

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_tool_error

on_tool_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在工具发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_end

on_chain_end(
    outputs: dict[str, Any],
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在链结束运行时运行。

参数 描述
outputs

链的输出。

类型: dict[str, Any]

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_chain_error

on_chain_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在链发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_agent_action

on_agent_action(
    action: AgentAction,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在代理操作上运行。

参数 描述
action

代理操作。

类型: AgentAction

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_agent_finish

on_agent_finish(
    finish: AgentFinish,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在代理结束时运行。

参数 描述
finish

代理结束。

类型: AgentFinish

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_new_token

on_llm_new_token(
    token: str,
    *,
    chunk: GenerationChunk | ChatGenerationChunk | None = None,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在新输出令牌上运行。仅在启用流式传输时可用。

适用于聊天模型和非聊天模型(传统 LLM)。

参数 描述
token

新的令牌。

类型: str

chunk

新生成的块,包含内容和其他信息。

类型: GenerationChunk | ChatGenerationChunk | None 默认值: None

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

on_llm_error

on_llm_error(
    error: BaseException,
    *,
    run_id: UUID,
    parent_run_id: UUID | None = None,
    **kwargs: Any,
) -> Any

在 LLM 发生错误时运行。

参数 描述
error

发生的错误。

类型: BaseException

run_id

运行 ID。这是当前运行的 ID。

类型: UUID

parent_run_id

父运行 ID。这是父运行的 ID。

类型: UUID | None 默认值: None

**kwargs

附加的关键字参数。

类型: Any 默认值: {}

langchain_core.callbacks.usage.get_usage_metadata_callback

get_usage_metadata_callback(
    name: str = "usage_metadata_callback",
) -> Generator[UsageMetadataCallbackHandler, None, None]

获取使用情况元数据回调。

获取上下文管理器,用于使用 AIMessage.usage_metadata 跟踪聊天模型调用的使用情况元数据。

参数 描述
name

上下文变量的名称。

类型: str 默认值: 'usage_metadata_callback'

YIELDS 描述
UsageMetadataCallbackHandler

使用情况元数据回调。

示例

from langchain.chat_models import init_chat_model
from langchain_core.callbacks import get_usage_metadata_callback

llm_1 = init_chat_model(model="openai:gpt-4o-mini")
llm_2 = init_chat_model(model="anthropic:claude-3-5-haiku-20241022")

with get_usage_metadata_callback() as cb:
    llm_1.invoke("Hello")
    llm_2.invoke("Hello")
    print(cb.usage_metadata)
{
    "gpt-4o-mini-2024-07-18": {
        "input_tokens": 8,
        "output_tokens": 10,
        "total_tokens": 18,
        "input_token_details": {"audio": 0, "cache_read": 0},
        "output_token_details": {"audio": 0, "reasoning": 0},
    },
    "claude-3-5-haiku-20241022": {
        "input_tokens": 8,
        "output_tokens": 21,
        "total_tokens": 29,
        "input_token_details": {"cache_read": 0, "cache_creation": 0},
    },
}

于 0.3.49 版本中添加

© . This site is unofficial and not affiliated with LangChain, Inc.