课程:Loader 相关内容讲解
概念解释
Loader(加载器):在机器学习和自然语言处理领域,加载器(Loader)是指用于从不同数据源读取数据并将其转换为特定格式(如Document对象)的工具。在LlamaIndex中,加载器也被称为数据连接器(Data Connector)或阅读器(Reader)。
Document(文档):在LlamaIndex中,Document是一个包含数据(目前主要是文本,未来可能包括图像、音频等)及其元数据的对象。元数据提供了关于数据的信息,例如数据的来源、格式等。
使用 SimpleDirectoryReader 加载数据
SimpleDirectoryReader 是LlamaIndex中最简单的加载器之一,它可以读取指定目录中的所有文件,并将每个文件转换为一个Document对象。SimpleDirectoryReader支持多种文件格式,包括Markdown、PDF、Word文档、PowerPoint演示文稿、图像、音频和视频。
示例代码:
from llama_index.core import SimpleDirectoryReader
# 从指定目录加载数据
documents = SimpleDirectoryReader("./data").load_data()
在这个示例中,SimpleDirectoryReader
读取 ./data
目录中的所有文件,并将每个文件转换为一个 Document
对象。
使用 LlamaHub 中的 Readers
由于数据来源多种多样,LlamaIndex 并没有内置所有可能的数据连接器。相反,用户可以从 LlamaHub 下载并安装所需的数据连接器。
示例代码:
from llama_index.core import download_loader
from llama_index.readers.database import DatabaseReader
# 下载并安装 DatabaseReader 连接器
reader = DatabaseReader(
scheme=os.getenv("DB_SCHEME"),
host=os.getenv("DB_HOST"),
port=os.getenv("DB_PORT"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASS"),
dbname=os.getenv("DB_NAME"),
)
# 执行 SQL 查询并加载数据
query = "SELECT * FROM users"
documents = reader.load_data(query=query)
在这个示例中,DatabaseReader
连接器从SQL数据库中执行查询,并将查询结果的每一行转换为一个 Document
对象。
直接创建 Document 对象
除了使用加载器,用户还可以直接创建 Document
对象。
示例代码:
from llama_index.core import Document
# 直接创建 Document 对象
doc = Document(text="text")
在这个示例中,我们直接创建了一个包含文本内容的 Document
对象。
总结
通过本课程,我们详细讲解了Loader的概念及其在LlamaIndex中的应用。我们介绍了如何使用 SimpleDirectoryReader
从目录中加载数据,如何从 LlamaHub 下载并使用数据连接器,以及如何直接创建 Document
对象。这些内容将帮助学生更好地理解和应用LlamaIndex中的数据加载功能。