LLM 应用为何需要文本加载器及 LangChain 使用方法
在构建基于大语言模型(LLM)的应用,特别是检索增强生成(RAG)的本地应用时,数据源往往是多样化的。我们需要使用文本加载器来动态获取网页、文档或数据库中的数据。
在不同的应用场景中,需要使用不同的文本内容作为知识的载体。针对不同类型的文本,LangChain 提供了多种文本加载器(Document Loaders),帮助我们快速将非结构化数据转换为标准的 Document 对象,并进行切片处理,从而使开发者能将更多精力集中在核心业务逻辑的实现上。
什么是 Document Loader?
文档加载器的作用是将源数据加载为 Document 对象。一个 Document 包含两部分:
page_content:实际的文本内容。metadata:关联的元数据(如来源文件路径、页码、作者等)。
例如,存在用于加载简单 .txt 文件的加载器,也有用于加载任何网页文本内容甚至 YouTube 视频转录的加载器。
文档加载器通常提供以下方法:
- Load:从配置的源加载文档。
- Load and Split:加载文档并使用传入的文本切片器进行分割。
- Lazy load:可选实现,延迟将数据加载到内存中以节省资源。
加载 TXT 文档
对于简单的纯文本文件,可以使用 TextLoader。
from langchain_community.document_loaders import TextLoader
loader = TextLoader("./index.md")
docs = loader.load()
返回结果示例:
[
{
"page_content": "---\nsidebar_position: 0\n---\n# Document loaders...",
"metadata": {"source": "../docs/docs/modules/data_connection/document_loaders/index.md"}
}
]
CSV 数据处理
逗号分隔值(CSV)文件是常见的数据格式。每一行代表一条记录,字段由逗号分隔。
加载每行一个文档的 CSV 数据
默认情况下,CSVLoader 会将每一行作为一个独立的文档加载。
from langchain_community.document_loaders.csv_loader CSVLoader
loader = CSVLoader(file_path=)
data = loader.load()


