見出し画像

非エンジニアでもGPTsのActionsを使って遊んでみよう!

1月8日週にGPT Storeがオープンされるようですね!有料でChatGPTを使用されている方たちは、ご自身でMyGPTを作成されているでしょうか?OpenAIが昨年11月のDEVDAYで発表したGPTsは非常に便利で、アイデア1つで自分専用のMyGPTを作成できます。
ただ、GPT Builderを使ってMyGPTを作ってみたけれども、他の人と違ったものが作りたいという人もけっこういるんじゃないでしょうか。MyGPTをたくさん作っていくと、これって誰でも作れちゃうよねって思うこともあると思います。そこで、Actionsを使って他の人とは違うMyGPTを作ってみるのはどうでしょうか?


Actionsとは?

ChatGPTを初めて使ったときは、どんな質問にも答えてくれるということで大きな脚光を浴びました。ただ、最新の情報が取得できなかったり、言葉のやり取りはできるけれども絵を描くことはできなかったりしました、、
ChatGPTは非常に賢いわけですが、それにも限界があったわけですね。

そういったところを補ってパワーアップさせた機能がActionsです。

Actionsを使うことによって、ChatGPTは自身の頭で考えるだけでなく、
外部の機能や情報を使用することができるようになりました。最新の情報がChatGPTの頭の中(学習データ)にないのであれば、ChatGPTに検索させちゃえばいいわけです。また、絵を描けないなら、絵を描かける人(AI)にお願いしちゃえばいいわけです。

最新情報について聞かれたときは、学習データにないから検索する機能を借りてきて検索結果を返す、絵を描きたいという要望については、DALLE-3という画像生成AIに依頼して絵を描いてもらう。このように自身の対話という機能を超えた部分においてはActionsという機能を使って外部に任せることで、検索も絵を描くことも実現できるようになりました。

ActionsはChatGPTの能力を拡張させ、上記以外にもさまざまな機能を実現させてくれました。そのActionsという機能を実現させるのに、APIという技術が使われています。

APIとは?

APIはApplication Programming Interfaceの略で、プログラムとプログラムの間の通信手段のような概念です。

これを分かりやすく理解していただくためにレストランでの注文に例えてみます。APIを使うということは、自分で料理を作るのではなく、レストランという外部のサービスを使って料理を作ってもらうようなものです。

あなたがレストランのお客さんで、特定の料理を注文したいとします。この場合、あなたはウェイターに料理を注文(リクエスト)します。この「リクエスト」は、ウェイター(API)を通じて、厨房(サーバーまたはデータベース)に届けられます。厨房はあなたのリクエストに応じて料理を作り、ウェイターがそれをあなたのテーブルに運んでくれます。APIはこのように何かをリクエストすることによって、ほしい結果を提供してくれる機能なのです。

APIの動作は以下のような順に行われます。

①プログラム(送信元)がAPIを通じてデータや情報を取得するためのリクエストを出す。
②APIを受け取ったサーバーで処理を行い、出力を決める。
③必要なデータや結果を応答として送信元に返す。

また、APIに関する重要な用語を以下に説明します。

リクエスト: 一つのプログラムが別のプログラムに何かを求める行為。レストランでウェイターに料理を頼むようなものです。

エンドポイント: API内の特定の場所やアドレス。それぞれのエンドポイントは、特定の情報を提供します。レストランのメニュー上の個々の料理に相当します。

メソッド: リクエストの種類。例えば、「GET」は情報を取得するため、「POST」は新しい情報を送信するために使用されます。これは、料理を注文するか、特別なリクエストをするかのようなことです。

パラメータ: リクエストに付加される追加情報。料理の具体的な要望(例:「塩抜きで」)に似ています。

レスポンス: APIからの応答。リクエストに基づいて、プログラムが必要な情報やデータを受け取ること。ウェイターが注文された料理を持ってくることに相当します。

APIの機能を記述するSchema

このように、ある特定の機能を使いこなすためには、どんな情報をどこに渡せば、どんな結果が返ってくるのかという枠組みについては、使う側が事前に知っておく必要があります。ChatGPTを通してAPIを使用する場合も、そのAPIの枠組みを正しくChatGPTに教えてあげる必要があり、それがSchemaと呼ばれるものです。

