错误描述
当我启用调试 per the docs 时,我无法访问任何调试信息。 get_event_time_info
抛出一个除以零的错误,而 get_llm_inputs_outputs
返回一个空列表。
版本
0.10.19
重现步骤
以下是我的脚本:
❯ cat ingest.py
import os
from llama_index.core import VectorStoreIndex, StorageContext, load_index_from_storage
from llama_index.core.storage.docstore import SimpleDocumentStore
from llama_index.core.vector_stores import SimpleVectorStore
from llama_index.readers.github import GithubRepositoryReader, GithubClient
from llama_index.core.callbacks import (
CallbackManager,
LlamaDebugHandler,
CBEventType,
)
persistence_dir = "index"
github_token = os.getenv("GITHUB_TOKEN")
owner = "kubernetes"
repo = "kubernetes"
branch = "master"
llama_debug = LlamaDebugHandler(print_trace_on_end=True)
callback_manager = CallbackManager([llama_debug])
if os.getenv("RELOAD_INDEX") == "true":
github_client = GithubClient(os.getenv("GITHUB_TOKEN"))
print("getting docs")
documents = GithubRepositoryReader(
github_client,
owner=owner,
repo=repo,
use_parser=False,
verbose=False,
).load_data(branch=branch)
print("creating vector store")
index = VectorStoreIndex.from_documents(documents, callback_manager=callback_manager)
print("persisting index")
index.storage_context.persist(persist_dir=persistence_dir)
else:
print("loading index")
storage_context = StorageContext.from_defaults(persist_dir=persistence_dir)
print("building index")
index = load_index_from_storage(storage_context, callback_manager=callback_manager)
print("building engine")
query_engine = index.as_query_engine()
print("sending query")
response = query_engine.query(
"what podcast fields does it parse?"
)
llama_debug.flush_event_logs()
print(response)
print("\n\n=======\nDEBUG\n=======\n\n")
print(llama_debug.get_event_time_info(CBEventType.LLM))
print()
event_pairs = llama_debug.get_llm_inputs_outputs()
print("event pairs", event_pairs)
print()
print(event_pairs[0][0])
print()
print(event_pairs[0][1].payload.keys())
print()
print(event_pairs[0][1].payload["response"])
print()
输出是
❯ python ingest.py
loading index
building index
**********
Trace: index_construction
**********
building engine
sending query
The podcast fields that are parsed include title, link, description, pubDate, guid, itunes:subtitle, itunes:summary, itunes:author, itunes:explicit, itunes:duration, itunes:keywords, itunes:image, media:content, and enclosure.
=======
DEBUG
=======
Traceback (most recent call last):
File "/home/git/llama-index/ingest.py", line 59, in <module>
print(llama_debug.get_event_time_info(CBEventType.LLM))
File "/home/miniforge/lib/python3.9/site-packages/llama_index/core/callbacks/llama_debug.py", line 149, in get_event_time_info
return self._get_time_stats_from_event_pairs(event_pairs)
File "/home/miniforge/lib/python3.9/site-packages/llama_index/core/callbacks/llama_debug.py", line 128, in _get_time_stats_from_event_pairs
average_secs=total_secs / len(event_pairs),
ZeroDivisionError: float division by zero
相关日志/回溯
Traceback (most recent call last):
File "/home/git/llama-index/ingest.py", line 59, in <module>
print(llama_debug.get_event_time_info(CBEventType.LLM))
File "/home/miniforge/lib/python3.9/site-packages/llama_index/core/callbacks/llama_debug.py", line 149, in get_event_time_info
return self._get_time_stats_from_event_pairs(event_pairs)
File "/home/miniforge/lib/python3.9/site-packages/llama_index/core/callbacks/llama_debug.py", line 128, in _get_time_stats_from_event_pairs
average_secs=total_secs / len(event_pairs),
ZeroDivisionError: float division by zero
2条答案
按热度按时间ndh0cuux1#
嘿,@superb-owl,很高兴看到你再次回到调试的数字荒野!希望你在代码和更远的地方一切顺利。
感谢你提供详细的信息。你在
get_event_time_info
方法中遇到的除以零错误是由于没有CBEventType.LLM
类型的事件对。这个方法通过将总时间除以事件对的数量来计算平均时间。如果没有事件对,这将导致除以零错误。为了防止这种错误,你可以在执行除法之前添加一个检查,以确保有事件对。以下是你可以在代码中进行的一个简单的修改:
至于
get_llm_inputs_outputs
方法返回一个空列表,这可能是由于没有记录类型为CBEventType.LLM
的事件。这个方法专门过滤CBEventType.LLM
类型的事件。如果没有开始或结束这种类型的事件,该方法将返回一个空列表。这种情况可能发生在感兴趣的事件没有被正确分类为
CBEventType.LLM
,或者这些事件没有按照预期在系统操作中发生。你可能需要检查你的事件记录和分类逻辑,以确保它按预期工作。有关更多详细信息,请参阅 LlamaDebugHandler class 的源代码。
请告诉我是否需要进一步的帮助。
来源
关于 Dosu
此响应旨在节省您的时间并提供帮助。它不是精确的解决方案,而是您自己研究的一个起点。
帮助我变得更有用!如果你觉得这有帮助,请留下一个👍,如果不相关就留下一个👎。
如果你想继续对话,请用 @dosu-bot 开始回复。
sgtfey8w2#
你好,
我尝试使用我的OpenAI密钥在Llama Debug Handler Notebook上进行操作。那里的实现也是有问题的。