nikkie-ftnextの日記

イベントレポートや読書メモを発信

GoogleスプレッドシートでAPIを自作し、MyGPTsのActionに設定する(先人の記事に沿った素振り)

はじめに

エンダーエンダーお疲れさまでした! nikkieです。

前回に引き続き、Actionの素振りです。

前回は既存のWebPilot Actionを指定したわけですが、今回は自作したAPIへのActionを代わりに指定します。

目次

自作APIをActionに設定する

こちらの記事に沿って手を動かしました。

スプレッドシートAPIを立てる

Apps ScriptでスクリプトdoGet(e)関数を持たせるとウェブアプリとして公開できる(=APIを立てられる)んですね!
合わせてコンテンツサービス TextOutputも返します1

Qiita記事ではクエリ文字列にidを指定2し、対応する名字と名前を返すAPIを構築しています。
人名の入ったスプレッドシートをコピーして試せます。

私なりのupdate版がこちら

ウェブアプリとしてデプロイすると、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の設定は身につけたく次の素振り材料かなと考えています


  1. またはHTMLサービスHtmlOutput
  2. doGetの引数eはeventで、e.parameterでクエリ文字列から変換されたオブジェクトにアクセスできます。クエリ文字列中のidの値はe.parameter.idです
  3. -Lが必要でした
  4. ここを担ってくれるGPTもいます