Python:从查询引擎响应中提取多个唯一的源文档

问题描述 投票:0回答:1

我正在开发一个涉及 llama_index 库的项目,其中我使用查询引擎的实例来检索对查询的响应。响应是 Response 类的一个实例,预计包含一个源节点列表,每个源节点代表一个对响应做出贡献的源文档。

我编写了一个函数,可以从响应中提取源文档的唯一文件名。然而,该函数始终仅返回一个文件名,即使响应明显源自多个源文档也是如此。这是我的功能:

def answer(vectorIndex, question):
storage_context = StorageContext.from_defaults(persist_dir='./storage')
vIndex = load_index_from_storage(storage_context)
query_engine = vIndex.as_query_engine()
query_response = query_engine.query(question)

filenames = set()
for source_node in query_response.source_nodes:
    filenames.add(source_node.node.extra_info["file_name"])
filenames = list(filenames)
return {"answer": query_response.response, "filenames": filenames}

我不确定问题是否在于我如何提取文件名,或者是否与底层查询引擎有关。当检查 query_response.source_nodes 时,它似乎只包含一个源节点(但多次)。

任何人都可以提供一些关于我可能做错的事情的见解,或者提供一些关于如何调试此问题的建议吗?我想返回所有有助于回复的独特源文档。

python flask set llama-index query-engine
1个回答
0
投票

你有解决这个问题的方法吗?

© www.soinside.com 2019 - 2024. All rights reserved.