Spanner AI 概览

Spanner 及其多模型功能与Google Cloud的 AI 服务和 LangChain(一个开源框架)集成,可帮助构建生成式 AI 应用。您可以使用相似度搜索、检索增强生成 (RAG) 和知识图谱等功能来增强应用。Spanner 在其可伸缩性、可用性和一致性的基础上构建了此功能。

将 Spanner 与 Vector Search 搭配使用,以对非结构化文本数据实现相似度搜索。Spanner 与 Vertex AI 等服务集成,以调用非结构化文本数据生成向量嵌入。这些嵌入是反映文本语义含义的数值表示法。如需查找概念上相似的项,您可以使用向量距离函数来查找与搜索请求的嵌入最相似的嵌入向量。通过此流程,您可以构建商品或内容推荐等功能。

首先,请为现有文本数据批量生成和回填 Vertex AI 向量嵌入。为此,您可以使用 SQL 和 Vertex AI 嵌入模型(例如 文本嵌入 API 文档中介绍的 text-embedding 模型)。Spanner 支持将近似最近邻 (ANN)K 最近邻 (KNN) 与查询向量嵌入搭配使用。ANN 使用向量索引进行快速且可伸缩的搜索,并返回近似结果。KNN 会执行详尽的搜索,返回更准确的结果,但对于大型数据集来说速度可能较慢。您可以使用多种向量距离函数来衡量相似度,包括:

  • 余弦距离:衡量两个向量之间夹角的余弦值,有助于查找方向相似的项,而无需考虑大小。

  • 欧几里得距离:衡量两个向量之间的直线距离。

  • 点积:计算向量大小的乘积以及它们之间夹角的余弦值。对于归一化向量,这可能是计算效率最高的选项。

如需了解详情,请参阅以下主题:

使用 SQL 生成机器学习预测

您可以在 Spanner 中使用 SQL 查询来调用部署在 Vertex AI 中的大语言模型 (LLM)。通过直接访问 LLM,您可以对存储在 Spanner 中的数据运行预测,以执行情感分析、文本分类和翻译等任务。

通过使用 ML.PREDICT (GoogleSQL) 或 spanner.ML_PREDICT_ROW (PostgreSQL) 函数,您可以生成机器学习 (ML) 预测,而无需移动数据或编写自定义应用代码来与 LLM 互动。这可简化应用架构,并使 ML 功能更贴近数据。如需了解详情,请参阅使用 SQL 生成机器学习预测

使用 Model Context Protocol (MCP) 连接到 LLM 代理

您可以将 Spanner 实例连接到支持 Model Context Protocol (MCP) 的 IDE。MCP 是一种开放协议,可用于将 LLM 连接到 Spanner 中的数据。连接后,LLM 代理可以查询 Spanner 实例并与之互动。如需了解详情,请参阅将 IDE 连接到 Spanner

使用 Spanner 图发掘数据洞见

对于更高级的 RAG 应用场景,Spanner Graph 将图表数据库功能与 Spanner 的核心优势相结合。借助 Spanner Graph,您可以对高度关联的数据进行建模、存储和查询。

将 Spanner Graph 与 LangChain 集成,以构建 GraphRAG 应用。此集成可增强传统 RAG。借助 GraphRAG,您可以创建可捕获实体之间复杂关系(例如知识图谱)的应用。除了向量搜索之外,该集成还使用图表查询来捕获数据中复杂的隐式关系。与单独使用 Vector Search 相比,同时使用图表查询和 Vector Search 可以从 LLM 中获得更准确且相关的回答。

如需了解详情,请参阅使用 Vertex AI 和 Spanner Graph 为生成式 AI 构建 GraphRAG 基础设施

使用 LangChain 构建依托 LLM 的应用

Spanner 提供了多个类,可用于以编程方式使用 LangChain。LangChain 是一个 LLM 编排框架,可提供结构、工具和组件来简化复杂的 LLM 工作流。使用 LangChain 构建生成式 AI 应用和 RAG 工作流。适用于 Spanner 的可用 LangChain 类包括:

  • SpannerVectorStore:存储和搜索向量嵌入,以使用该类在应用内启用相似度搜索。

  • SpannerLoader:加载来自 Spanner 的数据,以便在嵌入中使用或为 LLM 链提供特定上下文。

  • SpannerChatMessageHistory:通过在 Spanner 数据库中存储对话历史记录,启用对话式 AI 应用。

如需了解详情,请参阅使用 LangChain 构建依托 LLM 的应用LangChain 的 Spanner 客户端库

探索使用场景

利用 Spanner 的 AI 功能,为以下应用场景构建智能应用:

  • 电子商务商品推荐引擎:为商品说明生成向量嵌入,以支持商品推荐引擎。该引擎可以向客户推荐类似商品,从而提升客户的购物体验并提高销售额。如需了解详情,请参阅使用生成式 AI 在电子商务应用中获取个性化推荐

  • 管理聊天消息记录:使用 Spanner 和 LangChain 存储和检索对话记录。 Spanner 会将此数据存储在数据库中,并提供 SpannerChatMessageHistory 类。此类扩展了 LangChain 基类,用于保存和检索数据库中的消息。如需了解详情,请参阅 Spanner 中的聊天消息记录

  • 金融欺诈检测:使用 Spanner Graph 分析用户、账号和交易之间的复杂关系,以识别可疑模式和异常情况,这些情况使用传统的关系型数据库可能难以检测到。

  • 全面了解客户:借助 Spanner Graph,您可以跟踪客户关系、偏好设置和交易记录,从而全面了解客户。 从而提供个性化推荐、有针对性的营销活动,并提升客户服务体验。

  • 社交网络:使用 Spanner Graph 对用户活动和互动进行建模,以提供好友推荐并发现社交网络中的内容。

后续步骤

如需详细了解如何在 Spanner 中实现 AI 功能,请参阅以下主题: