如何删除元数据?
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 )
cx6n0qe32#
要在使用RetrieverQueryEngine的上下文中删除元数据,您可以创建节点的深拷贝,然后过滤掉要排除的元数据字段。以下是实现此操作的代码片段:
RetrieverQueryEngine
from copy import deepcopy
nodes_no_metadata = deepcopy(uber_nodes) + deepcopy(lyft_nodes)
for node in nodes_no_metadata:node.metadata = {k: node.metadata[k]for k in node.metadataif k in ["page_label", "file_name"]}
print("LLM sees:\n",(nodes_no_metadata)[9].get_content(metadata_mode=MetadataMode.LLM),)
这段代码确保只保留"page_label"和"file_name"这两个元数据字段,有效地删除了所有其他元数据。 * 要继续与[Dosu](https://dosu.dev)交流,请提及@dosu。*
2条答案
按热度按时间sqxo8psd1#
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),
)