LangChain 向量存储抽象的实现,使用 gel 作为后端。
Gel 是一个开源的 PostgreSQL 数据层,针对快速开发到生产周期进行了优化。它带有一个高级的严格类型图状数据模型、可组合的分层查询语言、完整的 SQL 支持、迁移、身份验证和 AI 模块。 代码位于一个名为 langchain-gel 的集成包中。设置
首先安装相关软件包初始化
为了将 Gel 用作VectorStore 的后端,您需要一个可用的 Gel 实例。幸运的是,这不必涉及 Docker 容器或任何复杂的事情,除非您想! 要设置本地实例,请运行:设置模式
Gel 模式 是对应用程序数据模型的一个明确的高级描述。除了能够让您精确定义数据如何布局之外,它还驱动着 Gel 的许多强大功能,例如链接、访问策略、函数、触发器、约束、索引等等。 LangChain 的VectorStore 期望模式的以下布局: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/以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。