回调
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 |
重写以定义自定义事件的处理器。 |
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
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_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
on_llm_end async ¶
on_llm_error async ¶
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
on_chain_end async ¶
on_chain_error async ¶
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
on_tool_end async ¶
on_tool_error async ¶
on_text async ¶
on_retry async ¶
on_agent_action async ¶
on_agent_finish async ¶
on_retriever_start async ¶
on_retriever_end async ¶
on_retriever_error async ¶
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 发生错误时运行。 |
on_text ¶
on_retry ¶
on_custom_event ¶
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
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_retriever_start ¶
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
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
on_retriever_error ¶
on_retriever_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在检索器发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
on_retriever_end ¶
on_tool_end ¶
on_tool_error ¶
on_tool_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在工具发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
on_chain_end ¶
on_chain_error ¶
on_chain_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在链发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
on_agent_action ¶
on_agent_finish ¶
on_llm_new_token ¶
on_llm_end ¶
on_llm_error ¶
on_llm_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在 LLM 发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
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 |
从回调管理器中删除元数据。 |
on_llm_start async ¶
on_chat_model_start async ¶
on_chain_start async ¶
on_tool_start async ¶
on_custom_event async ¶
向处理器分派一个临时事件(异步版本)。
此事件不应在任何内部 LangChain 代码中使用。该事件专为库用户设计,用于分派适合其应用程序的自定义事件。
| 参数 | 描述 |
|---|---|
name
|
临时事件的名称。
类型: |
data
|
临时事件的数据。
类型: |
run_id
|
运行的 ID。
类型: |
| 引发 | 描述 |
|---|---|
ValueError
|
如果传递了额外的关键字参数。 |
on_retriever_start async ¶
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
|
可继承的回调。
类型: |
local_callbacks
|
本地回调。
类型: |
verbose
|
是否启用详细模式。
类型: |
inheritable_tags
|
可继承的标签。 |
local_tags
|
本地标签。 |
inheritable_metadata
|
可继承的元数据。 |
local_metadata
|
本地元数据。 |
| 返回 | 描述 |
|---|---|
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
|
处理器。
类型: |
inheritable_handlers
|
可继承的处理器。
类型: |
parent_run_id
|
父运行的 ID。
类型: |
tags
|
标签。 |
inheritable_tags
|
可继承的标签。 |
metadata
|
元数据。 |
inheritable_metadata
|
可继承的元数据。 |
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
|
要添加的处理器。 |
inherit
|
是否继承该处理器。
类型: |
remove_handler ¶
remove_handler(handler: BaseCallbackHandler) -> None
从回调管理器中删除一个处理器。
| 参数 | 描述 |
|---|---|
handler
|
要移除的处理器。 |
set_handlers ¶
set_handlers(handlers: list[BaseCallbackHandler], inherit: bool = True) -> None
将处理器设置为回调管理器上唯一的处理器。
| 参数 | 描述 |
|---|---|
handlers
|
要设置的处理器。
类型: |
inherit
|
是否继承这些处理器。
类型: |
set_handler ¶
set_handler(handler: BaseCallbackHandler, inherit: bool = True) -> None
将处理器设置为回调管理器上唯一的处理器。
| 参数 | 描述 |
|---|---|
handler
|
要设置的处理器。 |
inherit
|
是否继承该处理器。
类型: |
add_tags ¶
add_metadata ¶
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 |
从回调管理器中删除元数据。 |
on_llm_start ¶
on_chat_model_start ¶
on_chain_start ¶
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
|
工具的序列化表示。 |
input_str
|
作为字符串的工具输入。非字符串输入会被转换为字符串。
类型: |
run_id
|
运行的 ID。
类型: |
parent_run_id
|
父运行的 ID。
类型: |
inputs
|
如果提供,则是工具的原始输入。当需要原始输入时,推荐使用此参数而不是 input_str。如果提供,输入应格式化为字典。键将对应于工具中的命名参数。 |
**kwargs
|
要传递给事件处理器的关键字参数
类型: |
| 返回 | 描述 |
|---|---|
CallbackManagerForToolRun
|
工具运行的回调管理器。 |
on_retriever_start ¶
on_custom_event ¶
向处理器分派一个临时事件(异步版本)。
此事件不应在任何内部 LangChain 代码中使用。该事件专为库用户设计,用于分派适合其应用程序的自定义事件。
| 参数 | 描述 |
|---|---|
name
|
临时事件的名称。
类型: |
data
|
临时事件的数据。
类型: |
run_id
|
运行的 ID。
类型: |
| 引发 | 描述 |
|---|---|
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
|
可继承的回调。
类型: |
local_callbacks
|
本地回调。
类型: |
verbose
|
是否启用详细模式。
类型: |
inheritable_tags
|
可继承的标签。 |
local_tags
|
本地标签。 |
inheritable_metadata
|
可继承的元数据。 |
local_metadata
|
本地元数据。 |
| 返回 | 描述 |
|---|---|
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
|
处理器。
类型: |
inheritable_handlers
|
可继承的处理器。
类型: |
parent_run_id
|
父运行的 ID。
类型: |
tags
|
标签。 |
inheritable_tags
|
可继承的标签。 |
metadata
|
元数据。 |
inheritable_metadata
|
可继承的元数据。 |
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
|
要添加的处理器。 |
inherit
|
是否继承该处理器。
类型: |
remove_handler ¶
remove_handler(handler: BaseCallbackHandler) -> None
从回调管理器中删除一个处理器。
| 参数 | 描述 |
|---|---|
handler
|
要移除的处理器。 |
set_handlers ¶
set_handlers(handlers: list[BaseCallbackHandler], inherit: bool = True) -> None
将处理器设置为回调管理器上唯一的处理器。
| 参数 | 描述 |
|---|---|
handlers
|
要设置的处理器。
类型: |
inherit
|
是否继承这些处理器。
类型: |
set_handler ¶
set_handler(handler: BaseCallbackHandler, inherit: bool = True) -> None
将处理器设置为回调管理器上唯一的处理器。
| 参数 | 描述 |
|---|---|
handler
|
要设置的处理器。 |
inherit
|
是否继承该处理器。
类型: |
add_tags ¶
add_metadata ¶
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 发生错误时运行。 |
on_text ¶
on_retry ¶
on_custom_event ¶
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
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_retriever_start ¶
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
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
on_retriever_error ¶
on_retriever_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在检索器发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
on_retriever_end ¶
on_tool_end ¶
on_tool_error ¶
on_tool_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在工具发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
on_chain_end ¶
on_chain_error ¶
on_chain_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在链发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
on_agent_action ¶
on_agent_finish ¶
on_llm_new_token ¶
on_llm_error ¶
on_llm_error(
error: BaseException,
*,
run_id: UUID,
parent_run_id: UUID | None = None,
**kwargs: Any,
) -> Any
在 LLM 发生错误时运行。
| 参数 | 描述 |
|---|---|
error
|
发生的错误。
类型: |
run_id
|
运行 ID。这是当前运行的 ID。
类型: |
parent_run_id
|
父运行 ID。这是父运行的 ID。
类型: |
**kwargs
|
附加的关键字参数。
类型: |
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
|
上下文变量的名称。
类型: |
| 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 版本中添加