Skip to content

callback用法

CallbackLangChain提供的回调机制,允许我们在LLM应用程序的各个阶段使用hook(钩子)。对于记录日志、监控、流式传输等任务非常有用。Callback收集到的信息可以直接输出到控制台,也可以输出到文件,更可以输入到第三方应用,相当于独立的日志管理系统,通过这些日志就可以分析应用的运行情况,统计异常率,运行的瓶颈模块以便优化。

callback两大功能

  1. CallbackHandler:对每个应用场景比如AgentChainTool的记录。
  2. CallbackManager:对所有CallbackHandler的封装和管理,包括了单个场景的Handle,也包括运行时整条链路的 Handle

钩子触发时机

事件事件触发相关方法
Chat Model start当聊天模型启动时on_chat_model_start
LLM start当大语言模型启动时on_llm_start
LLM new token当聊天模型或大语言模型生成新 token 时on_llm_new_token
LLM end当聊天模型或大语言模型结束时on_llm_end
LLM error当聊天模型或大语言模型发生错误时on_llm_error
Chain start当链开始运行时on_chain_start
Chain end当链结束时on_chain_end
Chain error当链发生错误时on_chain_error
Tool start当工具开始运行时on_tool_start
Tool end当工具结束时on_tool_end
Tool error当工具发生错误时on_tool_error
Agent action当智能体执行动作时on_agent_action
Agent finish当智能结束时on_agent_finish
Retriever start当检索工具开始运行时on_retriever_start
Retriever end当检索工具结束时on_retriever_end
Retriever error当检索工具发生错误时on_retriever_error
Text运行任意文本时,该接口可以在自定的 Chain、Agent、Tool 上调用该接口。使用该接口增加了灵活性和可扩展性on_text
Retry当重试事件时on_retry

在LangChain中使用CallbackHandler几种方式

  1. 在运行invoke时,传递对应的config信息配置callbacks(推荐)。
  2. Chain上调用with_config函数,传递对应的config并配置callbacks(推荐)。
  3. 构建大语言模型时,传递callbacks参数(不推荐)。

LangChain中提供了两个最基础的CallbackHandler,分别是:StdOutCallbackHandlerFileCallbackHandler

苏ICP备20040768号