GPT Actions 入门
Weather.gov 示例
NSW (National Weather Service) 维护着一个公共 API,用户可以查询该 API 以接收任何纬度点的天气预报。要检索预测,有 2 个步骤:
- 用户向 api.weather.gov/points API 提供经纬度,并接收 WFO(天气预报局)、网格 X 和网格 Y 坐标
- 这 3 个元素馈送到 api.weather.gov/forecast API 中,以检索该坐标的预测
出于本练习的目的,让我们构建一个自定义 GPT,其中用户写入城市、地标或经纬度坐标,自定义 GPT 回答有关该位置天气预报的问题。
第 1 步:编写和测试 Open API 架构(使用 Actions GPT)
GPT 操作需要一个开放 API 架构来描述 API 调用的参数,这是描述 API 的标准。
OpenAI 发布了一个公共的 Actions GPT 来帮助开发人员编写此架构。例如,转到 Actions GPT 并询问:“转到 https://www.weather.gov/documentation/services-web-api 并阅读该页面上的文档。为 /points/{latitude},{longitude} 和 /gridpoints/{office}/{gridX},{gridY}/forecast“ API 调用构建开放 API 架构”
ChatGPT 使用顶部的信息(特别是描述)来确定此操作是否与用户查询相关。
1
2
3
4
info:
title: NWS Weather API
description: Access to weather data including forecasts, alerts, and observations.
version: 1.0.0
然后,下面的参数进一步定义架构的每个部分。例如,我们通知 ChatGPT office 参数指的是天气预报办公室 (WFO)。
1
2
3
4
5
6
7
8
9
10
11
/gridpoints/{office}/{gridX},{gridY}/forecast:
get:
operationId: getGridpointForecast
summary: Get forecast for a given grid point
parameters:
- name: office
in: path
required: true
schema:
type: string
description: Weather Forecast Office ID
钥匙:请特别注意在此 Open API 架构中使用的架构名称和描述。ChatGPT 使用这些名称和描述来了解 (a) 应该调用哪个 API 操作和 (b) 应该使用哪个参数。如果字段仅限于某些值,则还可以提供具有描述性类别名称的“枚举”。
虽然您可以直接在 GPT Action 中尝试 Open API 架构,但直接在 ChatGPT 中调试可能是一个挑战。我们建议使用第三方服务(如 Postman)来测试 API 调用是否正常工作。Postman 可以免费注册,错误处理详细,身份验证选项全面。它甚至为您提供了直接导入 Open API 模式的选项(见下文)。
第 2 步:确定身份验证要求
此 Weather 第三方服务不需要身份验证,因此您可以跳过此自定义 GPT 的该步骤。对于其他确实需要身份验证的 GPT 操作,有 2 个选项:API 密钥或 OAuth。询问 ChatGPT 可以帮助您开始使用最常见的应用程序。例如,如果我需要使用 OAuth 向 Google Cloud 进行身份验证,我可以提供屏幕截图并询问详细信息:“我正在通过 OAuth 建立与 Google Cloud 的连接。请提供有关如何填写每个框的说明。
通常,ChatGPT 会提供所有 5 个元素的正确方向。准备好这些基础知识后,请尝试在 Postman 或其他类似服务中测试和调试身份验证。如果你遇到错误,请将错误提供给 ChatGPT,它通常可以帮助你从那里进行调试。
第 3 步:创建 GPT 操作并测试
现在是创建自定义 GPT 的时候了。如果您以前从未创建自定义 GPT,请从我们的创建 GPT 指南开始。
- 提供名称、描述和图像来描述您的自定义 GPT
- 转到 Action (操作) 部分并粘贴您的 Open API 架构。在编写说明时,请记下 Action names (操作名称) 和 json 参数。
- 添加您的身份验证设置
- 返回主页并添加说明
测试 GPT 操作
在每个操作旁边,您将看到一个 Test (测试) 按钮。单击每个操作的 That。在测试中,您可以看到每个 API 调用的详细输入和输出。
如果您的 API 调用在 Postman 等第三方工具中工作,而不是在 ChatGPT 中工作,则存在一些可能的罪魁祸首:
- ChatGPT 中的参数错误或缺失
- ChatGPT 中的身份验证问题
- 您的说明不完整或不清楚
- Open API 架构中的描述不明确
第 4 步:在第三方应用程序中设置回调 URL
如果您的 GPT 操作使用 OAuth 身份验证,则需要在第三方应用程序中设置回调 URL。使用 OAuth 设置 GPT 操作后,ChatGPT 会为您提供一个回调 URL(这将在您更新其中一个 OAuth 参数时更新)。复制该回调 URL 并将其添加到应用程序中的适当位置。
第 5 步:评估自定义 GPT
即使您在上述步骤中测试了 GPT 操作,您仍然需要评估说明和 GPT 操作是否按照用户期望的方式运行。尝试提出至少 5-10 个具有代表性的问题(越多越好),以询问您的自定义 GPT 的“评估集”问题。
钥匙:测试自定义 GPT 是否按预期处理您的每个问题。
一个示例问题:“本周末去白宫旅行应该带些什么?”测试自定义 GPT 的能力:(1) 将地标转换为纬度,(2) 运行两个 GPT 操作,以及 (3) 回答用户的问题。
常见调试步骤
挑战:GPT 操作调用了错误的 API 调用(或根本没有调用)
- 溶液:确保操作的描述清晰明了 - 并参考自定义 GPT 说明中的操作名称
挑战:GPT 操作调用了正确的 API 调用,但未正确使用参数
- 溶液:在 GPT Action 中添加或修改参数的描述
挑战:自定义 GPT 不工作,但我没有收到明显的错误
- 溶液:确保测试 Action - 测试窗口中有更强大的日志。如果仍不清楚,请使用 Postman 或其他第三方服务来更好地诊断。
挑战:自定义 GPT 提供身份验证错误
- 溶液:确保您的回传 URL 设置正确。尝试在 Postman 或其他第三方服务中测试完全相同的身份验证设置
挑战:自定义 GPT 无法处理更困难/模棱两可的问题
- 溶液:尝试在自定义 GPT 中提示工程您的说明。请参阅我们的快速工程指南中的示例
构建自定义 GPT 的指南到此结束。如果您有其他问题,请祝您成功构建和利用 OpenAI 开发人员论坛。