矢量存储和检索
本教程将帮助您熟悉 LangChain 的向量存储和检索器抽象,这些抽象旨在支持从(向量)数据库和其他来源检索数据,以便与大模型工作流程集成。 它们对于获取数据以作为模型推理的一部分进行推理的应用程序非常重要,例如在检索增强生成或 RAG 的情况下(请参阅此处的 RAG 教程)。
概念
本指南重点介绍文本数据的检索。我们将涵盖以下概念:
- 文档;
- 向量存储;
- 检索。
设置
安装
pip install langchain langchain-chroma langchain-openai
文档
LangChain 实现了文档抽象,旨在表示文本单元和相关元数据。它有两个属性:
- page_content: 代表内容的字符串;
- metadata: 包含任意元数据的字典。
元数据属性可以捕获有关文档来源、其与其他文档的关系以及其他信息的信息。请注意,单个 Document 对象通常代表较大文档的一部分。
元数据属性可以捕获有关文档来源、其与其他文档的关系以及其他信息的信息。请注意,单个 Document 对象通常代表较大文档的一部分。
让我们生成一些示例文档:
from langchain_core.documents import Document
documents = [
Document(
page_content="Dogs are great companions, known for their loyalty and friendliness.",
metadata={"source": "mammal-pets-doc"},
),
Document(
page_content="Cats are independent pets that often enjoy their own space.",
metadata={"source": "mammal-pets-doc"},
),
Document(
page_content="Goldfish are popular pets for beginners, requiring relatively simple care.",
metadata={"source": "fish-pets-doc"},
),
Document(
page_content="Parrots are intelligent birds capable of mimicking human speech.",
metadata={"source": "bird-pets-doc"},
),
Document(
page_content="Rabbits are social animals that need plenty of space to hop around.",
metadata={"source": "mammal-pets-doc"},
),
]
未完...