使用 LangChain 为 RAG 加载文档

使用 LangChain 的 Retrieval Augmented Generation (RAG)

Meri Nova

Machine Learning Engineer

认识您的讲师…

 

Meri Nova

 

  • Break Into Data 创始人
  • 机器学习工程师
  • 领英与 YouTube 内容创作者

Meri 的照片。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

检索增强生成(RAG)

 

  • LLM 限制:知识受限

 

RAG:将外部数据与 LLM 集成

一个人以书本形式向 LLM 提供更多信息。

1 由 DALL·E 3 生成
使用 LangChain 的 Retrieval Augmented Generation (RAG)

标准 RAG 工作流

单个用户。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

标准 RAG 工作流

将用户查询发送到向量数据库。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

标准 RAG 工作流

从向量数据库检索相关文档。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

标准 RAG 工作流

将检索到的文档加入模型提示。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

标准 RAG 工作流

将提示发送给 LLM,并将输出返回给用户。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

为检索准备数据

正在加载文档。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

为检索准备数据

正在切分文档。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

为检索准备数据

对文档分块进行向量化。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

为检索准备数据

存储文档分块。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

文档加载器

 

  • 将文档接入 AI 系统
  • 支持多种常见文件格式
  • 第三方文档加载器

 

  • CSVLoader
  • PyPDFLoader
  • UnstructuredHTMLLoader

正在加载文档。

使用 LangChain 的 Retrieval Augmented Generation (RAG)

加载 CSV 文件

from langchain_community.document_loaders.csv_loader import CSVLoader

csv_loader = CSVLoader(file_path='path/to/your/file.csv')

documents = csv_loader.load() print(documents)
[Document(page_content='Team: Nationals\n"Payroll (millions)": 81.34\n"Wins": 98',
          metadata={'source': 'path/to/your/file.csv', 'row': 0}),
 Document(page_content='Team: Reds\n"Payroll (millions)": 82.20\n"Wins": 97',
          metadata={'source': 'path/to/your/file.csv', 'row': 1}),
 Document(page_content='Team: Yankees\n"Payroll (millions)": 197.96\n"Wins": 95',
          metadata={'source': 'path/to/your/file.csv', 'row': 2})]
使用 LangChain 的 Retrieval Augmented Generation (RAG)

加载 PDF 文件

from langchain_community.document_loaders import PyPDFLoader

pdf_loader = PyPDFLoader('rag_paper.pdf')
documents = pdf_loader.load()
print(documents)
[Document(page_content='Retrieval-Augmented Generation for\nKnowledge-Intensive...',
          metadata={'source': 'Rag Paper.pdf', 'page': 0})]
使用 LangChain 的 Retrieval Augmented Generation (RAG)

加载 HTML 文件

from langchain_community.document_loaders import UnstructuredHTMLLoader

html_loader = UnstructuredHTMLLoader(file_path='path/to/your/file.html')

documents = html_loader.load() first_document = documents[0]
print("Content:", first_document.page_content) print("Metadata:", first_document.metadata)
Content: Welcome to Our Website
Metadata: {'source': 'path/to/your/file.html', 'section': 0}
使用 LangChain 的 Retrieval Augmented Generation (RAG)

Passons à la pratique !

使用 LangChain 的 Retrieval Augmented Generation (RAG)

Preparing Video For Download...