はじめに
エンダーエンダーお疲れさまでした! nikkieです。
前回に引き続き、Actionの素振りです。
前回は既存のWebPilot Actionを指定したわけですが、今回は自作したAPIへのActionを代わりに指定します。
目次
自作APIをActionに設定する
こちらの記事に沿って手を動かしました。
- スプレッドシートでAPIを立てる(Google Apps Script)
- MyGPTsのActionに指定する
スプレッドシートでAPIを立てる
Apps ScriptでスクリプトにdoGet(e)
関数を持たせるとウェブアプリとして公開できる(=APIを立てられる)んですね!
合わせてコンテンツサービス TextOutputも返します1
Qiita記事ではクエリ文字列にidを指定2し、対応する名字と名前を返すAPIを構築しています。
人名の入ったスプレッドシートをコピーして試せます。
私なりのupdate版がこちら
- var -> const に置き換え
- TextFinderを使った検索に変更
ウェブアプリとしてデプロイすると、APIとして叩けるわけです。
curlしてみましょう3
% curl -sL 'https://script.google.com/macros/s/AKfycbxe6jJ7rfdxAm3kjK-K4IbrbSGfo0J6y99N7ul6bv2rK1hnRXR91U9Dx87oyuF_k12Qpw/exec?id=1019' | jq . { "lastName": "徳川", "firstName": "慶喜" }
APIができあがり!
スプレッドシート製APIをMyGPTsのActionに指定する
Qiita記事に沿ってOpenAPI Schemaを作り、それをActionに指定します。
やっていることはWebPilotを利用するときと同様で、OpenAPI Schemaを自力で用意しているわけです。
SchemaはGPT-4やChaGPTの力を借りて生成するのも理にかなっていると思います4
Instructionsに「番号から氏名を検索してください」とお願いしており、外部APIのActionを使えばそれができると設定しているので、番号を入力するだけで氏名を教えてくれます(まさにカスタマイズされたGPT!)
終わりに
「Google Apps ScriptでGPTsのCustom ActionsのAPIを作ってみた」に沿って手を動かしました。
MyGPTsのActionは、外部のAPIとやり取り(お話し)するための指定というわけですね。
今回はActionのAuthenticationがNoneですが、ここを設定している記事もありました。
この自作APIは素振り用であり、認証無しで誰でも叩けても問題ないですが、Authenticationの設定は身につけたく次の素振り材料かなと考えています
- またはHTMLサービスHtmlOutput↩
-
doGetの引数eはeventで、e.parameterでクエリ文字列から変換されたオブジェクトにアクセスできます。クエリ文字列中のidの値は
e.parameter.id
です↩ - -Lが必要でした ↩
-
ここを担ってくれるGPTもいます
↩GPTs用に自動的にAPIの設計書を書いてくれるGPTsを作りました。
— だるまと赤べこ (@DarmaAkabeko) 2023年11月18日
「○○な機能のAPIが欲しい」とか「○○(APIの名前)を使いたい」とか入力するだけで、それに応じたjsonファイルが出力されます。それをGPTsのActionsに入れるだけで使用できます。…