使用 gel 作为后端的 LangChain 向量存储抽象实现。
Gel 是一款开源 PostgreSQL 数据层,针对快速从开发到生产的周期进行了优化。它提供高层次的严格类型化图状数据模型、可组合的层次化查询语言、完整的 SQL 支持、迁移、Auth 和 AI 模块。
相关代码位于名为 langchain-gel 的集成包中。
设置
首先安装相关包:初始化
要将 Gel 用作VectorStore 的后端,您需要一个正常运行的 Gel 实例。
幸运的是,这不一定需要 Docker 容器或其他复杂操作(除非您有此需求)。
要设置本地实例,请运行:
设置 Schema
Gel schema 是对应用程序数据模型的显式高层描述。 除了让您精确定义数据的布局方式外,它还驱动 Gel 的许多强大功能,如链接、访问策略、函数、触发器、约束、索引等。 LangChain 的VectorStore 期望 schema 采用以下布局:
GelVectorStore 可作为 LangChain 中任何其他向量存储的直接替代品使用。
实例化
管理向量存储
向向量存储添加条目
注意,通过 ID 添加文档会覆盖与该 ID 匹配的任何现有文档。从向量存储删除条目
查询向量存储
向量存储创建完毕并添加相关文档后,您很可能需要在链或代理运行过程中对其进行查询。过滤支持
向量存储支持一组可应用于文档元数据字段的过滤器。| 运算符 | 含义/类别 |
|---|---|
| $eq | 等于 (==) |
| $ne | 不等于 (!=) |
| $lt | 小于 (<) |
| $lte | 小于或等于 (<=) |
| $gt | 大于 (>) |
| $gte | 大于或等于 (>=) |
| $in | 特殊用途(in) |
| $nin | 特殊用途(not in) |
| $between | 特殊用途(between) |
| $like | 文本(like) |
| $ilike | 文本(不区分大小写的 like) |
| $and | 逻辑(and) |
| $or | 逻辑(or) |
直接查询
简单相似度搜索可按如下方式执行:转换为检索器后查询
您也可以将向量存储转换为检索器,以便在链中更方便地使用。用于检索增强生成
关于如何将此向量存储用于检索增强生成(RAG)的指南,请参阅以下章节:API 参考
有关所有 GelVectorStore 功能和配置的详细文档,请前往 API 参考:python.langchain.com/api_reference/通过 MCP 将这些文档连接到 Claude、VSCode 等,获取实时答案。

