概述
langchain-graph-retriever 包中的 GraphRetriever 提供了一个 LangChain
检索器,它结合了向量上的非结构化相似性搜索与元数据属性的结构化遍历。这使得能够基于现有向量存储进行基于图的检索。
集成详情
| 检索器 | 来源 | PyPI 包 | 最新版本 | 项目页面 |
|---|---|---|---|---|
GraphRetriever | github.com/datastax/graph-rag | langchain-graph-retriever | 图 RAG |
优势
- 基于现有元数据的链接: 使用现有元数据字段,无需额外处理。从现有向量存储中检索更多信息!
- 按需更改链接: 边可以动态指定,允许根据问题遍历不同的关系。
- 可插拔的遍历策略: 使用内置的遍历策略,如 Eager 或 MMR,或定义自定义逻辑以选择要探索的节点。
- 广泛的兼容性: 适用于多种向量存储的适配器,并且可以轻松添加对其他存储的支持。
设置
安装
此检索器位于langchain-graph-retriever 包中。
实例化
以下示例将展示如何对一些关于动物的示例文档执行图遍历。先决条件
填充向量存储
本节展示如何使用示例数据填充各种向量存储。 有关选择以下向量存储之一的帮助,或添加对您向量存储的支持,请查阅关于 适配器和支持的存储 的文档。- AstraDB
- Apache Cassandra
- OpenSearch
- Chroma
- InMemory
使用 然后创建向量存储并加载测试文档:有关
astra 额外功能安装 langchain-graph-retriever 包:ASTRA_DB_API_ENDPOINT 和 ASTRA_DB_APPLICATION_TOKEN 凭据,
请查阅 AstraDB 向量存储指南。:::note
为了更快的初始测试,考虑使用 InMemory 向量存储。
:::图遍历
此图检索器从与查询最匹配的单个动物开始,然后 遍历到共享相同habitat 和/或 origin 的其他动物。
start_k=1) 开始,检索 5 个文档 (k=5),并将搜索限制在距离
第一个动物最多 2 步的文档 (max_depth=2)。
edges 定义了元数据值如何用于遍历。在这种情况下,每个
动物都连接到具有相同 habitat 和/或 origin 的其他动物。
capybara、heron、frog、crocodile 和 newt 都
共享相同的 habitat=wetlands,如其元数据所定义。这应会增加
文档相关性和 LLM 答案的质量。
与标准检索的比较
当max_depth=0 时,图遍历检索器的行为类似于标准检索器:
start_k=5) 开始,
并在没有任何遍历的情况下返回它们 (max_depth=0)。在这种情况下,
边定义被忽略。
这本质上等同于:
用法
遵循以上示例,使用invoke 来启动对查询的检索。
API 参考
要探索所有可用参数和高级配置,请参阅 图 RAG API 参考。通过 MCP 将这些文档连接到 Claude、VSCode 等 以获取实时答案。

