誰でも自分専用のChatGPTを作成できるGPTsの使い方 (4) - Actionsを使用して天気予報を取得する

本シリーズでは、目的に特化したChatGPTを作成できる、OpenAIのGPTsについて紹介します。
今回は、Actionsを使用して天気予報に関する回答を行うGPTを作成します。

  1. 今回は、気象庁で提供されている以下のJSONデータを使用します。

  2. 130000の箇所にはエリアコードが入ります。エリアコードは以下より確認できます。 https://www.jma.go.jp/bosai/common/const/area.json

  3. 上記データ取得方法をGPTsのActionsで使用できるように、OpenAPIのフォーマットで記述します。

  4. 手動で作成するのは大変なので、ChatGPTの力を借りて作成します。

    • 使用したプロンプト

      以下のデータを下に、OpenAPIフォーマットで仕様を出力してください。
      URLの"130000"の箇所には地域コードが入ります。operationIdを必ず設定してください。
      https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json
      https://www.jma.go.jp/bosai/forecast/data/overview_forecast/130000.json
      
  5. 以下のyamlフォーマットのデータが出力されました。

    openapi: 3.0.0
    info:
      title: JMA Weather Forecast API
      version: 1.0.0
      description: API for accessing weather forecast data from Japan Meteorological Agency (JMA).
    servers:
      - url: https://www.jma.go.jp/bosai/forecast/data
    paths:
      /forecast/{areaCode}.json:
        get:
          summary: Retrieve detailed weather forecasts.
          operationId: getWeatherForecast
          parameters:
            - name: areaCode
              in: path
              required: true
              description: The area code to retrieve weather data for.
              schema:
                type: string
                example: '130000'
          responses:
            '200':
              description: Successful response with weather forecast data.
              content:
                application/json:
                  schema:
                    type: object
                    properties:
                      publishingOffice:
                        type: string
                      reportDatetime:
                        type: string
                      timeSeries:
                        type: array
                        items:
                          $ref: '#/components/schemas/TimeSeries'
      /overview_forecast/{areaCode}.json:
        get:
          summary: Retrieve weather forecast overview.
          operationId: getForecastOverview
          parameters:
            - name: areaCode
              in: path
              required: true
              description: The area code to retrieve weather overview for.
              schema:
                type: string
                example: '130000'
          responses:
            '200':
              description: Successful response with weather forecast overview.
              content:
                application/json:
                  schema:
                    type: object
                    properties:
                      publishingOffice:
                        type: string
                      reportDatetime:
                        type: string
                      targetArea:
                        type: string
                      headlineText:
                        type: string
                      text:
                        type: string
    components:
      schemas:
        TimeSeries:
          type: object
          properties:
            timeDefines:
              type: array
              items:
                type: string
            areas:
              type: array
              items:
                $ref: '#/components/schemas/Area'
        Area:
          type: object
          properties:
            area:
              type: string
            weatherCodes:
              type: array
              items:
                type: string
            winds:
              type: array
              items:
                type: string
            waves:
              type: array
              items:
                type: string
    

次に、初回で紹介したGPT Builderを使用して、天気予報に関する回答を行うGPTの大枠を作成します。

  1. 以下URLよりGPT Builderを開きます。
    https://chat.openai.com/gpts/editor

  2. GPT Builderと会話を行い、大枠を作成します。

    GPT Builderで大枠を作成

  3. 用途とプロフィール画像を指定後、「Configure」は以下のように設定されました。

    Configureを選択

  1. 次に、天気予報を取得するためのアクションを設定します。
    「Configure」内のActionsにある「Create new action」を選択します。

    Create new actionを選択

  2. すると、以下の画面が表示されます。

    アクション設定画面

  3. 各項目は以下のとおりです。

    • Authentication: 認証方式を選択します。
      • None: 認証なし
      • API Key: APIキーを使用
      • OAuth: OAuth認証を使用
    • Schema: 使用するアクション(Web API)をOpenAPIフォーマットで入力します。
    • Privacy policy: GPTsを公開する際のプライバシーポリシーを設定します。
  4. 今回は、以下の通り設定します。
    設定完了後、左上の「<」ボタンで前のページに戻ります。

    • Authentication: 認証不要であるため、Noneに設定。
    • Schema: 最初に作成したyamlデータを入力します。
    • Privacy policy: 公開せずに個人で利用するため設定不要です。

    Actions設定

  5. エリアコードを自動で取得するように、「Instructions」に以下の文言を追加しておきます。

    areaCodeは以下を参照してください。
    https://www.jma.go.jp/bosai/common/const/area.json
    
  6. 右画面のPreviewで動作確認しましょう。
    初回はAPIのアクセス許可を聞かれるので、「Always Allow」を選択しておきます。

    APIへのアクセス許可設定

  7. 以下のようにデバッグ情報が確認できます。

    デバッグ情報確認(1)
    デバッグ情報確認(2)

  8. 地域を毎回指定するのは面倒なので、「Instructions」に以下プロンプトを追加しましょう。

    地域を指定していない場合は、「東京」の天気情報を回答してください。
    

    地域を省略して問い合わせ

  9. 動作確認が完了したら、右上の「Create」をクリックしてGPTを作成します。

    CreateでGPTを作成

  10. 以下のようなざっくりした質問にも答えてくれるチャットボットが作成できました。

    • Q: 洗濯するのはいつが良い?

      洗濯するのはいつが良い?

    • Q: 明日は半袖でも良い?

      明日は半袖でも良い?

今回はGPTsのActionsを使用して、天気予報に関する質問に答えるチャットボットを作成しました。
気象庁の提供しているJSONデータをWeb APIとして扱えるようにOpenAPIフォーマットで記述を行い、
アクションに設定を行いました。

次回は、Actionsを使用してGoogle Calendarから予定を確認・追加できるGPTを作成します。

関連記事