框架与工具链3199 字

LangChain多数据源集成

·全库 332 / 611

《LangChain多数据源集成》共 0.3 万字,通篇围绕 LangChain、RAG、embedding、向量 展开,归在「框架与工具链」这一层。

覆盖LangChainRAGembedding向量检索OCR

适合要选技术栈、不想把别人踩过的坑重踩一遍的人

目录骨架(4 节)
  1. 如何加载 CSV 文件
  2. 如何加载 HTML
  3. 如何加载 Markdown
  4. 如何加载 PDF文件

示例代码

注:将ppt后缀名改为zip后解压

python版本:3.12.4

​

LangChain与各种数据源有数百个集成,可以从中加载数据:Slack、Notion、Google Drive等。 每个文档加载器都有自己特定的参数,但它们可以通过相同的方式使用.load方法调用。 以下是一个示例用法:

from langchain_community.document_loaders.csv_loader import CSVLoader
loader = CSVLoader(
    ...  # <-- 在这里添加特定于集成的参数
)
data = loader.load()

如何加载 CSV 文件

逗号分隔值(CSV)文件是一种使用逗号分隔值的定界文本文件。文件的每一行是一个数据记录。每个记录由一个或多个字段组成,字段之间用逗号分隔。

LangChain 实现了一个 CSV 加载器,可以将 CSV 文件加载为一系列 Document 对象。CSV 文件的每一行都会被翻译为一个文档。

#示例:csv_loader.py
from langchain_community.document_loaders.csv_loader import CSVLoader

file_path = (
    "../../resource/doc_search.csv"
)
loader = CSVLoader(file_path=file_path,encoding="UTF-8")
data = loader.load()
for record in data[:2]:
    print(record)
page_content='名称: 狮子
种类: 哺乳动物
年龄: 8
栖息地: 非洲草原' metadata={'source': '../../resource/doc_search.csv', 'row': 0}
page_content='名称: 大熊猫
种类: 哺乳动物
年龄: 5
栖息地: 中国竹林' metadata={'source': '../../resource/doc_search.csv', 'row': 1}

自定义 CSV 解析和加载

CSVLoader 接受一个 csv_args 关键字参数,用于自定义传递给 Python 的 csv.DictReader 的参数。有关支持的 csv 参数的更多信息,请参阅 csv 模块 文档。

#示例:csv_custom.py
from langchain_community.document_loaders.csv_loader import CSVLoader

file_path = (
    "../../resource/doc_search.csv"
)
loader = CSVLoader(
    file_path=file_path,
    encoding="UTF-8",
    csv_args={
        "delimiter": ",",
        "quotechar": '"',
        "fieldnames": ["Name", "Species", "Age", "Habitat"],
    },
)
data = loader.load()
for record in data[:2]:
    print(record)
page_content='Name: 名称
Species: 种类
Age: 年龄
Habitat: 栖息地' metadata={'source': '../../resource/doc_search.csv', 'row': 0}
page_content='Name: 狮子
Species: 哺乳动物
Age: 8
Habitat: 非洲草原' metadata={'source': '../../resource/doc_search.csv', 'row': 1}

如何加载 HTML

超文本标记语言(HTML)是用于在Web浏览器中显示的文档的标准标记语言。

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求