llama_index 如何删除元数据?

kyks70gy  于 23天前  发布在  其他
关注(0)|答案(2)|浏览(18)

问题验证

  • 我已在文档和Discord中搜索答案。

问题

如何删除元数据?

sqxo8psd

sqxo8psd1#

query_engine = RetrieverQueryEngine.from_args(
 streaming=False,
 retriever=hybrid_retriever,
 # text_qa_template=QA_PROMPT,
 node_postprocessors=[rerank_llm],
 response_synthesizer=response_synthesizer,
 llm=llm,
 similarity_top_k=5
)
cx6n0qe3

cx6n0qe32#

要在使用RetrieverQueryEngine的上下文中删除元数据,您可以创建节点的深拷贝,然后过滤掉要排除的元数据字段。以下是实现此操作的代码片段:

from copy import deepcopy

Create a deep copy of the nodes

nodes_no_metadata = deepcopy(uber_nodes) + deepcopy(lyft_nodes)

Remove all metadata except for "page_label" and "file_name"

for node in nodes_no_metadata:
node.metadata = {
k: node.metadata[k]
for k in node.metadata
if k in ["page_label", "file_name"]
}

Print the content to verify the metadata removal

print(
"LLM sees:\n",
(nodes_no_metadata)[9].get_content(metadata_mode=MetadataMode.LLM),
)


这段代码确保只保留"page_label"和"file_name"这两个元数据字段,有效地删除了所有其他元数据。

* 要继续与[Dosu](https://dosu.dev)交流,请提及@dosu。*

相关问题