OpenAIのGPTs.Actionsを触ってみた
前回に続き、OpenAI DevDayのアップデートを受けてGPTs.Actionsを触ってみました。
前回の記事はこちら。
GPTsとは?
GPTsとはChatGPTを独自にカスタマイズして公開することができる機能です。
ChatGPTは非常に汎用性が高く何でも出来る反面、それを使うユーザーにリテラシーを求められます。
GPTsを使うと特定分野にカスタマイズして、ある業務に特化したものやキャラクター性を持ったChatGPTが作れます。
Actionsとは?
Actionsとは、ChatGPTから外部のAPIを実行する機能です。
企業内のデータベースにアクセスしたり、メール送信や買い物も出来たりします。
APIをデプロイ
今回は、ActionsからAWS Lambdaで作ったAPIにアクセスするサンプルプログラムを実行してみました。
利用する技術セットは以下です。
Serverless Framework
Python
AWS Lambda
Serverless Frameworkのserverless.ymlを書いてデプロイ
service: GPT-Builder
frameworkVersion: '3'
provider:
name: aws
runtime: python3.9
stage: dev
region: ap-northeast-1
memorySize: 128
architecture: arm64
tags:
product: GPT-Builder
environment:
TZ: Asia/Tokyo
stage: ${self:provider.stage}
region: ${self:provider.region}
iamRoleStatements:
- Effect: "Allow"
Action: "iam:PassRole"
Resource: "*"
functions:
get_current_weather:
handler: handler.get_current_weather
description: 現地の天気を知る
events:
- http:
path: get_current_weather
method: get
cors: true
get_current_weatherを実装します。戻り値はダミーを返します。
import json
def get_current_weather(event, context):
print("get_current_weather:", event)
return {"statusCode": 200, "body": json.dumps({"weather": "晴れ 降水確率0% 最高気温22度、最低気温14度"})}
デプロイするとURLが発行されます。このURLは後で使うのでメモしておいてください。
$ sls deploy
endpoint: GET - https://xxx.execute-api.ap-northeast-1.amazonaws.com/dev/get_current_weather
GPTsを作成
GPTsの設定
次にGPTsを作成します。
まずは基本設定から。My GPTsから新規作成します。
次にConfigureを選択して必要事項を入力します。
天気を聞く簡単なサンプルを作成します。
Actionsの設定
Actionsで「Get weather data」を選択するとサンプルのSchemaが表示されます。
サンプルSchemaのservers.urlとpathsをさっきデプロイして発行したURLに修正します。
{
"openapi": "3.1.0",
"info": {
"title": "Get weather data",
"description": "Retrieves current weather data for a location.",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://xxx.execute-api.ap-northeast-1.amazonaws.com"
}
],
"paths": {
"/dev/get_current_weather": {
"get": {
"description": "Get temperature for a specific location",
"operationId": "GetCurrentWeather",
"parameters": [
{
"name": "location",
"in": "query",
"description": "The city and state to retrieve the weather for",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}
動作確認
さっそく動作確認してみます。
ダミー関数の結果が表示されてますね。
APIのURLと送信データも確認出来ます。
この記事が気に入ったらサポートをしてみませんか?