简介
这是一份面向开发者的指南,旨在帮助您通过GPT Action赋予ChatGPT查询SQL数据库的能力。在阅读本指南前,请先熟悉以下内容:
本指南概述了通过中间件应用程序将ChatGPT连接到SQL数据库所需的工作流程。我们将以PostgreSQL数据库为例,但该过程应适用于所有SQL数据库(MySQL、MS SQL Server、Amazon Aurora、Google Cloud上的SQL Server等)。本文档概述了创建GPT Action所需的步骤,该Action可以:
- 对SQL数据库执行读取查询
- 通过文本响应返回记录
- 通过CSV文件返回记录
价值与示例商业应用场景
价值: 用户现在可以利用ChatGPT的自然语言能力来回答关于SQL数据库中数据的问题:
- 业务用户无需编写SQL或向分析师提交请求即可访问SQL数据库中包含的信息
- 数据分析师可以通过提取数据并使用ChatGPT进行分析,执行超出SQL查询能力的复杂分析
示例用例:
- 业务用户需要回答有关其销售漏斗的问题
- 数据分析师需要对大型数据集执行回归分析
应用设计考量
鉴于大多数托管SQL数据库不提供用于提交查询的REST API,您需要一个中间件应用程序来执行以下功能:
- 通过REST API请求接收数据库查询
- 将查询转发到集成的SQL数据库
- 将数据库响应转换为CSV文件
- 将CSV文件返回给请求者
设计第一个函数主要有两种方法:
- The middleware supports a single method for receiving arbitrary SQL queries generated by the GPT and forwards them to the database. The benefits of this approach include:
- 开发便捷性
- 灵活性(无需预先预测用户会提出何种查询)
- 维护成本低(无需因数据库变更而更新API架构)
- 该中间件支持多种与特定允许查询相对应的方法。这种方法的优势包括: 4. 更强的控制力 5. 生成SQL时模型出错的机会更少
本指南将重点介绍选项1。对于对选项2感兴趣的读者,可以考虑实施类似PostgREST或Hasura的服务来简化流程。
应用架构图
中间件注意事项
开发者可以构建自定义中间件(通常作为无服务器函数部署在AWS、GCP或MS Azure等云服务提供商上),也可以使用第三方解决方案(如Mulesoft Anypoint或Retool Workflows)。使用第三方中间件可以加速开发流程,但相比自主构建灵活性较低。
构建自己的中间件可以让您更好地控制应用程序的行为。有关自定义中间件的示例,请参阅我们的Azure Functions 食谱。
本指南不会深入探讨中间件的具体设置细节,而是重点关注中间件与GPT和SQL数据库的交互接口。
工作流程步骤
1) GPT生成SQL查询
GPTs非常擅长根据用户的自然语言提示编写SQL查询。您可以通过以下任一方式让GPT访问数据库模式,从而提高其查询生成能力:
- 指示GPT首先查询数据库以获取模式(这种方法在我们的BigQuery烹饪指南中有更详细的演示)。
- 在GPT指令中提供模式(最适合小型静态模式)
以下是包含简单数据库模式信息的GPT指令示例: