主题
数据加载Document Loaders
在 LangChain 中,Document Loaders
是用于从各种数据源加载文档的工具。这些文档可以是文本文件、PDF、网页、数据库记录等。Document Loaders
的主要作用是将这些数据源中的内容加载为 LangChain 可以处理的格式,通常是 Document
对象。
常见的 Document Loaders
TextLoader: 用于加载纯文本文件。
pythonfrom langchain.document_loaders import TextLoader loader = TextLoader("example.txt") documents = loader.load()
PDFLoader: 用于加载 PDF 文件。
pythonfrom langchain.document_loaders import PDFLoader loader = PDFLoader("example.pdf") documents = loader.load()
WebBaseLoader: 用于加载网页内容。
pythonfrom langchain.document_loaders import WebBaseLoader loader = WebBaseLoader("https://example.com") documents = loader.load()
CSVLoader: 用于加载 CSV 文件。
pythonfrom langchain.document_loaders import CSVLoader loader = CSVLoader("example.csv") documents = loader.load()
DirectoryLoader: 用于加载一个目录下的所有文件。
pythonfrom langchain.document_loaders import DirectoryLoader loader = DirectoryLoader("path/to/directory", glob="*.txt") documents = loader.load()
NotionLoader: 用于加载 Notion 页面。
pythonfrom langchain.document_loaders import NotionLoader loader = NotionLoader("notion_page_url") documents = loader.load()
自定义 Document Loader
如果你需要从特定的数据源加载文档,而 LangChain 没有提供现成的 Loader,你可以自定义一个 Loader。自定义 Loader 需要继承 BaseLoader
类,并实现 load
方法。
python
from langchain.document_loaders.base import BaseLoader
from langchain.schema import Document
class CustomLoader(BaseLoader):
def __init__(self, data_source):
self.data_source = data_source
def load(self):
# 实现加载逻辑
data = self._fetch_data_from_source()
documents = [Document(page_content=item) for item in data]
return documents
def _fetch_data_from_source(self):
# 从数据源获取数据
return ["data1", "data2", "data3"]
# 使用自定义 Loader
loader = CustomLoader("custom_data_source")
documents = loader.load()
处理加载的文档
加载的文档通常是 Document
对象的列表,每个 Document
对象包含 page_content
和 metadata
两个属性。
python
for doc in documents:
print(f"Content: {doc.page_content}")
print(f"Metadata: {doc.metadata}")
Document Loaders
是 LangChain 中非常重要的组件,它们帮助我们从各种数据源中加载文档,并将其转换为 LangChain 可以处理的格式。通过使用现有的 Loader 或自定义 Loader,你可以轻松地将不同来源的数据集成到你的 LangChain 应用中。