自然语言转SQL工具

该工具通过智能代理将自然语言转换为SQL查询,便于非技术用户探索AlloyDB数据库中的电子商务数据。

  • by miguel-toscano
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mtoscano84/agent-adk-alloydb-nl2sql

使用说明

用AlloyDB实现SQL的自然语言转换

此存储库展示了一个演示,重点是与AlloyDB数据库进行自然语言(NL)到SQL的交互。使用agent Development Kit(ADK)构建的智能代理利用MCP Toolbox自动将用户问题转换为SQL查询,为想象中的电子商务场景提供轻松的数据探索。

项目概述

本项目的核心目的是演示和利用自然语言到SQL(NL2SQL)转换的强大功能。这种能力使任何人都可以从复杂的电子商务数据中获得见解,而无需具备SQL专业知识。

关键演示

  • 启用会话查询:允许用户使用简单的英语而不是技术SQL语法查询和探索数据。

  • 智能代理开发:使用ADK定义一个可以解释自然语言查询语义含义的代理。

  • 无缝数据库集成:将代理连接到高性能、兼容PostgreSQL的AlloyDB实例。

  • 电子商务应用:展示一个实际环境,用户可以在其中提出有关产品、订单、客户等的复杂问题。

建筑

该解决方案包括以下关键组件:

  • AlloyDB: 存储电子商务数据的高性能、完全托管的PostgreSQL兼容数据库。它公开了AlloyDB自然语言API,这是负责从NL输入智能生成正确SQL查询的特定功能。
  • MCP工具箱: 它使用其原生工具alloydb nl-ai与alloydb通信,发送用户的nl问题并管理SQL生成和执行过程。
  • 代理开发工具包(ADK): 定义对话界面。它接收用户的自然语言问题,并通过MCP工具箱将其传递给NL2SQL引擎。
  • 电子商务数据库架构: 一个虚构的数据库模式,代表典型的电子商务实体,如产品、订单、客户等。

部署指南

按照以下步骤设置并运行NL2SQL代理演示。

所有命令和设置步骤都设计为从Google Cloud Shell终端执行。

开始之前

首先,启动Cloud Shell终端会话并克隆存储库:

git clone https://github.com/GoogleCloudPlatform/agent-adk-alloydb-nl2sql.git

设置数据库

使用电子商务模式设置和配置AlloyDB实例:

设置数据库

将自然语言配置为SQL

在AlloyDB中将自然语言配置为SQL功能和上下文:

在AlloyDB中配置NL

部署MCP工具箱

按照以下说明运行MCP Toolbox for Database to Cloud run:

部署MCP工具箱

部署您的代理

按照以下说明使用ADK部署代理:

部署您的代理

运行你的代理

你准备好聊天了!部署后,首先从上一步中启动的adk web界面询问有关电子商务数据的问题:

  • “无线鼠标”的当前价格是多少?

  • 显示“电子”类别中评论分数高于4.5的所有产品。

  • 自年初以来,“服装”的所有销售产生的总收入是多少?

  • 哪个产品类别的平均售价最低?

  • 列出上个月购买价格超过50美元的产品的所有客户的姓名。

  • 10月份哪个城市的总销售额最高?

  • 上一季度总销量排名前五的产品是什么?

清理你的资源

按照说明拆除所有已部署的资源:

清理你的资源