13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

運動不足のアナタ!“無料”の専属パーソナルトレーナーを紹介しますよ!(ChatGPT API× LINEBot)

Last updated at Posted at 2024-08-13

運動の習慣化にチャレンジ!!

こんにちは!!はっちゃんです!!
こちらの記事の通り、小売企業の本社スタッフとして働いています。
本社勤務になったら太っちゃいましたっていう人多いですよねー
私の自己紹介
  
そこで、デジタル初心者がの私が作成した、
LineBotのパーソナルトレーナーを紹介します!! 
その名も “Muscle Boost”
筋トレ初心者が億劫になりがちなトレーニングを
いかにして継続できるか」という点に注力して作成しました。
  
ポイントは、
・自宅でトレーニングできる“気軽さ”
・トレーニングしたい“時間に合わせたメニュー提案”
・毎日変わる“豊富なメニュー”でマンネリ化の防止
 です。
243E023B-F9CB-428F-B6CF-DE74E377990A.jpeg

ChatGPT使ったBot作成に決定!!

Muscle Boost 要件定義

私の求める機能要件は、
ユーザーの希望時間に合わせてメニュー提案をしてくれること
ランダムでメニュー提案をしてくれること の2つです。
  
その要件を満たせるのがChatGPTだと思い、
身近で使っているLINEと組み合わせればより便利になるのではないかと考えました。

“優しい女性トレーナー”がいい!!

どうやらChatGPTには人格の設定までできるらしい・・・
  
せっかく頑張るのだから、
トレーナーはゴリゴリ系の男性よりも女性の方がいいですよね!
さらに褒めてくれれば、テンションアップ!!明日も頑張ろうとなります!!
  
女性トレーナーがそばで優しく励ましてくれる、そんな夢のBot完成を目指しました!

Muscle Boost 完成形

a7ad486baf284abf510ecc293704df8a.gif

開発環境

  • Make
  • LINE Messasing API
  • ChatGPT API
  • LINE Official Account Manager

シナリオ

私が作成したシナリオはこちらです。
ユーザーの送信した言葉と同じ言葉を返してくれる「オウム返しのLineBot」を作成し、
その間にChatGPT APIのモジュールを連携させました。
image.png

  
そのChatGPTのモジュールに以下の内容でプロンプトを入力し、
“女性トレーナーが希望時間に合わせて、ランダムでメニュー提案”できるようにします。
image.png

作成手順

Ⅰ.ChatGPTの設定

ChatGPT APIを使用する為には、事前にAPIキーを取得し、
有料アカウントに登録する必要があります。
設定手順はこちら参照してください

有料アカウントに登録しないと、MakeでChatGPTのモジュールが使えません。

Ⅱ.ChatGPTとLINEBotの連携

本題の連携を行なっていきます。

LINE Watch Eventsの設定
LINE公式アカウントのメッセージの受け手を設定します。

image.png

OpenAI(ChatGPT、Whisper、DALL-E)の設定
次にChatGPTを使用するための設定になります。
まずはConnectionの設定をします。
image.png

次に下記の設定を行います。
Select Method
 Create a Chat Completion(GPT Models)を選択してください。
Model
 gpt-3.5-turboを選択してください。
81da9f902e4f87aeaf1b74986b2f3d0b.png

最後にプロンプトの設定を行います。
Messages▸Message1▸Role
 Systemを選択してください。
Message Content
 プロンプトを入力します。(以下、プロンプト入力イメージ)
80ead3862bf7850c66290e0b1fac6a07.png

Messages▸Message2▸Role
 Userを選択してください。
Message Content
 1.Events[ ]:Message.Textを選択してください。
Max Token
 0を入力してください。
d6291ebc82d0843a36d39162f65bb8d5.png

LINE Send a Reply Messageの設定
最後に公式アカウントが返す値を設定します。

・まずはAddWatch Events同様の設定を行います。
Reply Token
 1. Events[ ]: Reply Tokenを設定してください。
Message
 ◦Type
  Textを選択してください。
 ◦Text
 3. Choices[ ]: Textを設定してください。
image.png
以上で設定は完了です。

このままの設定だとLINEBot上でユーザーが言葉を選ばず送信できてしまう為、
意図した返答が来ない場合があります。
Set up a filterを追加し、
指定したの文字列のみ受け入れることができる設定にします。
(指定した文字列以外を送信すると返答は来ない)
image.png

リッチメニューの作成

デザインに詳しくない方でも、
LINE公式アカウントの機能を利用すれば、リッチメニューを簡単に作成する事ができます。

まず、LINE Official Account Managerの管理画面にログインし、
「ホーム」> 「メッセージアイテム」 > 「リッチメッセージ」 >「作成」
をクリックします。

その後はテンプレートが用意されているので、画像や文字などを自由に挿入するだけです。

LINE公式アカウントの機能でリッチメニューを作成すると、
テンプレートの枠数やサイズが固定されて変更はできません。

23C92225-9A44-4C41-A573-3C89324D7EB0.jpeg

記事の作成を終えて

要件定義に沿ったシナリオは完成させることができました。
プロンプトの内容によって、意図していた返答内容と異なる場合が発生し、
その修正作業に最も苦慮しました。

できなかったこと2点
・フィルターに設定した以外の文字列がユーザーから送信された時、
 Botから何かしらの返答をさせること(現状は返答なし)
・Data Stores, Data structuresを活用して会話ログを残すこと
先生方や先輩方に質問をして、この2点は解決していきます。

ハードなスケジュールの中で過酷を極めましたが、
新しいことにチャレンジできたことに対する達成感は凄まじいです!
初めてのQitta記事作成を通じ、記事作成のコツも理解できました。
この反省を生かし、さらにブラッシュアップをしていきたいです!

 

13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?