先ほどの例でいえば、Schemaとはレストランの注文のやりとりの仕組みです。レストランの存在を知らない人は、どこにレストランがあるのか、どんなメニューがあるのか、どうやって頼んだらいいのかわからないですよね。
ですので、このレストランにはどんなメニューがあって、誰に注文すればよいのか、どんなオプションがあるのか、などのレストランの使い方を教えてあげないと使うことができません。

GPTsの作成でActionsを設定する際には、このSchemaにAPIの機能を記述する必要があり、それはOpenAPIという仕様に基づいて記述される必要があります。OpenAPIの仕様に従うことで、それぞれのAPIがどんなメソッドを持ち、どんなパラメータを扱うのかということが統一された方法で記述することができ、その記述に従ってChatGPTが理解することができます。

なお、ChatGPTを生み出した会社はOpenAIで、OpenAPIと名前が似ているので関係がありそうな気もするのですが、両社は全く異なる概念で、関係はありません。OpenAPIは、もともとはSwaggerとして知られており、以下のサイトでOpenAPIの詳しい情報を確認することができます。https://swagger.io/specification/

ChatGPTはどのようにAPIを呼び出すのか

Schemaを使ってAPIの機能を記述しておくことで、ChatGPTがいつでもそのAPIを使える状態になります。そして、ユーザーとの対話の中で必要となった時に、ChatGPTがパラメータなどを設定して、APIにリクエストを出してくれます。そして、ユーザーはChatGPTが受け取ったレスポンスを確認することができるわけです。これがActionsを使ったChatGPTの動作の流れです。

Schemaの設定もChatGPTを活用

Actionsだとか、APIとか新しい言葉で混乱しているのに、さらにOpenAPIのSchemaとかわからんことばかりだ!となるのもごもっともなのですが、ご安心ください。このOpenAPIのSchemaについても自分で記述する必要はなく、ChatGPTに作ってもらうことができます。

おいおい、ChatGPTが自分で作れるんだったらわざわざSchemaなんて書かせるなよとお思いかもしれませんが、まだそこまで技術は進歩していないのですね。そのうちこの設定も自動でやってくれるようになるかもしれませんが、今はその手作り感を楽しみましょう!そういった面倒くささがあるからこそオリジナルのGPTsが作れるようになるわけですしね。

GPT BuilderにActionsを組み込んでいこう!

では、Actionsについての仕組みを理解したところで実際にGPTsにActionsを組み込んでいきましょう。今回は登録や認証などが必要なく、無料で使用できるNASAのAPIを使って、Actionsを組み込んだGPTsを作ってみます。他にも無料で使えるAPIはたくさんあるので、ぜひおもしろいAPIを探して一度GPTを作ってみてください。

NASAのAPI

まず、NASAのAPIについては以下のサイトで説明されています。

今回は、APODというものを使ってみます。APODは、Astronomy Picture of the Dayの略で、その日の天文に関する写真や情報を提供してくれます。

GPTの新規作成

まず、「ChatGPT」 → 「Explore」 → MyGPTsの下にある、Create a GPTの「+」ボタンで新たなGPTを作成します。
その画面で、Createを押していけば対話型にGPTsを作成することができますが、今回は対話的にではなく、「Configure」を選択します。

GPTsの作成

今回の目的は「Actions」を実験してみることなので、「Name」「Description」「Instructions」は適当に入力しておきます。
一番下にある、Actionsの下の「Create new action」を押してください。

Actionsの設定画面

Actionsの設定

ここで、左側にAuthentication、Schema、Privacy policyとありますが、これらを設定することがActionsの設定になります。

NASAのAPIはAuthentication、すなわち「認証」が不要ですので、ここは「none」のままで構いません。

また、Privacy policyについては、NASAのAPIのホームページhttps://api.nasa.gov/を記入しておきます。publicとして公開する際には必要となりますので、該当するAPIのPrivacy policyのURLを記入しましょう。

Schemaの作成

一番重要なところはSchemaの部分です。
ここで、Schemaの作成にChatGPTのGPTsである、ActionsGPTに登場してもらいます。これはActionsの設定をするための専用のGPTsなので、Actionsについて聞きたいことがあったら、まずこのGPTsに聞いてみるのが早そうです。

