GPT Action 库:BigQuery
简介
本页面为开发者提供构建特定应用程序的 GPT Action 的说明和指南。在继续之前,请确保您已熟悉以下信息:
此特定的 GPT Action 提供了连接到 Google BigQuery(Google Cloud 的分析数据仓库)的概述。此 Action 接收用户的问题,扫描相关表以收集数据模式,然后编写 SQL 查询来回答用户的问题。
注意:这些说明返回的是功能性的 SQL 语句,而不是结果本身。目前需要中间件来返回 CSV 文件——我们很快就会发布关于该示例的说明。
价值 + 示例业务用例
价值:用户现在可以利用 ChatGPT 的自然语言功能直接连接到 BigQuery 的 DWH。
示例用例:
- 数据科学家可以连接到表并使用 ChatGPT 的数据分析功能运行数据分析。
- 普通数据用户可以查询其事务性数据并提出基本问题。
- 用户可以更深入地了解他们的数据和潜在的异常情况。
应用程序信息
应用程序关键链接
在开始之前,请查看应用程序中的这些链接:
- 应用程序网站:https://cloud.google.com/bigquery
- 应用程序 API 文档:https://cloud.google.com/bigquery/docs/reference/rest
应用程序先决条件
在开始之前,请确保在您的应用程序环境中完成以下步骤:
- 设置 GCP 项目
- 在该 GCP 项目中设置 BQ 数据集
- 确保通过 ChatGPT 进行 BigQuery 身份验证的用户有权访问该 BQ 数据集
ChatGPT 步骤
自定义 GPT 说明
创建自定义 GPT 后,请将以下文本复制到“说明”面板中。有疑问吗?请查看入门示例,了解此步骤的详细信息。
**背景**:您是编写 BigQuery SQL 查询的专家。用户将向您提出问题。
**说明**:
1. 无论用户提出什么问题,请首先运行 `runQuery` 操作,使用以下查询:“SELECT column_name, table_name, data_type, description FROM `{project}.{dataset}.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS`”
-- 假设 project = “<在此处插入您的默认项目>”,dataset = “<在此处插入您的默认数据集>”,除非用户提供不同的值
-- 请记住在 json 输出中包含 useLegacySql:false
2. 将用户的问题转换为利用上述步骤的 SQL 语句,并对该 SQL 语句运行 `runQuery` 操作以确认查询有效。添加 100 行的限制。
3. 现在删除 100 行的限制,并将查询返回给用户查看。
**附加说明**:如果用户说“让我们开始吧”,请解释用户可以提供项目或数据集,以及他们想要回答的问题。如果用户没有想法,请建议我们有一个可以查询的示例航班数据集——询问他们是否希望您查询该数据集。
OpenAPI Schema
创建自定义 GPT 后,请将以下文本复制到“操作”面板中。有疑问吗?请查看入门示例,了解此步骤的详细信息。
openapi: 3.1.0
info:
title: BigQuery API
description: API for querying a BigQuery table.
version: 1.0.0
servers:
- url: https://bigquery.googleapis.com/bigquery/v2
description: Google BigQuery API server
paths:
/projects/{projectId}/queries:
post:
operationId: runQuery
summary: Executes a query on a specified BigQuery table.
description: Submits a query to BigQuery and returns the results.
x-openai-isConsequential: false
parameters:
- name: projectId
in: path
required: true
description: The ID of the Google Cloud project.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: The SQL query string.
useLegacySql:
type: boolean
description: Whether to use legacy SQL.
default: false
responses:
'200':
description: Successful query execution.
content:
application/json:
schema:
type: object
properties:
kind:
type: string
example: "bigquery#queryResponse"
schema:
type: object
description: The schema of the results.
jobReference:
type: object
properties:
projectId:
type: string
jobId:
type: string
rows:
type: array
items:
type: object
properties:
f:
type: array
items:
type: object
properties:
v:
type: string
totalRows:
type: string
description: Total number of rows in the query result.
pageToken:
type: string
description: Token for pagination of query results.
'400':
description: Bad request. The request was invalid.
'401':
description: Unauthorized. Authentication is required.
'403':
description: Forbidden. The request is not allowed.
'404':
description: Not found. The specified resource was not found.
'500':
description: Internal server error. An error occurred while processing the request.
身份验证说明
以下是设置此第三方应用程序与 ChatGPT 身份验证的说明。有疑问吗?请查看入门示例,了解此步骤的详细信息。
操作前步骤
在 ChatGPT 中设置身份验证之前,请在应用程序中执行以下步骤。
- 转到 Google Cloud 控制台
- 导航到 API 和服务 > 凭据
- 创建新的 OAuth 凭据(或使用现有的)
- 找到您的 OAuth Client ID 和 Client Secret,并将这两个值安全地存储起来(请参见下面的屏幕截图)
在 ChatGPT 中
在 ChatGPT 中,点击“身份验证”并选择 “OAuth”。输入以下信息。
- Client ID:使用以上步骤中的 Client ID
- Client Secret:使用以上步骤中的 Client Secret
- Authorization URL:https://accounts.google.com/o/oauth2/auth
- Token URL:https://oauth2.googleapis.com/token
- Scope:https://www.googleapis.com/auth/bigquery
- Token:默认 (POST)
操作后步骤
在 ChatGPT 中设置身份验证后,请在应用程序中执行以下步骤以完成操作。
- 复制 GPT Action 的回调 URL
- 在“授权的重定向 URI”(参见上图)中,添加您的回调 URL
常见问题解答和故障排除
- 回调 URL 错误:如果在 ChatGPT 中遇到回调 URL 错误,请仔细查看上面的屏幕截图。您需要将回调 URL 直接添加到 GCP 中,操作才能正确进行身份验证。
- Schema 调用了错误的项目或数据集:如果 ChatGPT 调用了错误的项目或数据集,请考虑更新您的说明,使其更明确地(a)指定应调用哪个项目/数据集,或(b)要求用户在运行查询之前提供这些确切的详细信息。
您希望我们优先处理哪些集成?我们的集成中是否存在错误?在我们的 GitHub 上提交 PR 或 issue,我们会进行查看。