本記事は、 Serverless Meetup Osaka #05 の後半、LINE連携パートにおける記事です
DifyのAWSデプロイ
TiDB Serverlessによるベクター検索基礎・Difyへの組み込み
ここからはLINE公式アカウントを作成し、LINEのMessaging APIとDifyを連携させ、
RAG × LINEで環状線観光案内Bot
を作成してきます。
Difyへ今回利用する環状線ディープ情報をRAGとして追加
普通の情報だと、LLMが回答するので、なかなかヒットしない情報をRAGで追加します。
RAGの追加
まずは、ナレッジに追加するデータをこちらからダウンロードします。
大阪環状線19駅 ディープ情報まとめ
次にDifyにアクセスします。
EC2に表示されている、パブリックDNSにそのままアクセスするとDifyが表示されません。
https://ec2-***-***-・・・・
となっているところを
http://ec2-***-***-・・・・
と、https から http に変更してください
次にナレッジタブを選択し、ナレッジベースを作成を選択します。
そして、ダウンロードしたファイル(osakacircle_deepinfo.md)をアップロードします。
➀のテキストファイルからインポートを選択
⓶のエリアにosakacircle_deepinfo.mdをドラック&ドロップでアップロード
次へを選択します。
チャンク設定を行います
➀チャンク識別子を ## にしてください (ダウンロードしたデータが ## で区切っているため)
⓶埋め込みモデルを【amazon.titan-embed-text-v2:0】に変更してください。(初期値でないことが多いので要確認)
⓷Rerank モデルを【amazon.rerank-v1:0】
以上を設定しましたら、保存して処理を押してください。
【埋め込みが完了しました】と表示され、アップロードしたファイルの横に緑のチェックマークが入っていたら成功です。
Difyのスタジオに戻り、作成中のアプリを選択します。
そして、Knowledge Retrievalを選択して
➀現在設定されている、ナレッジベースを削除して、先ほど作成したナレッジを選択
⓶公開を選択し、更新を公開を選択します。
以上で、RAGの設定は完了となります。
LINE公式アカウントの作成
2024/9/4よりLINE developersコンソールからLINE公式アカウントの作成ができなくなりました、
参考:2024年9月4日をもってLINE DevelopersコンソールからMessaging APIチャネルを直接作成することができなくなります
一旦、LINEオフィシャルアカウントマネージャーにてアカウントを作成後、LINEdevelopersにて作業することとなっております。
LINEオフィシャルアカウントマネージャーでの作業
LINE公式アカウントの作成
こちらからオフィシャルアカウントマネージャーにログインをしてください。
全く初めての方は、下記の公式サイトをご参考にビジネスIDを作成してください
https://www.lycbiz.com/jp/manual/OfficialAccountManager/new_account/?list=7171
2025/6/25よりLINE公式アカウントの作成には、ビジネスマネージャーとの連携が必須となりました。
ビジネスマネージャーの組織を作成を選択して、組織名などの入力、もしくは
ビジネスマネージャーをの組織を選び、組織を選択してください。
アカウントが作成されましたら【LINE Official Account Managerへ】を押して移動してください。
ログインできましたら、右上の設定ボタンを押します
左のリストに表示された【MessagingAPI】を押し、MessagingAPIを利用すると押します。
するとプロバイダーを選択と出てくるので、新しく作成するか、既存のものを選択します。
(初めてでわからない場合は、【プロトタイプ】の様な感じで作成して大丈夫です)
プライバシーポリシーと利用規約が記載してください。
(通知のアカウントだけであれば、空欄で大丈夫です。)
その後設定完了画面がでてきます。こちらで、オフィシャルアカウントマネージャーでの設定は終わりですので、LINE Developersに移動します。
LINE developersでの作業
チャネルアクセストークンの取得
LINE Developersに行ったら、コンソールに入ります。
LINE Developersでの作業
ログインをしたら、先ほど作成したものが表示されていると思いますので、そちらへ移動してください。
その画面の一番したの、チャネルアクセストークンで、発行ボタンをおして、チャネルアクセストークンを発行して、コピーしてください。
チャネルアクセストークンの先頭の文字が英数字以外(+やー等)の場合、このプログラムがうまく動かないことがるので、その際は、再発行をおしえて、先頭が英数字のものになるようにしてください。
スプレッドシートとの連携
こちらのスプレッドシートをひらいていただき、マイドライブに保存してください。
環境値設定
LINE developersでコピーした、チャネルアクセストークンをsettingシートのセルC2に張り付けます。
次に、AWS上に作製しましたDifyにアクセス。
左にある、
➀APIアクセスメニューを開き
⓶APIサーバーのアドレスのコピー
⓷APIキーを発行
してください。
上記の⓶のAPIサーバーのアドレスの後ろに /chat-messagesを追記し
スプレッドシートのC5セルに記載してください。
例 http://ec2-**-***-***-***.us-west-2.compute.amazonaws.com/v1/chat-messages
⓷で発行した、APIキーは、セルC4にはりつけてください
以上で、環境設定は完了となります。
GASのデプロイ
続いて、GASとLINE MessagingAPIとを連携していく作業を行います。
拡張機能⇒AppsScriptをおしてGAS(GoogleAppsScropt)の画面を表示します。
次のユーザーとして実行で、自分を選択
アクセスできるユーザーを全員にします。
ここで、【BACK TO SAFETY】や戻るを選択すると戻ってしまいます。
(新しいプログラムなので大丈夫??という確認です。今回のものは安全なものなので大丈夫です。)
外部と通信しますかという確認がでますので【Allow】許可してください。
するとデプロイ(プログラムが出来上がる)されて、画面がでますので【ウェブアプリ】のアドレスをコピーしてください
LINE developersでのwebhook設定
先ほどのGASのアドレスがLINE APIからのエンドポイントとなるため
その設定を行います。
LINE developersのMessaging API設定のタブからWebhook設定にいき、WebhookURLに先ほどのGASのアドレスを貼り付け更新を押します。
検証ボタンをおしても、GASの場合、成功と表示されないので、エラーがでましてもそのまま進んでください。
webhookの再送にチェックをいれるとGASの場合、連続して再送されることがあるためチェックを入れずにお願いします。
また、LINEオフィシャルアカウントマネージャーで、応答メッセージの設定をOFFにしてください
ONのままの場合、Difyの回答と、LINEオフィシャルアカウントマネージャーでデフォルトで設定されているメッセージの両方が返答されてしまいます。
リッチメニューの設定
次にリッチメニューの設定を、LINEのAPIで行います。
通常のLINEオフィシャルアカウントマネージャーからリッチメニューの設定を行った場合、設定できるタップ領域は6か所となっております。
LINEのAPIにて設定することにより、タップ領域が20個まで設定でき、タブ切り替えなど行えるようになります。
先ほどのスプレッドシートのGASにある
richmenusetを実行してください。
こちらを実行すると環状線の駅のリッチメニューがセットされます。
完成!試してみましょう!
作成したLINE公式アカウントを友達追加してリッチメニューをタップしてみましょう!
駅名をタップすると駅名について、問い合わせを行います。
すると、Dify上にアップしたRAGを参照した回答が返ってきます。
以上で、完成となります!!
RAGのデータやリッチメニューのデータを変えて、いろいろなLINEbotを作成してみてください!!