您可以结合使用 LlamaIndex 和 Spanner Graph 来构建使用图检索增强生成 (GraphRAG) 的大语言模型 (LLM) 应用。
Spanner Graph 通过其属性图表存储区功能与 LlamaIndex 集成,让您可以使用以下内容来创建数据检索工作流:
属性图表存储区:通过在图表数据库中存储节点和边缘,让您能够以图表形式表示数据。您可以使用图数据库查询数据中的复杂关系。
图表检索器:可让您使用 LLM 将用户的自然语言问题转换为图表存储区的查询。这使应用能够使用图表数据中的结构化关系来回答问题。
什么是 LlamaIndex?
LlamaIndex 是一个用于构建 LLM 应用的数据框架,可帮助您简化检索增强生成 (RAG) 和其他上下文感知系统的开发。LlamaIndex 提供将 LLM 与您的数据相关联的工具,可帮助您进行数据注入、索引编制和查询。您可以将 LlamaIndex 与 LLM 搭配使用,以构建可提供准确且相关回答的应用。
如需详细了解 LlamaIndex 框架,请参阅 LlamaIndex 产品文档。
Spanner 的属性图表存储区
属性图表存储区可在应用中用于执行以下操作:
从文档中提取实体和关系,并将其存储为图。
对图结构执行复杂的遍历和分析。
使用 Graph Query Language (GQL) 查询图表,为 LLM 提供特定上下文。
如需在 Spanner Graph 中使用属性图表存储区,请使用 SpannerPropertyGraphStore
类。
属性图表存储区教程
如需了解如何将属性图表存储区与 Spanner 搭配使用,请参阅 Spanner 的属性图表存储区教程。 本教程可帮助您了解如何执行以下操作:
安装
llama-index-spanner
软件包和 LlamaIndex初始化
SpannerPropertyGraphStore
类并使用它来连接到您的 Spanner 数据库。使用 LlamaIndex 知识图谱提取器将包含从文档中提取的数据的节点和边添加到 Spanner Graph。
使用 GQL 查询图表,检索结构化信息。
直观呈现图表查询结果。
适用于 Spanner 的图表检索器
LlamaIndex 中的图表检索器是一种组件,它使用 LLM 将用户的自然语言问题转换为图表存储区的查询。应用使用生成的查询,通过图表数据中的结构化关系来回答问题。图表检索器使用以下工作流程根据自然语言查询生成答案:
提示 LLM 将自然语言问题转换为 GQL 查询。
使用 Spanner Graph 和
SpannerPropertyGraphStore
类针对图表存储区运行 GQL 查询。使用 Spanner Graph 将查询返回的结构化数据发送到 LLM。
使用 LLM 生成直观易懂的回答。
使用 LlamaIndex 检索器类
以下 LlamaIndex 图表检索器类可与 Spanner Graph 搭配使用,以生成 LLM 提示的人类可读答案:
SpannerGraphTextToGQLRetriever
类
SpannerGraphTextToGQLRetriever
类将自然语言转换为 GQL 查询,以便从图表中提取数据。
SpannerGraphCustomRetriever
类
SpannerGraphCustomRetriever
类实现了混合检索方法。SpannerGraphCustomRetriever
通过以下步骤处理具体问题和概念性问题:
同时执行以下搜索:
一种图表搜索,可将自然语言问题转换为使用图表查找答案的 GQL 查询。
向量搜索或语义搜索,用于查找概念相关的信息。
合并图搜索和向量搜索的结果。
使用 LLM 评估并重新排名合并后的结果。LLM 会选择最相关且能感知上下文的信息来回答原始问题。
图检索器教程
如需了解如何将图表检索器与 Spanner 搭配使用来回答问题,请参阅 Spanner 的图表检索器教程。本教程将介绍如何执行以下操作:
从非结构化文本 blob 创建图表。
使用
SpannerPropertyGraphStore
类将图表存储在 Spanner 中使用图存储区和 LLM 初始化
SpannerGraphTextToGQLRetriever
类和SpannerGraphCustomRetriever
实例。使用存储在 Spanner 中的图表数据生成自然语言问题的答案。
后续步骤
如需了解如何将 Spanner 与其他 Google Cloud 产品搭配使用来构建生成式 AI 应用,请参阅 Spanner AI 概览。
如需了解 Spanner 中的矢量搜索,请参阅将矢量搜索与 Spanner Graph 搭配使用。
如需了解如何使用 Spanner 存储向量嵌入,请参阅获取 Spanner 文本嵌入。
如需详细了解如何将机器学习与 Spanner 搭配使用,请参阅 Vertex AI 集成概览。