这是一个 LangChain 向量存储抽象的实现,使用代码位于一个名为 langchain-postgres 的集成包中。postgres作为后端并利用pgvector扩展。
状态
此代码已从langchain-community 移植到一个名为 langchain-postgres 的专用包中。已进行以下更改:
langchain-postgres仅与 psycopg3 兼容。请将您的连接字符串从postgresql+psycopg2://...更新为postgresql+psycopg://langchain:langchain@...(是的,驱动程序名称是psycopg而不是psycopg3,但它将使用psycopg3)。- 嵌入存储和集合的架构已更改,以使
add_documents能与用户指定的 ID 正确配合工作。 - 现在必须传递一个显式的连接对象。
设置
首先下载合作伙伴包:pgvector 扩展的 postgres 容器:
凭证
运行此笔记本不需要任何凭据,只需确保您已下载langchain-postgres 包并正确启动了 postgres 容器。
如果您希望获得最佳级别的模型调用自动跟踪,您也可以通过取消注释下方来设置您的 LangSmith API 密钥:
实例化
管理向量存储
向向量存储添加项目
请注意,通过 ID 添加文档将覆盖任何匹配该 ID 的现有文档。从向量存储删除项目
查询向量存储
一旦您的向量存储已创建并添加了相关文档,您很可能希望在链或代理运行期间对其进行查询。筛选支持
向量存储支持一组可以应用于文档元数据字段的筛选器。| 运算符 | 含义/类别 |
|---|---|
| $eq | 相等 (==) |
| $ne | 不相等 (!=) |
| $lt | 小于 (<) |
| $lte | 小于或等于 (<=) |
| $gt | 大于 (>) |
| $gte | 大于或等于 (>=) |
| $in | 特殊情况 (in) |
| $nin | 特殊情况 (not in) |
| $between | 特殊情况 (between) |
| $like | 文本 (like) |
| $ilike | 文本 (不区分大小写的 like) |
| $and | 逻辑 (and) |
| $or | 逻辑 (or) |
直接查询
执行简单的相似性搜索可以如下完成:PGVector 向量存储上执行的不同搜索的完整列表,请参阅 API 参考。
通过转换为检索器进行查询
您也可以将向量存储转换为检索器,以便在链中更轻松地使用。用于检索增强生成的用法
有关如何将此向量存储用于检索增强生成 (RAG) 的指南,请参阅以下部分:API 参考
有关所有 PGVector VectorStore 功能和配置的详细文档,请前往 API 参考通过 MCP 将这些文档连接到 Claude、VSCode 等 以获取实时答案。

