GPT 操作库(中间件):Google Cloud Function
简介
本页面为开发者提供了构建中间件以将 GPT 操作连接到特定应用程序的说明和指南。在继续之前,请确保您已熟悉以下信息:
此特定的 GPT 操作概述了如何构建 Google Cloud Function,即 Google 的基于云的函数构建器。本文档帮助用户设置一个 OAuth 保护的 Google Cloud Function,以连接到 GPT 操作和示例应用程序。
价值 + 示例业务用例
价值:用户现在可以利用 ChatGPT 的自然语言功能直接连接到 Google Cloud Function。这可以通过几种方式实现:
- GPT 操作中的 100k 字符限制:用户可以使用中间件预处理 API 的文本响应。例如,您可以在中间件中使用 OpenAI 的 API 在将文本发送回 ChatGPT 之前对其进行摘要。
- 通常,对于操作,用户依赖于 SaaS API 返回文本。您可以将供应商 API 的响应转换为易于理解的文本,并且它可以处理不同的数据类型,例如结构化和非结构化数据。
- 它可以返回文件,而不仅仅是文本。这对于为数据分析提供 CSV 文件,或者返回 PDF 文件(ChatGPT 会将其视为上传)非常有用。
示例用例:
- 用户需要查询 Google Cloud SQL,但需要在 ChatGPT 和 Google Cloud SQL 之间设置中间件应用程序
- 用户已在 Google Cloud 函数中连续构建了多个步骤,并且需要能够使用 ChatGPT 启动该过程
应用程序信息
应用程序关键链接
在开始之前,请查看应用程序中的这些链接:
- 应用程序网站:https://cloud.google.com/functions/docs
- 应用程序 API 文档:https://cloud.google.com/functions/docs/writing/write-http-functions
应用程序先决条件
在开始之前,请确保您已在应用程序环境中完成以下步骤:
- Google Cloud Console,具有创建 Google Cloud Functions 和 Google Cloud API 的访问权限(您需要此权限来设置 OAuth Client)
应用程序设置
安装应用程序
有 3 种选项可以创建和部署 Google Cloud Functions
- IDE - 使用您喜欢的 IDE 创建,例如 VS Code
- Google Cloud Console - 使用您的浏览器创建
- Google Cloud CLI (gcloud) - 通过命令行创建
您可以在此处阅读支持的运行时此处。
选项 1:使用 IDE (VSCode)
请参阅 Google 的文档此处了解如何使用 VSCode 进行部署。如果您熟悉此方法,请随时使用它。
选项 2:直接在 Google Cloud Console 中
请参阅文档此处了解如何使用 Google Cloud Console 进行部署。
选项 3:使用 Google Cloud CLI (gcloud
)
请参阅文档此处了解如何使用 Google Cloud Console 进行部署。我们将在此处逐步介绍一个示例。
第 1 部分:安装和初始化 Google Cloud CLI (gcloud
)
请按照此处与您正在运行的操作系统相关的步骤进行操作。此过程的最后一步是运行 gcloud init
并登录到您的 Google 帐户。
第 2 部分:设置本地开发环境
在此示例中,我们将设置一个 Node.js 环境。
mkdir <目录名称>
cd <目录名称>
初始化 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';
// 使用 Functions Framework 注册一个 HTTP 函数,该函数将在您向已部署函数的端点发出 HTTP 请求时执行。
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 后,将以下文本复制到“说明”面板中。有疑问吗?请查看 入门示例,了解此步骤的详细信息。
当用户要求您测试集成时,您将调用自定义操作并显示结果
OpenAPI 架构
创建自定义 GPT 后,将以下文本复制到“操作”面板中。有疑问吗?请查看 入门示例,了解此步骤的详细信息。
以下是连接到此中间件可能是什么样子的示例。您需要在此部分插入您的应用程序和函数信息。
openapi: 3.1.0
info:
title: {插入标题}
description: {插入描述}
version: 1.0.0
servers:
- url: {您的 Google Cloud Function 的 URL}
description: {插入描述}
paths:
/{your_function_name}:
get:
operationId: {创建 operationID}
summary: {插入摘要}
responses:
'200':
description: {插入描述}
content:
text/plain:
schema:
type: string
example: {响应示例}
身份验证说明
以下是有关与此第三方应用程序设置身份验证的说明。有疑问吗?请查看 入门示例,了解此步骤的详细信息。
在 Google Cloud Console 中
在 Google Cloud Console 中,您需要创建 OAuth 客户端 ID 凭据。要导航到正确的页面,请在 Google Cloud Console 中搜索“凭据”或在浏览器中输入 https://console.cloud.google.com/apis/credentials?project=<your_project_id>
。您可以此处了解更多信息。
点击“创建凭据”并选择“Oauth 客户端 ID”。为“应用程序类型”选择“Web 应用程序”,然后输入您的应用程序名称(如下所示)。
在“OAuth 客户端已创建”模态对话框中,请注意以下信息:
- 客户端 ID
- 客户端密钥
在 ChatGPT 中(参考入门示例中的步骤 2)
在 ChatGPT 中,点击“身份验证”并选择 “OAuth”。输入以下信息。
- 客户端 ID:参见上一步
- 客户端密钥:参见上一步
- 授权 URL:
https://accounts.google.com/o/oauth2/auth
- 令牌 URL:
https://oauth2.googleapis.com/token
- 范围:
https://www.googleapis.com/auth/userinfo.email
返回 Google Cloud Console(参考入门示例中的步骤 4)
编辑您之前在 Google Cloud 中创建的 OAuth 2.0 客户端 ID,并添加创建自定义操作后收到的回调 URL。
测试 GPT
您现在可以测试 GPT 了。您可以输入一个简单的提示,例如“测试集成”,并期望看到以下内容:
- 请求登录 Google
- 允许请求您的 Google Function
- ChatGPT 的响应显示您函数的响应 - 例如,“您已连接为已通过身份验证的用户到 Google Functions”
您希望我们优先处理哪些集成?我们的集成中是否存在错误?在我们的 GitHub 上提交 PR 或 issue,我们将进行查看。