递归检索器与文档代理:在异构文档中进行高级决策
在处理大量异构文档时,如何进行高效且智能的决策是一个常见挑战。本文将介绍一种名为“递归检索器与文档代理”的技术,通过结合递归检索和文档代理,实现对异构文档的高级决策。我们将通过一个实际示例,展示如何在LlamaIndex中应用这一技术,帮助你更好地理解和应用。
动机
在处理文档时,我们常常面临两个主要问题:
- 检索嵌入与块基合成解耦:通常通过文档摘要进行检索会比通过原始块进行检索返回更相关的上下文。递归检索直接支持这一点。
- 文档内动态任务:用户可能需要在文档内执行超出基于事实的问答的任务。我们引入了“文档代理”的概念——代理可以访问给定文档的向量搜索和摘要工具。
前置知识
在深入学习递归检索器与文档代理之前,你需要了解以下基础知识:
- Python编程:熟悉Python语言及其常用库。
- 自然语言处理(NLP):了解基本的NLP概念和技术。
- 向量数据库:了解向量数据库的基本概念和使用方法。
安装与配置
首先,我们需要安装必要的库,并配置OpenAI API密钥。
%pip install llama-index-llms-openai
%pip install llama-index-agent-openai
!pip install llama-index
import os
os.environ["OPENAI_API_KEY"] = "sk-..."
下载数据
我们将从Wikipedia下载关于不同城市的文章,并将其存储在单独的文件中。
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.core import SummaryIndex
from llama_index.core.schema import IndexNode
from llama_index.core.tools import QueryEngineTool, ToolMetadata
from llama_index.llms.openai import OpenAI
wiki_titles = ["Toronto", "Seattle", "Chicago", "Boston", "Houston"]
from pathlib import Path
import requests
for title in wiki_titles:
response = requests.get(
"https://en.wikipedia.org/w/api.php",
params={

最低0.47元/天 解锁文章
1683

被折叠的 条评论
为什么被折叠?



