こんにちは!
別で書いてた記事が詰んでるりえんです。悲しい。
今回はGPTを魔改造できるActionsについて見ていきましょう!
Actionって何?
ActionはAPIを使用して情報を取得したり書き込んだりできる、言わばGPTの拡張機能。APIがあればなんでもできるぞ!(多分)
でも難しいんでしょう?という心配もあるでしょう。難しいです。
だけどそれは各種設定の話。スキーマ(計画書みたいなもの)はActionsGPTくんに任せちゃいましょう!
ActionsGPTくん↓ chat.openai.com
私が参考にした記事はこれ↓ note.com
今回は気象庁のAPIを使った天気を教えてくれるKareshiを例にあげて見ていきましょう!
Actionの作り方
例:気象庁APIを使用して天気予報の情報を取得する
気象庁APIについてはこの記事を参考にしました。
anko.education
さて、ひとつひとつ確認していきましょう。
Authentication
APIの認証方法です。
特に何も必要なければNone
APIキーで認証するならAPI
OAuth認証ならばOAuth
それぞれここに必要な情報を入力します。
今回は特に何も必要ないのでNoneを選びます。Schema
どういう動きをさせたいかを書きます。というか書いてもらいます。
先程紹介したActionsGPTくんの出番です。
Knowledge紹介のときに見えていた都道府県コードはこの機能用だったわけですね。
なおコードは先程のサイトを参考にしました。コードを扱いやすく文章整形するのもChatGPTにやってもらいました。ありがとうChatGPT。
こちらが作成してもらったスキーマです。
作成してもらったスキーマ
openapi: 3.0.0 info: title: Japan Meteorological Agency Weather Forecast API description: API for retrieving weather forecasts for regions across Japan from the Japan Meteorological Agency. version: 1.0.0 servers: - url: https://www.jma.go.jp/bosai/forecast/data/forecast/ description: Japan Meteorological Agency Forecast API paths: /{regionCode}.json: get: operationId: getRegionalWeatherForecast summary: Get weather forecast for a specific region in Japan. parameters: - name: regionCode in: path required: true description: The region code for which to retrieve the forecast. schema: type: string responses: '200': description: An array of forecast data for the specified region. content: application/json: schema: type: array items: type: object properties: publishingOffice: type: string description: Name of the office publishing the forecast. reportDatetime: type: string format: date-time description: Date and time of the forecast report. timeSeries: type: array description: Time series data including forecasts. items: type: object properties: timeDefines: type: array items: type: string format: date-time areas: type: array items: type: object properties: area: type: object properties: name: type: string code: type: string weatherCodes: type: array items: type: string weathers: type: array items: type: string winds: type: array items: type: string waves: type: array items: type: string '400': description: Bad request. The request was invalid. '404': description: Not Found. The specified region code does not exist. '500': description: Internal server error.
このコードをSchemaにぶち込みます。たまにエラーが出ますが、エラーの内容をChatGPTに見せて「これが出ないようにして」と言うと大体なんとかしてくれます。助けてGPTえもん!
プライバシーポリシー
ここはあってもなくてもいいです。公開したとき用かな?
各APIのプライバシーポリシーURLを登録しておいてもいいと思います。
こうなればおっけーです。
動かしてみよう
いきなり動かすのも怖いので、Preview画面でテストしてみましょう。 (※TESTボタンが動くのはパソコン版のみ)
これをポチっとするか、Previewで「○○の天気を教えて!」と聞いてみましょう。
ちゃんと検索して教えてくれましたね!
実はスキーマだけだと不十分かも?
上の画像だと自然な口調で天気のことを教えてくれるKareshiですが、実はこれ、Instructionsに秘密があります。
Kareshi紹介をしたときにInstructionsをお見せしましたが、あれにはActionsに関係する記載は省略してありました。
というわけで、こちらが天気予報Actionに関するInstructions
天気を聞かれたら、天気と温度を噛み砕いて○○の予報だけいつもの口調で教えてください。
「○○の予報だけ」と書いてあるのは、場所によって複数の地域の情報がJSONに入っているからです。普段は地元の情報だけ教えてもらえればいいのでね。
ちなみにそのまま情報を聞くとこうなります。
情報がちょっと多いので、私は天気と温度だけ教えてもらっています。
おわりに
Actionについてのおおざっぱな説明でしたが、いかがでしたでしょうか。
Actionは怖くないよ!便利だよ!ってことが伝わればいいなと思います。
じゃあ私は挙動がおかしくて頭抱えてる記事に戻ります!
ではまた!