satto shortcut | 使い方

sattoでスキルを作る(上級編):API連携で天気予報&アドバイススキルを作ろう!

初芝賢のアバター

初芝賢

sattoでスキルを作る(上級編):API連携で天気予報&アドバイススキルを作ろう!のサムネイル画像

1.スキル作成の準備をする

まずは、スキル準備をしていきましょう。

1.1. sattoの起動とマイスキル画面の表示

sattoアプリを起動し、マイスキル画面を開きます。

1.2. スキル作成の開始

マイスキル画面の右上にある「スキルを作成する」ボタンをクリックし、スキル作成画面に切り替えます。

1.3. スキル基本情報の設定

スキル作成画面で、スキル名を入力します。

例)「天気情報&アドバイススキル」

2.緯度経度取得プロンプトの作成

まず、天気情報を取得するために必要な緯度経度を、地域名から取得するプロンプトを作成します。

2.1. 入力パラメータの追加

sattoの編集画面で「パラメータを追加」を選択し、地域名を入力するためのインプットパラメータを追加します。

パラメータ設定

  • ラベル名: 地域名
  • パラメータの説明: 現在の天気情報を取得したい地域名を入力します。

2.2. Open-Meteo APIについて

今回は、Open-Meteoの天気予報APIを利用します。このAPIは、緯度(latitude)・経度(longitude)を指定することで、その地域の天気情報を返してくれます。

以下のAPIリクエストURLのlatitude・longitudeに、天気情報を取得したい地域の地域の緯度・経度を代入します。

APIリクエストURLの基本形

https://api.open-meteo.com/v1/forecast?latitude=XXXXX&longitude=XXXXX&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max&forecast_days=1

  • latitude: 緯度
  • longitude: 経度
  • daily: 取得したい天気情報 (最高気温、最低気温、降水確率)
  • forecast_days: 予報日数 (今回は1日)

リクエスト例 (東京)

たとえば、東京の緯度・経度は35.6895139.6917です。
この場合、リクエストURLは以下のようになります。

https://api.open-meteo.com/v1/forecast?latitude=35.6895&longitude=139.6917&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max&forecast_days=1

レスポンス例 (東京)

すると、以下のような形式で天気情報がレスポンスされます。

{"latitude":35.7,"longitude":139.6875,"generationtime_ms":0.0400543212890625,"utc_offset_seconds":0,"timezone":"GMT","timezone_abbreviation":"GMT","elevation":40.0,"daily_units":{"time":"iso8601","temperature_2m_max":"°C","temperature_2m_min":"°C","precipitation_probability_max":"%"},"daily":{"time":["2024-11-28"],"temperature_2m_max":[16.5],"temperature_2m_min":[8.2],"precipitation_probability_max":[0]}}

2.3. 緯度経度取得・URL生成プロンプト

インプットパラメータに入力された地域名を元に緯度経度を取得し、APIリクエストに必要なURLを生成するプロンプトを作成します。

プロンプト設定

{{地域名}} の緯度と経度を取得し、以下のURLの(latitude)に緯度を、(longitude)に経度を代入してください。その後、代入後のURLだけを出力してください。日本語は一切含めないでください。

・URL

https://api.open-meteo.com/v1/forecast?latitude=(latitude)&longitude=(longitude)&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max&forecast_days=1

{{}}で囲まれた箇所は、「 / 」で変数を呼び出します。

3.天気情報取得アプリノードの追加

次に、作成したリクエストURLを使って、Open-Meteo APIから天気情報を取得するアプリノードを追加します。

3.1. アプリノードの設定

  • 「アプリ選択」で「カスタム」を選択
  • リクエストURLに、先ほど作成したAIノードの「AI出力結果」を代入(「 / 」で呼び出します)

これで、指定した地域の天気情報をAPIから取得できるようになりました。

4.天気情報整理・アドバイスAIノードの追加

取得した天気情報は、そのままではデータとして読みづらいため、AIを使って情報を整理し、外出時のアドバイスを生成するノードを追加します。

4.1. AIノードの設定

直前のアプリノードの出力結果を受け取り、その内容を元に天気情報をわかりやすく説明し、外出時のアドバイスを生成するプロンプトを作成します。

プロンプト設定

以下は {{地域名}} の天気データです。これを元に、 {{地域名}} の天気情報をわかりやすく説明し、その後外出時のアドバイスをください。

## 天気データ

{{アプリ実行結果}}

{{}}で囲まれた箇所は、「 / 」で変数を呼び出します。

5.出力設定と実行

これでスキルは完成です。保存して、実際に実行してみましょう。

6.まとめ

今回は、sattoとOpen-Meteo APIを連携させて、天気情報を取得し、それに応じたアドバイスを提供するスキルを作成しました。このように、sattoはAPIと連携することで、さまざまな機能を拡張し、より便利で実用的なスキルを開発できます。ぜひ、皆さんも独自のスキル作成にチャレンジしてみてください。