LlamaIndex中的自动合并检索器:优化文本检索与合成
在本文中,我们将介绍LlamaIndex中的AutoMergingRetriever,这是一种能够递归地“合并”引用父节点超过给定阈值的叶节点子集的检索器。这种方法允许我们将潜在不同的、较小的上下文合并成一个较大的上下文,从而有助于合成。
设置环境
首先,确保你已经安装了必要的库并设置了OpenAI API密钥:
import os
import openai
os.environ["OPENAI_API_KEY"] = "sk-..."
openai.api_key = os.environ["OPENAI_API_KEY"]
下载数据
下载示例数据,这里我们使用Llama 2论文作为测试数据:
!mkdir -p 'data/'
!wget --user-agent "Mozilla" "https://arxiv.org/pdf/2307.09288.pdf" -O "data/llama2.pdf"
加载数据
加载PDF文件并将其合并为一个文档:
from pathlib import Path
from llama_index.readers.file import PyMuPDFReader
loader = PyMuPDFReader()
docs0 = loader.load(file_path=Path("./data/llama2.pdf"))
from llama_index.core import Document
doc_text = "\n\n".join([d.get_content() for d in docs0])
docs = [Document(text=doc_text)]
解析文本并创建节点层次结构
使用Hie