概述
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 获取实时答案。

