可观测性#
注意:
本页面提到的工具和集成被视为遗留。现在,可观测性通过 instrumentation
模块(v0.10.20 及更高版本可用)来处理。
LlamaIndex 提供一键式可观测性🔭,以便您在生产环境中构建合乎原则的 LLM 应用程序。
在开发 LLM 应用程序时,对数据(RAG 系统、代理)进行原则性的观察、调试和评估是一个关键要求,既要能够观察整个系统,也要能够观察每个组件。
此功能允许您将 LlamaIndex 库与我们合作伙伴提供的强大的可观测性/评估工具无缝集成。只需配置一次变量,您就可以执行以下操作:
- 查看 LLM/prompt 输入/输出
- 确保任何组件的输出(LLMs、嵌入)表现如预期
- 查看索引和查询的调用跟踪
每个提供商都有相似之处,也有不同之处。请查看下面的完整指南!
使用模式#
要切换,通常只需要执行以下操作:
from llama_index.core import set_global_handler
# 通用用法
set_global_handler("<handler_name>", **kwargs)
# W&B 示例
# set_global_handler("wandb", run_args={"project": "llamaindex"})
请注意,所有传递给 set_global_handler
的 kwargs
都将传递给底层的回调处理程序。
就是这样!执行将无缝地传输到下游服务(例如 W&B Prompts),您将能够访问诸如查看应用程序执行跟踪等功能。
注意:TruLens(由 TruEra 提供)使用了不同的“一键式”体验。详情请参见下文。
简单(LLM 输入/输出)#
这个简单的可观测性工具会将每个 LLM 输入/输出对打印到终端。当您需要快速在 LLM 应用程序上启用调试日志记录时,这是最有用的。
使用模式#
import llama_index.core
llama_index.core.set_global_handler("simple")
合作伙伴 一键式
集成#
我们与合作伙伴提供了丰富的集成。为每个合作伙伴提供了简短描述 + 使用模式和指南。
Langfuse#
Langfuse 是一个开源的 LLM 工程平台,帮助团队协作调试、分析和迭代他们的 LLM 应用程序。通过 Langfuse 集成,您可以无缝跟踪和监控 LlamaIndex 应用程序的性能、跟踪和指标。详细的 LlamaIndex 上下文增强和 LLM 查询过程的跟踪可以直接在 Langfuse UI 中查看。
使用模式#
from llama_index.core import set_global_handler
# 确保您已安装了 'llama-index-callbacks-langfuse' 集成包。
# 注意:按照 langfuse.com 项目设置中显示的方式设置您的环境变量 'LANGFUSE_SECRET_KEY'、'LANGFUSE_PUBLIC_KEY' 和 'LANGFUSE_HOST'。
set_global_handler("langfuse")
指南#
DeepEval#
DeepEval(由 Confident AI 提供) 是一个用于 LLM 应用程序的开源评估框架。当您使用 DeepEval 的 14+ 默认指标(摘要、幻觉、答案相关性、忠实度、RAGAS 等)“单元测试”您的 LLM 应用程序时,您可以通过与 LlamaIndex 的跟踪集成来调试失败的测试用例,或者通过 DeepEval 的托管评估平台 Confident AI 在生产环境中调试不令人满意的评估,该平台可以在生产环境中运行无参考评估。
使用模式#
from llama_index.core import set_global_handler
set_global_handler("deepeval")
# 注意:在 CLI 中运行 'deepeval login' 以在 Confident AI 上记录跟踪。像往常一样运行所有 LlamaIndex 应用程序,跟踪将被收集,并在运行评估时在 Confident AI 上显示。
...
Weights and Biases Prompts#
Prompts 允许用户记录/跟踪/检查 LlamaIndex 在索引构建和查询过程中的执行流程。它还允许用户对其索引进行版本控制。
使用模式#
from llama_index.core import set_global_handler
set_global_handler("wandb", run_args={"project": "llamaindex"})
# 注意:不需要执行以下操作
from llama_index.callbacks.wandb import WandbCallbackHandler
from llama_index.core.callbacks import CallbackManager
from llama_index.core import Settings
# wandb_callback = WandbCallbackHandler(run_args={"project": "llamaindex"})
# Settings.callback_manager = CallbackManager([wandb_callback])
# 访问处理程序的其他方法以持久化索引和加载索引
import llama_index.core
# 持久化索引
llama_index.core.global_handler.persist_index(graph, index_name="my_index")
# 加载存储上下文
storage_context = llama_index.core.global_handler.load_storage_context(
artifact_url="ayut/llamaindex/my_index:v0"
)
指南#
OpenLLMetry#
OpenLLMetry 是基于 OpenTelemetry 的开源项目,用于追踪和监控 LLM 应用程序。它连接到所有主要的可观测平台,并且在几分钟内安装完成。
使用模式#
from traceloop.sdk import Traceloop
Traceloop.init()
指南#
Arize Phoenix#
Arize Phoenix:以零配置的方式以闪电般的速度获取 LLMOps 洞察。Phoenix 通过提供以下功能,为监视您的模型和 LLM 应用程序提供了首选的笔记本体验:
- LLM 跟踪 - 跟踪 LLM 应用程序的执行,以了解 LLM 应用程序的内部工作原理,并解决与检索和工具执行等问题相关的问题。
- LLM 评估 - 利用大型语言模型的能力,评估您的生成模型或应用程序的相关性、毒性等。
使用模式#
# Phoenix 可以实时显示从 LlamaIndex 应用程序自动收集的跟踪。
import phoenix as px
# 在输出中查找一个 URL,以在浏览器中打开应用程序。
px.launch_app()
# 应用程序最初是空的,但随着您按照下面的步骤进行操作,跟踪将自动出现,因为您的 LlamaIndex 应用程序运行。
import llama_index.core
llama_index.core.set_global_handler("arize_phoenix")
# 像往常一样运行所有的 LlamaIndex 应用程序,跟踪将被收集并在 Phoenix 中显示。
...
指南#
OpenInference#
OpenInference 是用于捕获和存储 AI 模型推断的开放标准。它通过使用 LLM 可观测性解决方案(如 Phoenix)来实现 LLM 应用程序的实验、可视化和评估。
使用模式#
import llama_index.core
llama_index.core.set_global_handler("openinference")
# 注意:不需要执行以下操作
from llama_index.callbacks.openinference import OpenInferenceCallbackHandler
from llama_index.core.callbacks import CallbackManager
from llama_index.core import Settings
# callback_handler = OpenInferenceCallbackHandler()
# Settings.callback_manager = CallbackManager([callback_handler])
# 在此运行您的 LlamaIndex 应用程序...
for query in queries:
query_engine.query(query)
# 以 OpenInference 格式查看您的 LLM 应用程序数据的数据框。
from llama_index.core.callbacks.open_inference_callback import as_dataframe
query_data_buffer = llama_index.core.global_handler.flush_query_data_buffer()
query_dataframe = as_dataframe(query_data_buffer)
注意:要解锁 Phoenix 的功能,您需要定义额外的步骤来提供查询/上下文数据框。请参见下文!
指南#
TruEra TruLens#
TruLens 允许用户通过反馈功能和跟踪等功能来对 LlamaIndex 应用程序进行仪器化/评估。
使用模式 + 指南#
# 使用 trulens
from trulens_eval import TruLlama
tru_query_engine = TruLlama(query_engine)
# 查询
tru_query_engine.query("作者在成长过程中做了什么?")
指南#
HoneyHive#
HoneyHive 允许用户跟踪任何 LLM 管道的执行流程。用户可以调试和分析其跟踪,或自定义特定跟踪事件的反馈,以从生产中创建评估或微调数据集。
使用模式#
from llama_index.core import set_global_handler
set_global_handler(
"honeyhive",
project="我的蜜蜂项目",
name="我的LLM管道名称",
api_key="我的蜜蜂API密钥",
)
# 注意:不需要执行以下操作
from llama_index.core.callbacks import CallbackManager
# from honeyhive.utils.llamaindex_tracer import HoneyHiveLlamaIndexTracer
from llama_index.core import Settings
# hh_tracer = HoneyHiveLlamaIndexTracer(
# project="我的蜜蜂项目",
# name="我的LLM管道名称",
# api_key="我的蜜蜂API密钥",
# )
# Settings.callback_manager = CallbackManager([hh_tracer])
使用 Perfetto 调试和分析 HoneyHive 的跟踪数据。
指南#
PromptLayer#
PromptLayer 允许您跟踪 LLM 调用的分析数据,对各种用例的提示进行标记、分析和评估。与 LlamaIndex 一起使用,可跟踪 RAG 提示等性能。
使用模式#
import os
os.environ["PROMPTLAYER_API_KEY"] = "pl_7db888a22d8171fb58aab3738aa525a7"
from llama_index.core import set_global_handler
# pl_tags 是可选的,可帮助您组织提示和应用
set_global_handler("promptlayer", pl_tags=["paul graham", "essay"])
指南#
Langtrace#
Langtrace 是一个强大的开源工具,支持 OpenTelemetry,并旨在无缝跟踪、评估和管理 LLM 应用程序。Langtrace 与 LlamaIndex 直接集成,提供有关准确性、评估和延迟等性能指标的详细实时见解。
安装#
pip install langtrace-python-sdk
使用模式#
from langtrace_python_sdk import (
langtrace,
) # 必须在任何 llm 模块导入之前
langtrace.init(api_key="<LANGTRACE_API_KEY>")
指南#
OpenLIT#
OpenLIT 是一个原生于 OpenTelemetry 的 GenAI 和 LLM 应用程序可观察性工具。它旨在通过一行代码将可观察性集成到 GenAI 项目中。OpenLIT 为各种 LLM、VectorDB 和 LlamaIndex 等框架提供 OpenTelemetry 自动工具化。OpenLIT 提供有关 LLM 应用程序性能、请求跟踪、使用成本、令牌等概览指标的见解。
安装#
pip install openlit
使用模式#
import openlit
openlit.init()