简介
本页面为开发者构建中间件以将 GPT Action 连接到特定应用程序提供说明和指南。在继续之前,请务必先熟悉以下信息
这个特定的 GPT Action 概述了如何构建 谷歌云函数,谷歌的云函数构建器。本文档帮助用户设置受 OAuth 保护的谷歌云函数,以连接到 GPT Action 和示例应用程序。
价值 + 示例业务用例
价值:用户现在可以利用 ChatGPT 的自然语言能力直接连接到谷歌云函数。这可以通过以下几种方式实现
- GPT Actions 中 10 万字符的限制:用户可以使用中间件预处理来自 API 的文本响应。例如,您可以在中间件中使用 OpenAI 的 API 来总结文本,然后再将其发送回 ChatGPT。
- 通常对于 actions,用户依赖 SaaS API 返回文本。您可以将供应商 API 的响应转换为易于理解的文本,并且它可以处理不同的数据类型,例如结构化和非结构化数据。
- 它可以返回文件而不仅仅是文本。这对于展示用于数据分析的 CSV 文件,或带回 PDF 文件并让 ChatGPT 像上传一样处理它非常有用。
示例用例:
- 用户需要查找查询谷歌云 SQL,但需要在 ChatGPT 和谷歌云 SQL 之间使用中间件应用程序
- 用户在谷歌云函数中构建了连续的几个步骤,并且需要能够使用 ChatGPT 启动该流程
应用信息
应用关键链接
在开始之前,请查看应用程序的以下链接
- 应用网站: https://cloud.google.com/functions/docs
- 应用 API 文档: https://cloud.google.com/functions/docs/writing/write-http-functions
应用先决条件
在开始之前,请确保在您的应用程序环境中完成以下步骤
- 谷歌云控制台,具有创建谷歌云函数和谷歌云 API 的权限(您将需要此权限来设置 OAuth 客户端)
应用设置
安装应用
有 3 种选项可以创建和部署谷歌云函数
- IDE - 使用您最喜欢的 IDE 创建,例如 VS Code
- 谷歌云控制台 - 使用浏览器创建
- 谷歌云 CLI (gcloud) - 通过命令行创建
您可以在此处阅读有关支持的运行时的信息
选项 1:使用 IDE (VSCode)
请参阅 Google 的文档此处,了解如何使用 VSCode 部署。如果您熟悉这种方法,请随意使用它。
选项 2:直接在谷歌云控制台中
请参阅文档此处,了解如何使用谷歌云控制台部署。
选项 3:使用谷歌云 CLI (gcloud
)
请参阅文档此处,了解如何使用谷歌云控制台部署。我们将在此处逐步介绍一个示例。
第 1 部分:安装并初始化谷歌云 CLI (gcloud
)
按照此处与您正在运行的操作系统相关的步骤操作。此过程的最后一步是您运行 gcloud init
并登录您的 Google 帐户
第 2 部分:设置本地开发环境
在本示例中,我们将设置 Node.js 环境。
mkdir <directory_name>
cd <directory_name>
初始化 Node.js 项目
npm init
接受 npm init
的默认值
第 3 部分:创建函数
创建 index.js
文件
const functions = require('@google-cloud/functions-framework');
const axios = require('axios');
const TOKENINFO_URL = 'https://oauth2.googleapis.com/tokeninfo';
// Register an HTTP function with the Functions Framework that will be executed
// when you make an HTTP request to the deployed function's endpoint.
functions.http('executeGCPFunction', async (req, res) => {
const authHeader = req.headers.authorization;
if (!authHeader) {
return res.status(401).send('Unauthorized: No token provided');
}
const token = authHeader.split(' ')[1];
if (!token) {
return res.status(401).send('Unauthorized: No token provided');
}
try {
const tokenInfo = await validateAccessToken(token);
res.json("You have connected as an authenticated user to Google Functions");
} catch (error) {
res.status(401).send('Unauthorized: Invalid token');
}
});
async function validateAccessToken(token) {
try {
const response = await axios.get(TOKENINFO_URL, {
params: {
access_token: token,
},
});
return response.data;
} catch (error) {
throw new Error('Invalid token');
}
}
第 4 部分:部署函数
以下步骤将在您的 package.json
文件中安装并添加必要的依赖项
npm install @google-cloud/functions-framework
npm install axios
npx @google-cloud/functions-framework --target=executeGCPFunction
gcloud functions deploy gcp-function-for-chatgpt \
--gen2 \
--runtime=nodejs20 \
--region=us-central1 \
--source=. \
--entry-point=executeGCPFunction \
--trigger-http \
--allow-unauthenticated
ChatGPT 步骤
自定义 GPT 指令
创建自定义 GPT 后,将以下文本复制到“Instructions”(指令)面板中。有疑问?查看入门示例,了解此步骤如何更详细地工作。
When the user asks you to test the integration, you will make a call to the custom action and display the results
OpenAPI 架构
创建自定义 GPT 后,将以下文本复制到“Actions”(操作)面板中。有疑问?查看入门示例,了解此步骤如何更详细地工作。
以下是连接到此中间件的示例。您需要在本节中插入您的应用程序和函数信息。
openapi: 3.1.0
info:
title: {insert title}
description: {insert description}
version: 1.0.0
servers:
- url: {url of your Google Cloud Function}
description: {insert description}
paths:
/{your_function_name}:
get:
operationId: {create an operationID}
summary: {insert summary}
responses:
'200':
description: {insert description}
content:
text/plain:
schema:
type: string
example: {example of response}
身份验证说明
以下是有关使用此第三方应用程序设置身份验证的说明。有疑问?查看入门示例,了解此步骤如何更详细地工作。
在谷歌云控制台中
在谷歌云控制台中,您需要创建 OAuth 客户端 ID 凭据。要导航到正确的页面,请在谷歌云控制台中搜索“Credentials”(凭据),或在浏览器中输入 https://console.cloud.google.com/apis/credentials?project=<your_project_id>
。您可以在此处阅读更多相关信息。
单击“CREATE CREDENTIALS”(创建凭据),然后选择“Oauth client ID”(Oauth 客户端 ID)。为“Application type”(应用类型)选择“Web Application”(Web 应用程序),然后输入您的应用程序名称(见下文)。
在“OAuth client created”(OAuth 客户端已创建)模态对话框中,请注意
- 客户端 ID
- 客户端密钥
在 ChatGPT 中(参考入门示例中的步骤 2)
在 ChatGPT 中,单击“Authentication”(身份验证)并选择 “OAuth”。输入以下信息。
- 客户端 ID: 见以上步骤
- 客户端密钥: 见以上步骤
- 授权 URL:
https://127.0.0.1/o/oauth2/auth
- 令牌 URL:
https://oauth2.googleapis.com/token
- Scope:
https://www.googleapis.com/auth/userinfo.email
返回谷歌云控制台(同时参考入门示例中的步骤 4)
编辑您之前在谷歌云中创建的 OAuth 2.0 客户端 ID,并添加您在创建自定义 action 后收到的回调 URL。
测试 GPT
您现在可以测试 GPT 了。您可以输入一个简单的提示,例如“Test Integration”(测试集成),并期望看到以下内容
- 请求登录 Google
- 允许请求访问您的 Google 函数
- 来自 ChatGPT 的响应,显示来自您的函数的响应 - 例如“You have connected as an authenticated user to Google Functions”(您已作为经过身份验证的用户连接到 Google 函数)
您希望我们优先考虑哪些集成?我们的集成中是否存在错误?在我们的 github 中提交 PR 或 issue,我们会查看。