本案例将引导您一步步集成 HoneyHive 到 LlamaIndex 应用中演示如何利用 HoneyHiveLlamaIndexTracer 监控和分析 LLM 管道的执行流程以及如何自定义特定追踪事件的反馈从而从生产环境中创建评估或微调数据集。1. 案例目标我们将创建一个应用程序实现以下功能集成 HoneyHive Tracer将 HoneyHiveLlamaIndexTracer 集成到 LlamaIndex 中实现全面的追踪文档索引与查询使用 LlamaIndex 创建文档索引并对文档内容进行查询执行流程追踪追踪索引构建和查询过程中的每个步骤数据可视化通过 HoneyHive 平台查看和分析追踪数据2. 技术栈与核心依赖LlamaIndex用于构建文档索引和查询系统HoneyHive用于监控、评估和持续改进 LLM 应用的平台OpenAI API作为示例中的语言模型提供者需要安装的核心依赖pip install llama-index pip install llama-index-llms-openai3. 环境配置在开始之前您需要获取 OpenAI API 密钥获取 HoneyHive API 密钥确保 Python 3.7 或更高版本4. 案例实现4.1 配置 API 密钥首先我们需要配置 OpenAI 和 HoneyHive 的 API 密钥import os from getpass import getpass # 配置 OpenAI API 密钥 if os.getenv(OPENAI_API_KEY) is None: os.environ[OPENAI_API_KEY] getpass( Paste your OpenAI key from: https://platform.openai.com/account/api-keys\n ) # 配置 HoneyHive API 密钥 if os.getenv(HONEYHIVE_API_KEY) is None: os.environ[HONEYHIVE_API_KEY] getpass( Paste your HoneyHive key from: https://app.honeyhive.ai/settings/account\n )4.2 导入必要的库from llama_index.core.callbacks import CallbackManager from llama_index.core.callbacks import LlamaDebugHandler from llama_index.core import ( VectorStoreIndex, SimpleDirectoryReader, Settings, ) from llama_index.llms.openai import OpenAI from honeyhive.utils.llamaindex_tracer import HoneyHiveLlamaIndexTracer4.3 设置 LLMfrom llama_index.core import Settings Settings.llm OpenAI(modelgpt-4, temperature0)4.4 配置 HoneyHive 追踪器有两种方式可以配置 HoneyHive 追踪器选项 1设置全局评估处理器import llama_index.core from llama_index.core import set_global_handler set_global_handler( honeyhive, projectMy LlamaIndex Project, nameMy LlamaIndex Pipeline, api_keyos.environ[HONEYHIVE_API_KEY], ) hh_tracer llama_index.core.global_handler选项 2手动配置回调处理器# 创建调试处理器用于额外的笔记本可见性 llama_debug LlamaDebugHandler(print_trace_on_endTrue) # 创建 HoneyHive 追踪器 hh_tracer HoneyHiveLlamaIndexTracer( projectMy LlamaIndex Project, nameMy LlamaIndex Pipeline, api_keyos.environ[HONEYHIVE_API_KEY], ) # 创建回调管理器 callback_manager CallbackManager([llama_debug, hh_tracer]) # 设置全局回调管理器 Settings.callback_manager callback_manager4.5 准备数据下载并加载示例数据# 创建数据目录 !mkdir -p data/paul_graham/ # 下载示例文档 !wget https://raw.githubusercontent.com/run-llama/llama_index/main/docs/examples/data/paul_graham/paul_graham_essay.txt -O data/paul_graham/paul_graham_essay.txt # 使用 SimpleDirectoryReader 加载文档 docs SimpleDirectoryReader(./data/paul_graham/).load_data()4.6 创建索引# 创建向量索引这将触发追踪 index VectorStoreIndex.from_documents(docs)注意创建索引时您将看到类似以下的追踪输出********** Trace: index_construction |_node_parsing - 0.080298 seconds |_chunking - 0.078948 seconds |_embedding - 1.117244 seconds |_embedding - 0.382624 seconds **********4.7 执行查询# 创建查询引擎 query_engine index.as_query_engine() # 执行查询这将触发追踪 response query_engine.query(What did the author do growing up?) print(response)注意执行查询时您将看到类似以下的追踪输出********** Trace: query |_query - 11.334982 seconds |_retrieve - 0.255016 seconds |_embedding - 0.247083 seconds |_synthesize - 11.079581 seconds |_templating - 5.7e-05 seconds |_llm - 11.065533 seconds **********4.8 查看 HoneyHive 追踪数据完成追踪后您可以通过 HoneyHive 平台 查看追踪事件登录到 HoneyHive导航到您的 My LlamaIndex Project 项目点击 Data Store 标签页查看您的 Sessions5. 案例效果通过本案例您可以实现以下效果详细追踪自动追踪索引构建和查询过程中的每个步骤包括时间统计性能分析通过时间统计识别性能瓶颈可视化监控通过 HoneyHive 平台直观地查看和分析追踪数据反馈收集自定义特定追踪事件的反馈创建评估或微调数据集6. 案例实现思路本案例的核心实现思路是回调机制利用 LlamaIndex 的回调系统在关键执行节点触发事件事件追踪通过 HoneyHiveLlamaIndexTracer 捕获和记录这些事件云端分析将追踪数据发送到 HoneyHive 平台进行集中分析和可视化这种实现方式的优点是非侵入性只需少量配置代码即可启用全面的追踪细粒度提供详细的执行流程和时间统计可扩展可以同时使用多个回调处理器实现多种功能7. 扩展建议自定义事件扩展追踪器以记录自定义的业务事件性能优化基于追踪数据优化查询性能异常监控设置异常监控和警报A/B 测试使用追踪数据进行不同配置的 A/B 测试用户行为分析结合用户行为数据分析查询模式成本分析追踪和分析 API 调用成本8. 总结本案例展示了如何将 HoneyHiveLlamaIndexTracer 集成到 LlamaIndex 应用中实现对执行流程的全面监控和分析。通过 HoneyHive 平台开发者可以深入了解应用的执行细节识别性能瓶颈并收集反馈以持续改进应用。这种可观测性对于构建可靠、高效的 LLM 应用至关重要特别是在需要高性能和高质量响应的生产环境中。通过详细的追踪和分析团队可以做出数据驱动的决策不断优化应用性能和用户体验。