概览
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
- 内存中
安装带有 然后创建向量存储并加载测试文档有关
astra 扩展的 langchain-graph-retriever 包ASTRA_DB_API_ENDPOINT 和 ASTRA_DB_APPLICATION_TOKEN 凭据,请查阅 AstraDB 向量存储指南。:::note 为了更快的初始测试,请考虑使用内存中向量存储。:::图遍历
此图检索器从最符合查询的单个动物开始,然后遍历到共享相同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 参考。以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。