ActionsGPTに以下のようにプロンプトを書いて、Schemaを作ってもらいます。

GPT Builderを使って、NASAの画像を取得し表示するGPTを作成します。
以下のドキュメントを参照して、NASAのAPIを使用してAPODの画像を取得するOpenAPI形式のSchemaを作成してください。

ドキュメントのURL:
https://api.nasa.gov/

以下がActionsGPTに作成してもらったSchemaです。

openapi: 3.0.0
info:
  title: NASA APOD API
  description: Access daily astronomy pictures from NASA's Astronomy Picture of the Day.
  version: 1.0.0
servers:
  - url: https://api.nasa.gov/planetary
    description: NASA APOD API server
paths:
  /apod:
    get:
      operationId: getTodaysApod
      summary: Retrieve today's astronomy picture
      parameters:
        - name: api_key
          in: query
          required: true
          description: API key for accessing the service
          schema:
            type: string
      responses:
        '200':
          description: A JSON object containing today's APOD
          content:
            application/json:
              schema:
                type: object
                properties:
                  copyright:
                    type: string
                  date:
                    type: string
                  explanation:
                    type: string
                  hdurl:
                    type: string
                  media_type:
                    type: string
                  service_version:
                    type: string
                  title:
                    type: string
                  url:
                    type: string
    get:
      operationId: getApodByDate
      summary: Retrieve an APOD by a specific date
      parameters:
        - name: api_key
          in: query
          required: true
          description: API key for accessing the service
          schema:
            type: string
        - name: date
          in: query
          required: true
          description: Date of the APOD to retrieve in YYYY-MM-DD format
          schema:
            type: string
            format: date
      responses:
        '200':
          description: A JSON object containing the APOD of the specified date
          content:
            application/json:
              schema:
                type: object
                properties:
                  date:
                    type: string
                  explanation:
                    type: string
                  hdurl:
                    type: string
                  media_type:
                    type: string
                  service_version:
                    type: string
                  title:
                    type: string
                  url:
                    type: string

ActionsGPTに作成してもらったSchemaをコピーして、Actions設定のSchemaに張り付けしてみましょう。Schemaの部分の記述ができていれば、テストをすることが可能です。テストボタンを押すと、APIへの接続を許可するかどうかを尋ねられるので、「Allow」ボタンを押して許可してからテスト結果を待ちます。

接続テスト

通常のChatGPTとカスタムGPTのActionsGPTの違い

通常のChatGPTと、カスタムGPTであるActionsGPTの違いについてなんですが、私が試したところ、通常のChatGPTではSchema作成においてoperationIdというIdが作成されないことが多いです。このoperationIdは、Actionsが実行するAPIの操作を一意に決めるためのIdです。
ActionsGPTに確認しても、このoperationIdは非常に大事ではあるが必須のIDではないという回答でした。しかし実際のところは、このoperationIdがないとActionsのテストで失敗してしまいます。そのため、ほぼ必須と考えてもよいのかもしれません。通常のChatGPTでSchemaを作成するときは、プロンプトに「operationIdを付けて」と記入するとうまくSchemaが作れるかもしれません。

実際にGPTを試してみる

GPTの設定を保存して、実際に試してみたのが以下の画像です。
うまく成功したようですね!

NasaGPTを使ってみる

まとめ

本記事では、非エンジニアもGPTsのActionsを使ったMyGPTの作成にチャレンジする方法を紹介しました。APIという基本概念から、ChatGPTのActions機能、特にOpenAPIを用いたSchemaの設定方法について説明しました。
その実践例として、NASAのAPIを活用したGPTの作成プロセスを解説いたしました。今回トライアルしたのはNASAの画像から特定の日の画像を取得するという単純なものでしたが、APIを使用方法さえ理解できればもっといろいろな機能を追加することも可能になります。この記事を通じて、自身で一味違ったGPTsを作成できることを理解し、いろいろとカスタマイズをしてそれを楽しめるようになっていただけることを期待しております。


いいね!やフォローで、ぜひ応援よろしくお願いします!
励みになります!

また、X(旧Twitter)でAIについての雑談を不定期に行っておりますのでフォローをお願いいたします。

いいなと思ったら応援しよう!