回调机制#
概念#
LlamaIndex 提供回调功能来帮助调试、追踪和记录库的内部运作。通过回调管理器,可以添加任意数量的回调处理器。
除了记录与事件相关的数据外,您还可以追踪每个事件的持续时间和发生次数。
此外,系统还会记录事件追踪图谱,回调处理器可以自由使用这些数据。例如,默认情况下LlamaDebugHandler
会在大多数操作后打印事件追踪记录。
回调事件类型 虽然每个回调处理器可能不会用到所有事件类型,但以下事件可供追踪:
CHUNKING
-> 记录文本分割前后的状态NODE_PARSING
-> 记录文档及其解析生成的节点EMBEDDING
-> 记录嵌入处理的文本数量LLM
-> 记录大语言模型调用的模板和响应QUERY
-> 追踪每个查询的开始和结束RETRIEVE
-> 记录为查询检索到的节点SYNTHESIZE
-> 记录合成调用的结果TREE
-> 记录生成的摘要及其层级SUB_QUESTION
-> 记录生成的子问题及其答案
您可以实现自己的回调处理器来追踪这些事件,或使用现有的回调处理器。
模块#
当前支持的回调处理器如下:
- TokenCountingHandler -> 灵活统计提示词、补全和嵌入的token使用量。详见迁移说明
- LlamaDebugHanlder -> 基础的事件追踪和记录功能。使用示例见下方笔记本
- WandbCallbackHandler -> 使用Wandb Prompts前端追踪事件和调用链。更多细节见下方笔记本或访问Wandb
- AimCallback -> 追踪大语言模型的输入输出。使用示例见下方笔记本
- OpenInferenceCallbackHandler -> 追踪AI模型推理过程。使用示例见下方笔记本
- OpenAIFineTuningHandler -> 记录所有大语言模型的输入输出,并提供
save_finetuning_events()
函数将输入输出保存为适合OpenAI微调的格式