让 Duet AI 协助您编写查询

如需请求使用 BigQuery 中的 Duet AI SQL 查询预览版功能,请填写 BigQuery 中的 Duet AI 预览版表单。 如需就此功能提供反馈或请求支持,请发送电子邮件至 duet-ai-bq-feedback-external@google.com。您无需针对 BigQuery 中的 Python 代码请求 Duet AI 协助的访问权限。

您可以使用 Duet AI(Google Cloud 中依托 AI 技术的协作工具)帮助您在 BigQuery 中执行以下操作:

  • 生成 SQL 查询
  • 完成 SQL 查询
  • 解释 SQL 查询
  • 生成 Python 代码
  • 完整的 Python 代码

Duet AI 不会将您的提示或其响应作为数据来训练模型。如需了解详情,请参阅 Google Cloud 中的 Duet AI 如何使用您的数据

BigQuery 中的 Duet AI 仅支持英语提示。

本文档适用于处理 SQL 查询和 BigQuery 中的 Colab Enterprise 笔记本的数据分析师、数据科学家和数据开发者。本文假定您了解如何在 BigQuery SQL 工作区中查询数据,或了解如何使用笔记本通过 Python 分析 BigQuery 数据。

准备工作

  1. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  2. 确保已为您的 Google Cloud 用户账号和项目设置了 Duet AI。
  3. 如需搭配 Python 代码使用,请启用 BigQuery Studio 进行资产管理

生成 SQL 查询

您可以为 Duet AI 提供自然语言语句(或提示),以根据数据架构生成 SQL 查询。即使您最初不使用代码,对数据架构的了解有限,或者仅具备 Google SQL 语法的基础知识,Duet AI 也可以生成一个或多个 SQL 语句,以帮助您探索数据。

如需生成 SQL,请在 BigQuery 查询编辑器中输入 # 字符,后跟自然语言语句或有关您所需信息的问题。Duet AI 会查看您最近的查询,以查找可能与您的提示相关的表架构。如果您知道要使用的表,则可以在提示中用英文反引号 (`) 指定表名称。

在以下示例中,您将针对 BigQuery 公共表 bigquery-public-data.austin_bikeshare.bikeshare_trips 生成查询。

  1. 在 Google Cloud 控制台中,转到 BigQuery Studio 页面。

    转到 BigQuery Studio

    其余步骤将自动显示在 Google Cloud 控制台中。

  2. 在 SQL 查询编辑器中,点击 编写新查询

  3. 确保已为您的 Google Cloud 用户账号和项目设置了 Duet AI。 在设置完成之前,无法看到 Duet AI 按钮。

  4. 在任务栏中,点击 pen_spark Duet AI,然后选择自动生成(如果尚未选择)。

    BigQuery 查询编辑器中的 Duet AI 按钮。

  5. 在查询编辑器中,输入以下自然语言提示:

    # Using `bigquery-public-data.austin_bikeshare.bikeshare_trips`, calculate the
    # average trip length by subscriber type.
    
  6. Enter 键(在 macOS 上,按 Return 键)。

    Duet AI 建议使用类似以下样式的 SQL 查询:

    SELECT
    subscriber_type,
    AVG(duration_minutes) AS average_trip_length
    FROM
    `bigquery-public-data.austin_bikeshare.bikeshare_trips`
    GROUP BY
    subscriber_type
    
  7. 若要接受建议,请按 Tab 键。

查看更多建议

Duet AI 可能会推荐多条回答您的提示的 SQL 语句。例如:

  1. 在查询编辑器中,输入以下自然语言提示符,然后按 Enter 键(在 macOS 上,按 Return 键):

    # Write a query that creates a table in the dataset `1234` with a string column called "name"
    

    Duet AI 建议使用 SQL 查询。

  2. 如需查看是否有其他建议,请将指针悬停在建议的 SQL 查询上。

  3. 点击任何其他建议,然后执行以下某项操作:

    • 要接受建议,请按 Tab
    • 要接受特定字词,请按 Ctrl+向右键(在 macOS 上,按 Command+向右键)。
    • 要忽略建议,请按 Esc

SQL 生成技巧

