用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功能和上下文:
部署MCP工具箱
按照以下说明运行MCP Toolbox for Database to Cloud run:
部署您的代理
按照以下说明使用ADK部署代理:
运行你的代理
你准备好聊天了!部署后,首先从上一步中启动的adk web界面询问有关电子商务数据的问题:
- “无线鼠标”的当前价格是多少?
- 显示“电子”类别中评论分数高于4.5的所有产品。
- 自年初以来,“服装”的所有销售产生的总收入是多少?
- 哪个产品类别的平均售价最低?
- 列出上个月购买价格超过50美元的产品的所有客户的姓名。
- 10月份哪个城市的总销售额最高?
- 上一季度总销量排名前五的产品是什么?
清理你的资源
按照说明拆除所有已部署的资源:
