由组件驱动的新GPT操作

使用AWS Lambda和Bit Components构建GPT Actions

创建GPT动作是将您的应用程序连接到ChatGPT提示的激动人心的方式。这是通过连接您的API端点并在OpenAPI规范中描述API来完成的。在内部,GPT操作利用功能调用来执行API调用。一旦定义,ChatGPT会根据您与其进行的对话来理解何时调用。

在这篇文章中,我们探讨如何使用可组合的AWS Lambda函数和Bit组件构建一个GPT操作。这个示例的重点是创建一个天气API操作,其中ChatGPT与实时天气数据进行交互,并响应与天气相关的提示。

行动概述

ChatGPT Action Overview

ChatGPT使用天气API的操作处理用户提示,将其映射到天气操作输入(如果需要还会转换任何输入),以直接获取实时天气数据。以下是它的工作原理:

  1. 用户提示和意图:ChatGPT识别意图来检查天气,并使用OpenAPI模式来理解如何发出请求。
  2. 结构导向请求:模式告诉ChatGPT使用哪个端点,需要的参数,以及响应格式,确保有效的API调用。
  3. Lambda执行:请求被发送到托管天气API的AWS Lambda函数,该函数获取指定位置的实时天气数据。
  4. 回复用户:ChatGPT 解释 API 响应,并以对话方式返回天气详细信息。

开放API模式使得ChatGPT能够自动化请求和响应,为用户创造出无缝、实时的交互体验。

API与组件

API with Components Overview

使用AWS Lambda和组件创建API具有几个优点。AWS Lambda允许您使用按需付费模型和慷慨的免费套餐创建API。同时,组件提高可维护性,并支持持续更新和向后兼容性。

首先,我们设计一个可组合的API,作为我们GPT行动的基础。这个API将从Open Weather Service获取天气数据。让我们分别创建每个组件。

  1. GPT 动作实体:定义 API 结构和参数。
  2. GPT操作逻辑:连接API与ChatGPT,用于解释和回复天气请求。
  3. GPT操作(Lambda):此操作处理请求并公开两个端点,一个用于天气数据,另一个用于返回OpenAPI模式。

每个组件将作为独立的 Bit 组件开发,允许在更大的 GPT 动作架构中进行隔离测试和平滑集成。

步骤1:创建GPT动作实体

此组件使用 Weather 接口处理天气数据,该接口定义了从外部 API(如 OpenWeatherMap)提取的天气信息的结构。

您可以在这里找到该组件。按照以下步骤创建它很容易。

  1. 在 bit.cloud 中创建一个账户。
  2. 创建一个作用域(例如my-gpt-scope)来存储您的组件。
  3. 前往范围URL,并单击右上角的“编辑范围”按钮。这将立即启动一个Bit Cloud Workspace实例,并使用现成的工具来创建新组件。
  4. Edit Scope with Bit Cloud Workspaces

4. 创建一个新的组件。 (您可以通过运行 bit templates 命令找到所有可用的组件模板)。

bit create entity "gpt-action-entity"

5. 更新您的组件代码以返回天气模式,并更新其单元测试(规范文件)。

export type Weather = {
main: {
temp: number; // Temperature in Celsius
};
weather: {
description: string; // Weather condition description
}[];
name: string; // City name
};

步骤1:创建GPT动作逻辑

与上面类似,创建一个新实体,并编写逻辑以从Open Weather API获取天气数据。为了创建这个组件,让我们使用模块模板。

bit create module "gpt-action-logic"
import type { Weather } from "@aws-lambda/demos.gpt-action-entity";
import axios from 'axios';

实体组件被导入并在其实现中用于绑定天气数据。您可以在这里找到该组件。

步骤3:创建GPT操作(函数)

在这一步中,我们将创建AWS Lambda功能组件,作为API来返回天气数据及其Open API模式。

为此,我们不需要从头开始创建一个组件,而是可以克隆一个现有的Lambda组件,并修改其代码以从GPT Action逻辑组件获取天气数据。

bit fork aws-lambda.demos/http-lambda@0.0.5 gpt-action

复制后,您需要修改其环境变量(传递Open Weather API的API密钥)并暴露两个端点。

  1. 架构端点:这在OpenAPI 3.1规范中公开了预定义的API架构。通过提供您的函数实现,您可以轻松使用HopeAI(内置AI与Bit)或ChatGPT来生成此架构。
  2. 天气终端点: 这个终端点用于响应 API 请求以检索天气信息。

您可以在这里找到该函数的实现。一旦所有组件连接完成,依赖图看起来如下。

Dependency graph of the Weather API implementation

在定义函数之后,您还可以在作用域、Ripple CI 变量和标签中设置 WEATHER API KEY、AWS ACCESS KEY ID 和 AWS SECRET ACCESS KEY,并将组件导出到 Bit 云。这会触发 Ripple CI 将您的函数部署到 AWS,并显示您可以用来调用 API 的 HTTP URL。

连接这些点

最后,您可以在ChatGPT的MyGPT部分注册此端点。您需要一个付费的ChatGPT计划才能使用此功能。

要做到这一点,请按照以下步骤进行。

Create Actions using MyGPTs

打开右上方菜单 -> 我的GPTs -> 创建一个GPT -> 填写信息 -> 创建新动作

您可以使用“从URL导入”按钮导入模式并测试您的操作。例如,你可以问“纽约的天气如何?”然后ChatGPT知道自己需要调用API来生成结果,而不是从LLM生成结果。

结论

通过使用AWS Lambda函数和Bit组件构建一个GPT动作,我们创建了一个简单的API,使ChatGPT可以根据用户提示与实时天气数据进行交互。

这种基于组件的方法可以将实现扩展到多个功能,根据需要在各个逻辑组件之间共享。总的来说,这种结构支持一种可靠、可扩展的方式,通过第三方集成扩展ChatGPT的功能。

希望您觉得这篇文章有用。谢谢阅读。干杯!

了解更多

2024-10-29 04:25:09 AI中文站翻译自原文