運動の習慣化にチャレンジ!!
こんにちは!!はっちゃんです!!
こちらの記事の通り、小売企業の本社スタッフとして働いています。
本社勤務になったら太っちゃいましたっていう人多いですよねー
私の自己紹介
そこで、デジタル初心者がの私が作成した、
LineBotのパーソナルトレーナーを紹介します!!
その名も “Muscle Boost”
筋トレ初心者が億劫になりがちなトレーニングを
「いかにして継続できるか」という点に注力して作成しました。
ポイントは、
・自宅でトレーニングできる“気軽さ”
・トレーニングしたい“時間に合わせたメニュー提案”
・毎日変わる“豊富なメニュー”でマンネリ化の防止 です。
ChatGPT使ったBot作成に決定!!
Muscle Boost 要件定義
私の求める機能要件は、
・ユーザーの希望時間に合わせてメニュー提案をしてくれること
・ランダムでメニュー提案をしてくれること の2つです。
その要件を満たせるのがChatGPTだと思い、
身近で使っているLINEと組み合わせればより便利になるのではないかと考えました。
“優しい女性トレーナー”がいい!!
どうやらChatGPTには人格の設定までできるらしい・・・
せっかく頑張るのだから、
トレーナーはゴリゴリ系の男性よりも女性の方がいいですよね!
さらに褒めてくれれば、テンションアップ!!明日も頑張ろうとなります!!
女性トレーナーがそばで優しく励ましてくれる、そんな夢のBot完成を目指しました!
Muscle Boost 完成形
開発環境
- Make
- LINE Messasing API
- ChatGPT API
- LINE Official Account Manager
シナリオ
私が作成したシナリオはこちらです。
ユーザーの送信した言葉と同じ言葉を返してくれる「オウム返しのLineBot」を作成し、
その間にChatGPT APIのモジュールを連携させました。
そのChatGPTのモジュールに以下の内容でプロンプトを入力し、
“女性トレーナーが希望時間に合わせて、ランダムでメニュー提案”できるようにします。
作成手順
Ⅰ.ChatGPTの設定
ChatGPT APIを使用する為には、事前にAPIキーを取得し、
有料アカウントに登録する必要があります。
設定手順はこちら参照してください
有料アカウントに登録しないと、MakeでChatGPTのモジュールが使えません。
Ⅱ.ChatGPTとLINEBotの連携
本題の連携を行なっていきます。
LINE Watch Events
の設定
LINE公式アカウントのメッセージの受け手を設定します。
OpenAI(ChatGPT、Whisper、DALL-E)
の設定
次にChatGPTを使用するための設定になります。
まずはConnectionの設定をします。
次に下記の設定を行います。
・Select Method
Create a Chat Completion(GPT Models)
を選択してください。
・Model
gpt-3.5-turbo
を選択してください。
最後にプロンプトの設定を行います。
・Messages▸Message1▸Role
System
を選択してください。
・Message Content
プロンプトを入力します。(以下、プロンプト入力イメージ)
・Messages▸Message2▸Role
User
を選択してください。
・Message Content
1.Events[
]:Message.Text
を選択してください。
・Max Token
0
を入力してください。
LINE Send a Reply Message
の設定
最後に公式アカウントが返す値を設定します。
・まずはAdd
でWatch Events
同様の設定を行います。
・Reply Token
1. Events[
]: Reply Token
を設定してください。
・Message
◦Type
Text
を選択してください。
◦Text
3. Choices[
]: Text
を設定してください。
以上で設定は完了です。
リッチメニューの作成
デザインに詳しくない方でも、
LINE公式アカウントの機能を利用すれば、リッチメニューを簡単に作成する事ができます。
まず、LINE Official Account Managerの管理画面にログインし、
「ホーム」> 「メッセージアイテム」 > 「リッチメッセージ」 >「作成」
をクリックします。
その後はテンプレートが用意されているので、画像や文字などを自由に挿入するだけです。
LINE公式アカウントの機能でリッチメニューを作成すると、
テンプレートの枠数やサイズが固定されて変更はできません。
記事の作成を終えて
要件定義に沿ったシナリオは完成させることができました。
プロンプトの内容によって、意図していた返答内容と異なる場合が発生し、
その修正作業に最も苦慮しました。
できなかったこと2点
・フィルターに設定した以外の文字列がユーザーから送信された時、
Botから何かしらの返答をさせること(現状は返答なし)
・Data Stores, Data structuresを活用して会話ログを残すこと
先生方や先輩方に質問をして、この2点は解決していきます。
ハードなスケジュールの中で過酷を極めましたが、
新しいことにチャレンジできたことに対する達成感は凄まじいです!
初めてのQitta記事作成を通じ、記事作成のコツも理解できました。
この反省を生かし、さらにブラッシュアップをしていきたいです!