概述
langchain-graph-retriever 包中的 GraphRetriever 提供了一个 LangChain
检索器,它结合了基于向量的非结构化相似性搜索和基于元数据属性的结构化遍历。这使得可以对现有向量存储进行基于图的检索。
集成详情
| 检索器 | 来源 | PyPI 包 | 最新版本 | 项目页面 |
|---|---|---|---|---|
GraphRetriever | github.com/datastax/graph-rag | langchain-graph-retriever | Graph 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 参考
要探索所有可用参数和高级配置,请参阅 Graph RAG API 参考。将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

