1 0 0

使用 ChatGPT、PostgreSQL 和 ToolJet 创建 SQL 生成器应用程序

夏天玩Chat
2023-3-29 840

在本教程中,您将学习如何使用 ChatGPT、ToolJet 和 PostgreSQL 构建 SQL 生成器应用程序。

用户可以用简单的英语句子陈述他们想要从数据库中检索的数据类型,然后 ChatGPT 将它们转换为从数据库中提取数据所需的适当 SQL 语法。
我们将为应用程序界面使用 ToolJet。

什么是 ToolJet?

ToolJet 是一个开源低代码框架,使我们能够在几分钟内构建全栈 Web 应用程序。使用 ToolJet,您可以创建独立的全功能全堆栈应用程序或将应用程序嵌入到其他网站中。

ToolJet 允许您构建使用关系和非关系数据库、REST API 和云存储(如 Google Cloud Storage、  AWS S3和 Minio)的应用程序。它是一种出色的开发工具,可帮助个人、开发人员和企业更快地创建和发布产品。

什么是聊天 GPT?

ChatGPT 是当下最受关注的技术。它是OpenAI训练的一种 AI 语言模型,  用于回答问题、提供信息并与用户进行人类语言对话。

ChatGPT 执行编写、调试和解释代码片段等任务。凭借其最新的语言模型GPT-4,ChatGPT 可以接受图像作为提示,并根据给定的提示或命令提供答案。

在本文中,我们将使用 ChatGPT 从纯英文单词生成 SQL 查询语法。在我们开始之前,让我们设置应用程序的数据库。

设置 ElephantSQL (PostgreSQL) 数据库

ElephantSQL使我们能够在云端而不是本地计算机上创建 PostgreSQL 数据库。

按照以下步骤创建 PostgreSQL 数据库:

在这里创建一个 ElephantSQL 帐户 。

添加一个新的数据库实例。不需要信用卡或账单信息。

创建数据库实例后,将显示您的数据库信息。

使用 ToolJet 设计应用程序界面

在这里,您将学习如何创建 ToolJet 帐户并使用 ToolJet 设计功能齐全的应用程序。

如果您是 ToolJet 的新手,请创建一个帐户

创建一个工作区和一个名为 SQL Generator 的新应用程序。

设计一个类似于下图的用户界面。ToolJet 使您能够通过拖放各种 UI 组件来创建应用程序的界面。

从上图中,我添加了以下内容:

具有列名称和年龄的表组件,

用作表单标签的文本组件,

接受纯英语 SQL 查询的 TextInput 组件。

显示生成的 SQL 查询的只读文本输入组件,以及两个按钮。

一个用于从 ChatGPT 生成 SQL 查询,另一个用于在 PostgreSQL 数据库上执行查询。

如何在 ToolJet 中与 ChatGPT 通信

在这里,您将了解如何通过 ToolJet 中的 Rest API 与 ChatGPT 进行通信。

ToolJet 允许我们通过称为查询面板的面板与外部资源通信或创建自定义函数。在 ToolJet 中,任何与以下任何一项通信的函数:数据库、API、云存储,并运行 JavaScript 或 Python 代码,都称为查询。

设置 OpenAI 帐户

在此处登录或创建 OpenAI 帐户 。

点击Personal导航栏,View API keys在菜单栏中选择新建秘钥。

生成一个新的 API 密钥并将其复制到您计算机上的某个位置。我们将在下一节中使用它。

在 ToolJet 中与 ChatGPT API 通信

在您的查询面板上,选择 REST API 并创建一个到 ChatGPT 端点的 POST 请求 - https://api.openai.com/v1/chat/completions。

如上图所示,我将以下内容添加到查询标头变量中。

Content-Type: application/json
Authorization: Bearer <YOUR_CHATGPT_API_KEY>

启用转换并将下面的代码复制到代码编辑器中,以从请求中检索所需的确切响应。

const choices = data.choices[0];
return choices.message.content;

单击 Body,启用 Raw JSON,并将下面的代码复制到代码编辑器中 - 它包含随 POST 请求一起发送的参数。

{
    "model": "gpt-3.5-turbo",
    "messages": [
        {
            "role": "user",
            "content": "Write the SQL query for this operation: {{components.textarea1.value}}. I need only the SQL query. No explanations, please."
        }
    ]
}

上面的代码片段使用了 OpenAI 提供的 GPT-3.5 Turbo 模型,content 变量包含发送到 ChatGPT API 的提示。

ToolJet 允许用户访问每个组件的属性和值。因此,{{components.textarea1.value}}代表用户提供的值(简单的英语命令)。

PS:你的可能不是textarea1,如果是,改成组件名供用户输入。

 

最后,点击Save按钮。

到目前为止,我们已经配置了 ChatGPT 查询。接下来,让我们在用户单击按钮时执行查询Generate SQL Command。

从上图中,我on Click向按钮添加了一个事件,ChatGPT 查询在用户单击该按钮时运行。它接受用户的输入并在用户单击按钮时发送对其等效 SQL 语法的请求。

要显示结果,请更新只读文本输入组件的默认值,方法是将其设置为{{queries.chatgptQuery.data}}。

恭喜!您已经可以使用 ChatGPT 进行通信了。接下来,让我们学习如何与之前创建的 PostgreSQL 数据库进行连接和通信。

如何在 ToolJet 中与 PostgreSQL 数据库通信

在这里,您将学习如何在 ToolJet 中与 PostgreSQL 数据库进行通信。首先,让我引导您完成将 PostgreSQL 数据库连接到 ToolJet 的过程。

将 PostgreSQL 数据库连接到 ToolJet

单击Add a DatasourceToolJet 上的查询面板,从数据库列表中选择 PostgreSQL,并提供所需信息,如下所示。

从上图中,主机与 ElephantSQL 上的服务器名称相同(不包括括号)。用户名和数据库名称相同,将密码复制并粘贴到其字段中。

向下滚动页面并单击Test Connection。

如果连接得到验证,我们就可以开始查询数据库了。

在 ToolJet 中通信 PostgreSQL 数据库

在这里,您将学习如何将 ChatGPT 生成的 SQL 查询发送到 PostgreSQL 数据库,并在用户界面的 Table 组件中查看查询的数据。

在我们开始之前,让我们向数据库中添加一些数据。单击 PostgreSQL 查询,选择 SQL 模式,然后运行下面的代码片段以创建一个包含以下数据的新表。

CREATE TABLE People(NAME varchar(255), AGE int);
INSERT INTO People(name, age) VALUES(‘David’, 19);
INSERT INTO People(name, age) VALUES(‘Tabby’, 21);
INSERT INTO People(name, age) VALUES('Teja', 24);
INSERT INTO People(name, age) VALUES('Julius', 27);
INSERT INTO People(name, age) VALUES('Kedrick', 26);
SELECT * FROM people;

 

上传后,您可以在 ElephantSQL 上查看数据。

接下来,让我们从 ChatGPT 接收 SQL 命令,并在用户界面上显示 Table 组件中的数据。

更新 SQL 编辑器以包含从 ChatGPT 检索的查询并保存它。

将on Click运行数据库查询的事件添加到Execute按钮。

最后,更新 Table 组件以显示从数据库中检索到的数据。

恭喜!

AD:GPT-4官方账号:点击购买

请先登录后发表评论!

最新回复 (1)
  • 心雨飞飞 2023-3-29
    0 引用 2

    看到代码头晕,还是支持了,等到成熟的东西。

    这家伙太懒了,什么也没留下。
返回
请先登录后发表评论!