以下技巧可以改进 BigQuery 中的 Duet AI 提供的建议:

  • 如需指定数据架构,请提供用反引号 (`) 括起来的完全限定表名称,例如 `project.dataset.table`
  • 如果列名称或其语义关系不明确或比较复杂,您可以在提示中提供上下文,以引导 Duet AI 获得您所需的答案。这种方法称为“提示工程”。例如,要促使生成的查询引用列名称,请描述列名称及其与所需答案的相关性。为促使回答引用复杂术语(如生命周期价值毛利),请描述该概念及其与用于改进 SQL 生成结果的数据的相关性。
  • 在查询编辑器中,提示可以扩展到多行,但每行都必须以 # 字符开头。

Duet AI 和 BigQuery 数据

BigQuery 中的 Duet AI 可以访问您有权访问的表的元数据。这可能包括表名称、列名、数据类型和列说明。BigQuery 中的 Duet AI 无法访问表、视图或模型中的数据。如需详细了解 Duet AI 如何使用您的数据,请参阅 Google Cloud 中的 Duet AI 如何使用您的数据

完成 SQL 查询

SQL 补全功能会尝试根据查询编辑器中的内容提供适合情境的建议。在输入时,Duet AI 可以建议与当前查询上下文相关且合乎逻辑的后续步骤,也可以帮助您迭代查询。

如需通过 Duet AI 试用 SQL 补全功能,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery Studio 页面。

    转到 BigQuery Studio

    其余步骤将自动显示在 Google Cloud 控制台中。

  2. 确保已为您的 Google Cloud 用户账号和项目设置了 Duet AI。 在设置完成之前,无法看到 Duet AI 按钮。

  3. 在任务栏中,点击 pen_spark Duet AI,然后选择自动补全(如果尚未选择)。

  4. 在查询编辑器中,复制以下内容:

    SELECT
      subscriber_type
      , EXTRACT(HOUR FROM start_time) AS hour_of_day
      , AVG(duration_minutes) AS avg_trip_length
    FROM
      `bigquery-public-data.austin_bikeshare.bikeshare_trips`
    

    错误消息指出 subscriber_type 既未分组,也未汇总。为获得正确的查询,我们常常需要一些帮助。

  5. Enter(在 macOS 上按 Return)或空格键

    Duet AI 建议对可能以类似如下文本结尾的查询进行优化:

    GROUP BY
    subscriber_type, hour_of_day;
    
  6. 如需接受建议,请按 Tab 键,或者将指针悬停在建议的文本上并点击备选建议。要忽略建议,请按 ESC 或继续输入。

解释 SQL 查询

您可以提示 BigQuery 中的 Duet AI 以自然语言解释 SQL 查询。由于查询的长度或复杂性,其语法、底层架构和业务上下文可能难以评估,此说明可以帮助您了解此类查询。

  1. 在 Google Cloud 控制台中,转到 BigQuery Studio 页面。

    转到 BigQuery Studio

    其余步骤将自动显示在 Google Cloud 控制台中。

  2. 确保已为您的 Google Cloud 用户账号和项目设置了 Duet AI。 在设置完成之前,无法看到 Duet AI 按钮。

  3. 在任务栏中,点击 pen_spark Duet AI,然后选择说明(如果尚未选择)。

  4. 在查询编辑器中,打开或粘贴您要解释的查询。

  5. 突出显示您希望 Duet AI 解释的查询,然后点击 pen_spark 解释此次查询

    “解释此次查询”图标和 BigQuery 查询编辑器左列中突出显示的文本。

SQL 解释会显示在 Duet AI 窗格中。

生成 Python 代码

您可以使用自然语言语句或问题来提示 Duet AI,以生成 Python 代码。Duet AI 会返回一条或多条 Python 代码建议作为响应。

在以下示例中,您将为 BigQuery 公共数据集 bigquery-public-data.ml_datasets.penguins 生成代码。

  1. 转到 BigQuery Studio 页面。

    转到 BigQuery

  2. 在任务栏中,点击 pen_sparkDuet AI,然后在 Python 版 Duet AI 笔记本部分中选择代码生成(如果尚未选择)。

    BigQuery 查询编辑器中的 Duet AI 按钮。

  3. 在编辑器窗格的标签页栏中,点击 + 号旁边的 下拉箭头,然后点击编写新的 Python 笔记本

    notebook-tab

    系统会打开新的笔记本,其中包含显示针对 bigquery-public-data.ml_datasets.penguins 公共数据集的查询示例的单元格。

  4. 在任务栏中,点击 + 代码以插入新的代码单元。随即会出现一个新的代码单元,上面显示开始使用 AI 编码或生成

  5. 在新的代码单元中,点击生成

  6. 在代码编辑器中,输入以下自然语言提示:

    Using bigquery magics query the `bigquery-public-data.ml_datasets.penguins` table
    
  7. Enter 键(在 macOS 上,按 Return 键)。

    Duet AI 会建议类似于以下内容的 Python 代码:

    %%bigquery
    SELECT *
    FROM `bigquery-public-data.ml_datasets.penguins`
    LIMIT 10
    

Python 代码补全

Python 代码补全功能会尝试根据查询编辑器中的内容提供适合上下文的建议。在输入时,Duet AI 可以建议与当前代码上下文相关且合乎逻辑的后续步骤,也可以帮助您迭代代码。

如需尝试使用 Duet AI 补全 Python 代码,请按以下步骤操作:

  1. 转到 BigQuery Studio 页面。

    转到 BigQuery

  2. 在任务栏中,点击 pen_sparkDuet AI,然后在 Python 版 Duet AI 笔记本部分中选择 代码补全(如果尚未选择)。

    BigQuery 查询编辑器中的 Duet AI 按钮。

  3. 在编辑器窗格的标签页栏中,点击 + 号旁边的 下拉箭头,然后点击编写新的 Python 笔记本

    notebook-tab

    系统会打开新的笔记本,其中包含显示针对 bigquery-public-data.ml_datasets.penguins 公共数据集的查询示例的单元格。

  4. 在代码编辑器中,开始键入 Python 代码。Duet AI 会在您输入时以内嵌方式提供代码建议。若要接受建议,请按 Tab 键。

停用 Duet AI 功能

如需在 BigQuery 中停用 Duet AI 功能,请执行以下操作:

  1. 在 SQL 查询编辑器的任务栏中,点击 pen_spark Duet AI

  2. 清除您要停用的 Duet AI 功能。

提供反馈

您可以提供有关 Duet AI 建议的反馈。

  • 如需提供反馈,请在任务栏中点击 pen_spark Duet AI,然后选择发送反馈

帮助改进建议

您可以与 Google 共享提示数据,帮助改进 Duet AI 建议。如需共享提示数据,请按照以下步骤操作:

  1. 在 Google Cloud 控制台的 BigQuery Studio 页面上,点击任务栏中的 pen_spark Duet AI

  2. 选择共享数据以改进 Duet AI

  3. 在数据使用设置对话框中更新流量使用设置。

数据共享设置适用于整个项目,且只能由拥有 serviceusage.services.enableserviceusage.services.list IAM 权限的项目管理员设定。如需详细了解可信测试员计划中的数据使用,请参阅 Google Cloud 可信测试员计划中的 Duet AI

后续步骤