主题
概念
LlamaIndex 提供回调机制,帮你调试、跟踪并窥探库的内部运作。借助回调管理器,你可以按需添加任意数量的回调。
除了记录与事件相关的数据,你还可以跟踪每个事件的耗时与发生次数。
此外还会记录一份事件的调用轨迹图(trace map),回调可以自行取用这些数据。例如 LlamaDebugHandler 默认会在多数操作之后打印出事件的轨迹。
回调事件类型 虽然并非每个回调都会用到所有事件类型,但以下事件都可纳入跟踪:
CHUNKING-> 记录文本切分前后的日志。NODE_PARSING-> 记录文档以及由它们解析出的节点。EMBEDDING-> 记录被嵌入的文本数量。LLM-> 记录 LLM 调用的模板与响应。QUERY-> 跟踪每次查询的开始与结束。RETRIEVE-> 记录某个查询检索到的节点。SYNTHESIZE-> 记录合成调用得到的结果。TREE-> 记录生成的摘要及各层摘要的层级。SUB_QUESTION-> 记录生成的子问题与答案。
你可以自己实现回调来跟踪和追溯这些事件,也可以直接使用现成的回调。
模块
目前支持的回调如下:
- TokenCountingHandler -> 灵活统计 prompt、completion 与嵌入的 token 用量。见迁移说明
- LlamaDebugHanlder -> 对事件做基础的跟踪与追溯。用法示例见下面的 notebook。
- WandbCallbackHandler -> 借助 Wandb Prompts 前端跟踪事件与轨迹。更多细节见下面的 notebook 或 Wandb
- AimCallback -> 跟踪 LLM 的输入与输出。用法示例见下面的 notebook。
- OpenInferenceCallbackHandler -> 跟踪 AI 模型的推理过程。用法示例见下面的 notebook。
- OpenAIFineTuningHandler -> 记录所有 LLM 输入与输出,并提供
save_finetuning_events()函数,把这些输入输出保存为适合 OpenAI 微调的格式。