概述
langchain-graph-retriever 包中的 GraphRetriever 提供了一个 LangChain
retriever,它将向量上的非结构化相似性搜索
与元数据属性的结构化遍历相结合。这实现了在现有向量存储上进行基于图的
检索。
集成详情
| 检索器 | 来源 | 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 参考。Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

