本文将介绍 LangChain 的向量存储和抽象检索器。支持从向量数据库和其他来源检索数据,并与大模型的工作流集成。这对于需要检索数据以进行推理的应用程序非常重要,例如检索增强生成(RAG)的情况。
概念
本指南专注于文本数据的检索流程,涵盖以下核心组件:
- Documents:包含文本内容及元数据的文档对象。
- Vector Stores:用于存储和检索向量数据的数据库。
- Retrievers:标准化的检索接口,便于集成到工作流中。
环境准备
依赖安装
运行本教程需要安装以下 Python 包:
pip install langchain langchain-chroma langchain-openai
环境变量配置
为了启用 LangSmith 追踪,需设置环境变量。在终端中执行:
export LANGCHAIN_TRACING_V2="true"
export LANGCHAIN_API_KEY="your_api_key_here"
若在 Jupyter Notebook 中,可使用以下方式动态设置:
import getpass
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = getpass.getpass()
文档对象 (Documents)
LangChain 中的 Document 对象是处理文本的基本单元,它由两部分组成:
- page_content:字符串格式的实际文本内容。
- metadata:字典形式的元数据,可存储来源、作者、日期等信息。
单个文档通常代表较大文档的一个切片。以下是创建文档对象的示例:
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", "type": "pet"},
),
Document(
page_content="Cats are independent pets that often enjoy their own space.",
metadata={"source": "mammal-pets-doc", "type": "pet"},
),
Document(
page_content=,
metadata={: , : },
),
Document(
page_content=,
metadata={: , : },
),
Document(
page_content=,
metadata={: , : },
),
]


