📠

Dify Cloud版で簡単LINEボットを作成する

に公開

はじめに

この記事は Serverless Meetup #05 の補足記事ですが、Serverless Meetup #05に参加していない方も試すことができます。

https://serverless.connpass.com/event/358810/

Serverless Meetup #05 では、DifyのOSS版をEC2にデプロイしてLINEボットを作成しました。
演習の中で間違ってDify Cloud版を利用されている方もいましたが、LINEボットを作るだけならDify Cloud版でも問題ありません。この記事ではDify Cloud版を使ってLINEボットを作る手順について説明します。

基本的には下記の @specialman9999 さんの記事準拠ですが、RAGをDify Cloudで作成することになります。

https://qiita.com/specialman9999/items/2ffbd559a53892254368

Dify Cloud版を使ってRAGを作成する

https://dify.ai/

Dify Cloud版の登録はここでは説明しません。サインアップして利用可能な状態にしておいてください。

ナレッジベースの作成

手順
  1. 上部メニューの ナレッジ より、ナレッジベースの一覧画面に入り、「ナレッジベースの作成」を選択します。

  1. ここからmarkdownをダウンロードします。

https://github.com/specialman9999/dify_linebot/blob/main/osakacircle_deepinfo.md

  1. そのファイルをアップロードします。

  1. 次の画面で、チャンク識別子を ### にします。ほかは設定不要です。
  1. 「ドキュメントに移動」で、ステータスが「利用可能」になったのを確認して次のステップに進みます。

ワークフローの作成

手順
  1. 上部メニューの スタジオ から、一覧画面を開き、「アプリを作成する」「最初から作成」を選択します。

  1. 「チャットフロー」を選択して、適当なタイトルをつけます

  2. でてきたチャットフローで、「開始」と「LLM」の間に「知識検索」ブロックを追加します。

  1. 知識検索ブロックの設定で、「ナレッジベース」で先ほど作成したナレッジを指定します。(「+」ボタンから追加できます。

  1. LLMブロックの設定で、「コンテキスト」に「知識検索」の「result」を設定します。また、「SYSTEM」プロンプトに、下記のプロンプトを設定します。
あなたは親切なアシスタントです。 以下の<context></context> XMLタグ内の情報を、
あなたの知識として使用してください。

<context>
{{#context#}}
</context> 

ユーザーへの回答時:
- わからない場合は、わからないと答えてください。
- ユーザーの質問の言語に合わせて回答してください。

ここまでできたら、テストしてみましょう。「プレビュー」で、Botと対話します。

大阪城に近い駅はどこですか?

よさそうですね。知識を元に回答すると、知識へのリファレンスがついてきます。

APIの公開

手順
  1. プレビューで動くことが確認できたら、「公開する」でワークフローを公開します。

  2. 「APIリファレンス」を開きます。

  1. 右上の「APIキー」から、APIキーのダイアログを開きます。

  1. 「新しいシークレットキー」ボタンを押して、APIシークレットキーを生成します。この情報をメモします。

以上でDify側の準備は完了です。

LINEボットの作成

https://qiita.com/specialman9999/items/2ffbd559a53892254368

こちらの手順の「LINE公式アカウントの作成」から進めてください。
スプレッドシートにDifyの情報を登録する際、下記の情報を登録します。

おわりに

こんな感じで、非常に簡単にLINE+DifyのBotを作成することができます。今回message-id等の引き回しはないので会話にはならないのですが、LINEのカスタムメニューとDifyの組み合わせで面白いワークショップだったのではないかと思います。

Discussion