使用 Gemini AI + ToolJet 构建 SQL 报告生成器 📊

2025-06-10

使用 Gemini AI + ToolJet 构建 SQL 报告生成器 📊

介绍

本教程将指导您使用ToolJet(一款低代码可视化应用构建器)和 Gemini API(一款强大的自然语言处理 API)构建一个 AI 驱动的 SQL 自定义报告生成器。最终的应用程序将允许用户用简单的英语输入请求,然后将其翻译成自定义报告。我们将使用 ToolJet 的可视化应用构建器创建一个用户友好的 UI,并使用 ToolJet 的低代码查询构建器将其连接到 Gemini API 端点和我们的数据源。最终产品将允许用户预览生成的报告并以 PDF、Excel 或 CSV 格式下载。


先决条件:

以下是我们最终应用程序的快速预览:

SQL 报表生成器预览


登录您的ToolJet 帐户。导航到 ToolJet 仪表板,然后点击左上角的“创建新应用”按钮。ToolJet 内置了 45 多个组件。这让我们可以快速设置 UI。

构建我们的 UI

  • 从右侧组件库中将Container组件拖放到画布上,适当调整Container组件的高度和宽度。
  • 同样,将图标和三个文本组件拖放到容器内。我们将使用这些文本组件作为标题和标签文本。
  • 对于Icon组件,导航到右侧的属性面板,然后在Icon属性下选择适当的图标。
  • 根据您的喜好更改图标文本组件的颜色。
  • 适当更改文本组件的字体大小和内容
  • 将Textarea组件拖放到容器内。我们将使用此组件作为文本查询的输入。
  • 将Textarea组件重命名textPrompt
  • 接下来,将表格组件拖放到容器中。我们将使用此组件显示报告的预览。表格组件内置了下载显示数据的功能。这将允许我们以 PDF、Excel 或 CSV 格式下载生成的报告。
  • 现在让我们添加一个按钮组件来启动报告生成过程。适当更改颜色、大小和内容。

SQL 报表生成器用户界面


设置查询

除了内置数据库和数据源外,ToolJet 还允许您连接到各种外部数据源,包括数据库、外部 API 和服务。在本教程中,我们将使用 ToolJet 内置的 PostgreSQL 示例数据源。我们将设置的查询也适用于外部 PostgreSQL 数据源。

我们还将使用 REST API 查询功能连接Gemini API 端点。

  • 在查询面板中,单击 + 添加按钮并选择示例数据源选项。
  • 将查询重命名为 getDatabaseSchema。
  • 在下拉菜单中,选择 SQL 模式并输入以下代码。这将获取数据库中所有表名及其列名。
SELECT table_name, string_agg(column_name, ', ') AS columns
FROM information_schema.columns
WHERE table_schema = 'public'
GROUP BY table_name

Enter fullscreen mode Exit fullscreen mode
  • 为了确保每次应用程序加载时查询都会运行,请启用 在应用程序加载时运行此查询?切换。

现在,让我们创建另一个查询,它将连接到 Gemini AI API 并生成我们的自定义 SQL 报告查询。

  • 使用 ToolJet 的工作区常量功能,使用您的 Gemini API 密钥创建一个名为 GEMINI_API_KEY的新常量。

  • 在查询面板中,单击 + 添加 按钮并选择 REST API选项。

  • 将查询重命名为 getSqlQuery

  • 在请求参数中,从下拉菜单中选择 POST 作为方法并粘贴以下 URL。

https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent?key={{constants.GEMINI_API_KEY}}
Enter fullscreen mode Exit fullscreen mode
  • 导航到getSqlQuery的 Body 部分。切换到 Raw JSON 并输入以下代码:
{{
  `{
   "contents": [{
     "parts": [{
       "text": "Data Schema: ${JSON.stringify(queries.getTablesWithColumns.data.map(item => ({ ...item, table_name: "public." + item.table_name }))).replace(/"([^"]+)":/g, '$1:').replace(/"/g, '\\"')}, Text Prompt: Write a standard SQL query for a custom SQL report that will ${components.textPrompt.value.replaceAll("\n"," ")}. Return without formatting and without any code highlighting and any backticks"
      },],
    },],
  }`
}}
Enter fullscreen mode Exit fullscreen mode

让我们添加最终查询,它将从我们自定义报告所需的示例数据源中检索数据。

  • 同样,创建另一个示例数据源查询,将其重命名为getReportData并输入以下代码:
{{queries.getSqlQuery.data.candidates[0].content.parts[0].text}}
Enter fullscreen mode Exit fullscreen mode

将查询绑定到 UI 组件

现在我们已经成功构建了 UI 和查询,下一步就是将它们集成起来。

  • 选择按钮组件并导航到右侧的属性面板。点击+ 新建事件处理程序按钮。将操作更改为 运行查询,然后选择 getSqlQuery 查询。

  • 接下来,导航到 getSqlQuery 查询,然后单击+ 新建事件处理程序按钮。将“操作”更改为 “运行查询”,然后选择 getReportData 查询。

  • 接下来,选择Table组件。在右侧的属性面板中,在 Data 字段中输入以下代码。

{{queries.getReportData.data}}
Enter fullscreen mode Exit fullscreen mode

我们已经成功将查询集成到 UI 中。现在让我们使用以下提示来测试应用程序:
列出客户姓名及其订购的产品,包括订单日期和每种产品的订购总数量。

SQL报告示例

您可以单击表页脚上的+按钮以 PDF、Excel 或 CSV 格式下载此报告。


结论

恭喜您成功使用 ToolJet 和 Gemini API 构建了 AI 驱动的 SQL 报表生成器。现在,您可以用简单的英语输入提示,并在 PostgreSQL 实例中的多个表上生成报表。
要了解更多关于 ToolJet 的信息,请查看 ToolJet 文档 或联系我们,在 Slack上发布您的问题。

鏂囩珷鏉ユ簮锛�https://dev.to/tooljet/building-a-sql-report-generator-using-gemini-ai-tooljet-424p
PREV
使用 ToolJet 构建 Ed-Tech 销售 CRM
NEXT
使用 ToolJet 和 PostgreSQL 构建客户支持台应用程序