GPTsのActionsを使って、カスタムアクションを定義して、外部APIをコールできるようになるまでのハウツーです。
公式のActionsのドキュメントを読んでもいまいちピンと来なかったので、CAAS(Cats as a Service)こと、The Cat APIからねこ画像を取得してアンサーしてくれるGPTsを実装してみました。完成したサンプルはこちらから。
The Cat API
まずはThe Cat APIの利用方法です。サンプルでは、以下のエンドポイントをGPTsからコールしてねこ画像を取得します。
ランダムでねこ画像を取得する
https://api.thecatapi.com/v1/images/search?breed_ids=beng
breed_idsで品種、猫種?を指定できます。bengはベンガルネコです。
猫種の一覧を取得する
https://api.thecatapi.com/v1/breeds
Abyssinian - abys
Aegean - aege
American Bobtail - abob .... など
GPTs
左側のメニューバーから「Explore」->「Create a GPT」をクリックして、GPTSの編集画面に入ります。
「ねこ画像を表示するねこねこGPTを作成します。」とします。ここは何でも構いません。入力内容に合わせて基本設定と、プロフィール画像のアイコンを生成してもらいます。
「Configure」に切り替えて、手動で設定していきます。既に多くの部分が、自動的に入力されているはずです。
さて、いくつかの変更を行います。Instructions
には、期待する動作内容を記述します。ここでは、説明のため極力シンプルに以下のようにします。
ねこGPTはユーザーが「ねこ画像を見せて」とリクエストした際に、api.thecatapi.comを使用して「/v1/images/search」エンドポイントからランダムなねこ画像を取得して提供します。 |
---|
ここでは、APIから取得したデータだけを利用したいので、Web Browsing
、DALL·E
Image Generation
、Code Interpreter
はオフにしておきます。
Actions
から「Add Actions」をクリック。
右上の「Example」から「Get wether data」をクリック。これ自体はダミーのAPIであり動作しませんが、記述方法は参考になります。
それではCat APIからデータを取得するために、Schemaを以下に置き換えてください。
{
"openapi": "3.1.0",
"info": {
"title": "Get cat images",
"description": "Retrieves cat images.",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://api.thecatapi.com"
}
],
"paths": {
"/v1/images/search": {
"get": {
"description": "Get ther url of random cat image.",
"operationId": "GetRandomCat",
"parameters": [
{
"name": "breed_ids",
"in": "query",
"description": "Used to filter cat based on their bleed. For example, ?breed_ids=beng will return bengal cat.",
"required": false,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}
descriptionの内容にしたがって(=ここでは、ねこ画像が必要な場合)、AIは外部のAPIhttps://api.thecatapi.com/v1/images/search
を呼び出します。
また、the cat apiは以下のように猫種の指定をすることもできました。https://api.thecatapi.com/v1/images/search?breed_ids=beng
ここではbreed_ids
をparametersとして設定しています。required
がfalseになっているので、このパラメーターは必須ではなく、AIがAPIのリクエストにパラメーターを付加するかどうかを判断します。つまり、ユーザーが特定の猫種について知りたい(とAIが判断した)場合、AIはbreed_idsを指定してAPIリクエストを行います。
それでは、最後にPrivacy Policy
には以下のURLを記述します。
https://thecatapi.com/terms
以上で、設定は完了です。
ねこの画像を見せて!
画面右側のプレビューから「ベンガルネコの画像をみせて!」とお願いしてみましょう。
「このサイトを信頼しますか?(Some info will be sent to api.thecatapi.com, only do this for sites you trust)」と聞かれるので、「Allow」をクリックして許諾
ベンガルネコの画像、表示されたでしょうか?
Talked to api.thecatapi.com
という文字をクリックすると、bengというパラメーターがAIにより設定されて、データ取得が行われたことがわかります。
ここでは設定していませんが、breed_idsはエンドポイント https://api.thecatapi.com/v1/breeds
から取得できます。schemaを変更して、こちらもAIから呼び出しできるようにしてあげると、AIにとってできることが広がっていきます。
それでは、楽しいねこライフをお送りくださいね!