1. はじめに
こんにちは。 @mitsuoka0423 です。
この資料では Replicate というサービスを利用して、
AI (機械学習) をノーコードで組み合わせた LINE Bot を制作する方法をお伝えします。
2. ハンズオンの完成イメージ
3. 事前準備
ハンズオンでは以下の準備が必要となりますので準備をお願いします。
- LINE公式アカウントの作成 / LINE Botの初め方
- Replicate にサインインする & API キーを発行する
- Make(旧: Integromat)のアカウント登録
- imgBBにサインインする
4. Replicate とは?
- オープンソースなモデルの実行環境で、数千のモデルを利用可能
- APIが提供されており、機械学習やPythonの知識がなくても自身のアプリに組み込むことができる
- カテゴリや人気順などでモデルを探すことができる
4.1. 価格
Replicate を利用するのにかかる金額はマシンのスペックと実行時間によって決まります
計算例
CPUのマシンで1分間実行した場合
$0.000100/sec x 60sec = $0.006 ≒ 0.882円
※$1=147円で計算
※2024/02/07時点の情報
価格が変わっているがあるので詳細は必ず公式ページをご確認ください。
今回のハンズオンで利用するモデル
5. オウム返しする LINE Bot を作成する
5.1. 完成イメージ
5.1.1. シナリオ
5.1.2. LINE Bot
5.2. 事前準備
本資料の内容を進めるためには下記の作業が必要です。
5.2.1. LINE
以下が終わっていれば OK です。
- LINE 公式アカウントが作成され、友達追加されていること
- チャネルアクセストークンが発行されていること
5.2.2. Make
以下が終わっていれば OK です。
- Make にログインできていること
5.3. Makeでシナリオを作成する
5.3.1. 前提
- Make で操作
5.3.2. 操作イメージ
5.4. LINE
モジュールのWatch Events
を追加 & 設定する
5.4.1. 操作イメージ
くるくるしてればOK
5.5. 作成したチャネルにWebhook URLを設定する
5.5.1. 前提
-
LINE Developesコンソールで操作
- ログインがまだの方は、ログインしておいてください
Make はこのあとの手順でも利用するので、タブで開きっぱなしにしておいてください。
5.5.2. 操作イメージ
5.6. LINE
モジュールのSend a Reply Message
を追加 & 設定する
5.6.1. 前提
- Make で操作
5.6.2. 操作イメージ
くるくるしてればOK
5.7. LINE にメッセージを送る
5.7.1. 操作イメージ
送った文字がそのまま返ってくればOK
6. 演習1. LINE Bot に好きなキャラの口癖をつけてみよう
7. 演習2. 好きな API と組み合わせて、オリジナルの LINE Bot を作成しよう
ヒント: API を利用する際は
HTTP
モジュールを利用します。
- 公開API一覧: public-apis
- API は他にもたくさんありますので、「気になるワード + API」で検索してみましょう
8. LINE Bot に Replicate を組み合わせる
8.1. 完成イメージ
8.1.1. シナリオ
8.1.2. LINE Bot
8.2. 事前準備
8.2.1. LINE
- オウム返しする Bot が作成されていること
8.2.2. Replicate
- API キーがコピーされてすぐ利用できる状態になっていること
8.3. LINE
モジュールの Download a Message Attachment
を設定する
8.3.1. 前提
- Make で操作
8.3.2. 操作イメージ
LINE
モジュールWatch Events
の右側にモジュールを追加する
LINE
モジュールWatch Events
と同じものを選ぶ
8.4. ImgBB
モジュールの Upload a Photo
を設定する
8.4.1. 前提
- Make で操作
8.4.2. 操作イメージ
LINE
モジュールDownload a Message Attachment
の右側にモジュールを追加する
8.5. HTTP
モジュール Make a request
を設定する
8.5.1. 前提
- Make で操作
8.5.2. 操作イメージ
右側の画面の URL: https://replicate.com/stability-ai/stable-video-diffusion?input=http
対応する項目をコピペする(不要なスペースに注意)
Headers > Item 1 > Value
はToken
を頭に付ける必要があるので注意
例:Token r8_*******************
input_image
を変更する
8.6. LINE
モジュール Send a Reply Message
を設定する
8.6.1. 前提
- Make で操作
8.6.2. 操作イメージ
8.7. 動作確認
生成された動画は Replicate のダッシュボードで確認できます
9. ミニハッカソン
9.1. テーマ:使って楽しいモデルを探して、オリジナルの AI x LINE Bot を作成しよう
Replicate ではたくさんのモデルが利用可能です。
使って楽しいモデルを探して、自分だけの AI LINE Bot を作りましょう。
最後に数名発表していただく予定です。
作業途中でも全然 OK です。
- どういうモデルを探したのか
- どういうことをやろうとしたのか
を教えて下さい。
10. (オプション)Replicate の推論結果を LINE Bot で表示する
こちらはハンズオンの説明対象外となります。
資料を見てチャレンジしましょう。
10.1. 完成イメージ
10.1.1. シナリオ
シナリオが 2 つになります。
10.2. スプレッドシートを作成する
10.2.1. 前提
- スプレッドシート で操作
10.2.2. 操作イメージ
- A1:
Replicate ID
- B1:
LINE ID
となっていれば OK
10.3. Google Sheets
モジュールの Add a Row
を設定する
10.3.1. 前提
- Make で操作
10.3.2. 操作イメージ
先ほど作成したスプレッドシートを選ぶ
10.4. 新しいシナリオを作成する
10.4.1. 前提
- Make で操作
10.4.2. 操作イメージ
10.5. Webhooks
モジュールの Custom webhook
を設定する
10.5.1. 前提
- 新しく作成したシナリオを変更
10.5.2. 操作イメージ
Webhook URL をコピーできていれば OK
10.6. HTTP
モジュールの Make a request
を変更する
10.6.1. 前提
- 最初に作ったシナリオを変更
10.6.2. 操作イメージ
webhook
とwebhook_events_filter
を追加する
{
"version": "3f0457e4619daac51203dedb472816fd4af51f3149fa7a9e0b5ffcf1b8172438",
"input": {
"cond_aug": 0.02,
"decoding_t": 7,
"input_image": "{{10.image.url}}",
"video_length": "14_frames_with_svd",
"sizing_strategy": "maintain_aspect_ratio",
"motion_bucket_id": 127,
"frames_per_second": 6
- }
+ },
+ "webhook": "{{上の手順でコピーした Webhook URL を貼り付ける}}",
+ "webhook_events_filter": ["completed"]
}
SCHEDULING
がON
になっていれば OK
10.7. Google Sheets
モジュールの Search Rows
を設定する
10.7.1. 前提
- 新しく作成したシナリオを変更
10.7.2. 操作イメージ
id
はWebhooks
のid
を選択
10.8. LINE
モジュールの Send a Push Message
を設定する
10.8.1. 前提
- 新しく作成したシナリオを変更
10.8.2. 操作イメージ
SCHEDULING
がON
になっていれば OK