ワンフットシーバス 田中です。ChatGPT API が相手をしてくれるシンプルな LINE BOT 作成する 後編です。
前半で動作した enebular Web エディタでつくった LINE BOT を、 enebular クラウド実行環境の仕組みに置き換えた LINE BOT にしてみます。メッセージを送ってみると、OpenAI 社の ChatGPT API が返答してくれます。
目次
前編の内容でうまく動作している前提で進めます
前回の記事(↓)の内容に従って、上記の画像のようにフローがうまく動作している前提で進めます。
「ChatGPT API が相手をしてくれるシンプルな LINE BOT 作成する (前) 」
フローを編集する
クラウド実行環境で動作するようにフローを調整します。
上記が、以前エディタ画面で LINE BOT がうまく動作したフローです。すでにクラウド実行環境で必要な LCDP in ノードと LCDP out ノードがあるのでこれに接続し直すだけです。
今までは http in ノードでデータの入口を作っていた、こちらのパートに注目します。
こちらを http in ノードから LCDP in ノードに接続し直します。
今までは http response ノードでデータの出口を作っていた、こちらのパートに注目します。
こちらを http response ノードから LCDP out ノードに接続し直します。
設定ができたらデプロイしましょう。
クラウド実行環境へのフローの反映
ブラウザでエディタのタブを閉じて、以前のタブのフロー詳細画面に戻ります。
上部のプロジェクト名をクリックしてプロジェクト詳細画面に戻ります。
プロジェクト詳細画面で右メニューのクラウド実行環境をクリックします。
クラウド実行環境の一覧が表示されたので、一覧から今回設定するクラウド実行環境をクリックします。
クラウド実行環境の詳細が表示されたので、デプロイ ボタンをクリックします。
今回作成したフローをクリックしてデプロイ ボタンをクリックします。
デプロイ中となります。
デプロイ済みになりました。
事前に HTTP トリガーの URL を考えておきます
HTTP トリガーの URL は enebular の他のユーザーやプロジェクトも含めて共有して使っています。
使いたい URL を他のユーザーやプロジェクトが、すでに取得していた場合には設定できずエラーになります。
こちらの記事を参考に、重複しないよう (自分の名前の英語名)-(今回のプロジェクト名)-(今日の日付)-(ランダム値)-linebot
と決めておきましょう。
「クラウド実行環境での HTTP トリガーに設定する重複しない URL をつくる TIPS」
たとえば、
- 自分の名前の英語名
- 例:山田太郎 →
yamada-taro
- 例:山田太郎 →
- 今回のプロジェクト名
- 例:
myproject
- 例:
- 今日の日付
- 例:2022 年 10 月 21 日 →
20221021
- 例:2022 年 10 月 21 日 →
- ランダム値
- 3 桁以上のランダム値 例:
2736
(前述の記事の「ランダム値の作り方」を参照)
- 3 桁以上のランダム値 例:
でしたら、yamada-taro-myproject-20221021-2736-linebot
のようになります。
クラウド実行環境の設定
上部のメニューから設定をクリックします。このままだと設定は入力できずロックされています。
設定を編集をクリックします。クリックすると設定が編集できるようになります。
HTTP トリガーの項目に注目します。
スイッチをクリックして ON にします。
HTTP トリガーのパスを、先ほど決めた HTTP トリガーの URL を入力します。
下までスクロールして保存ボタンをクリックします。
しばらく待つと画面左下に更新に成功しましたとメッセージが出ます。他にエラーメッセージがでなければ成功です。
このようにまたロックされて編集できなくなり、設定が完了します。
HTTP トリガー URL の確認
HTTP トリガーの項目を確認します。
このアイコンをクリックして、クリップボードにHTTP トリガー URL をコピーします。
コピーができると、このように「コピーしました」と出ます。
この設定を LINE BOT の Webhook 設定に使用します。
LINE Developers で Webhook の設定をする
LINE Developers を、ブラウザの別のタブで開きます。このように今回使う LINE BOT の Messaging API 設定に移動します。
スクロールして Webhook 設定の項目を見つけて、編集ボタンをクリックします。
先ほどコピーした URL を Webhook URL の欄にペーストして更新ボタンをクリックします。
また、Webhook の利用がオンになっていることも確認してきましょう。まれにオフになっているので、その時はオンにします。
これで LINE BOT の設定は完了です。
動かしてみる
今回動かす LINE BOT で「接続チェックしてます!よろしくお願いします!」メッセージを送ってみると、OpenAI 社の ChatGPT API が相手をしてくれます。
サーバレスな AWS Lambda の挙動になるので、最初の 1 回のアクセスはコールドスタートというサーバーの起動込みの動作となり 5 ~ 10 秒程度の間があります。
そのあと、直後に続けてメッセージするのは素早く帰ってきます。しばらくアクセスしていないと、またコールドスタートがはじまります。
参考 :
Lambdaの実行環境について(コールドスタートとウォームスタート)
このように enebular のクラウド実行環境にデプロイすれば、作成した LINE BOT をフローエディタで開発しているときだけでなく、継続して実際に使えます。みなさんもご自分の環境で試してみてください。