【Slack】Difyを使ってNotionをナレッジとしたAIチャットBot(LLM)を作成してみた!

目次

このマニュアルについて

本ドキュメントは、Dockerなどの複雑なインフラ構築を行わず、マネージドサービス(SaaS)を組み合わせることで、エンタープライズ品質の社内AI Botを最速かつ低コストで構築するための完全ガイドです。

Phase 0:前提条件・準備 (30分)

1. 必要なアカウント一覧

  • Googleアカウント (Google AI Studio利用のため)
  • Dify Cloud アカウント (https://cloud.dify.ai/)
  • Slack Workspace (アプリインストール権限を持つ管理者アカウント)
  • Notion アカウント (ワークスペース管理者権限)

Phase 1:Google AI Studio APIキーの取得 (10分)

1. APIキーの取得手順

  1. ブラウザで Google AI Studio にアクセスし、Googleアカウントでログインします。
  2. 左側のメニューから “Get API key” をクリックします。
  3. “APIキーを作成” ボタンをクリックします。
  4. 必要情報を入力して “キーを作成” をクリックします(既存プロジェクトがある場合はそちらでも可)。
  5. 生成されたキー(AIzaSy... で始まる文字列)をコピーし、情報管理シートに記録します。

⚠️ セキュリティ警告

APIキーはパスワードと同様に重要です。GitHubなどの公開リポジトリにコミットしたり、第三者に共有したりしないでください。不正利用されると高額な請求が発生する可能性があります。

Phase 2:Notionの準備 (20分)

1. Integration作成手順

  1. Notionにログインした状態で My Integrations にアクセスします。
  2. “+ 新しいインテグレーション” をクリックします。
  3. 以下の通り入力して保存します
  • Name: Dify Knowledge Bot
  • Associated workspace: 対象のワークスペース
  • Type: 内部
  1. “内部インテグレーションシークレット” をコピーし、情報管理シートに記録します。

2. アクセス権の付与

  1. ナレッジベースとして使用したいNotionの親ページを開きます。
  2. 右上の “…” (メニュー)“Add connections” (コネクトを追加) をクリックします。
  3. 先ほど作成した Dify Knowledge Bot を検索して選択します。
  4. 確認ダイアログで “確認” をクリックします。
  5. ※ 親ページに権限を付与すると、子ページにも自動的に適用されます。

Phase 3:Dify Cloud環境構築 (30分)

1. アカウント作成とワークスペース設定

  1. Dify Cloud にアクセスし、アカウントを作成(GitHub/Google連携推奨)します。
  2. 初回ログイン時にワークスペースが自動作成されます。
  3. 右上のアイコン → SettingsBilling でプランを確認します。
    ※ 無料プラン(Sandbox)でもテスト可能ですが、実運用(API利用)には Professionalプラン ($59/月) へのアップグレードを推奨します。

2. Gemini APIの設定

  1. Dify画面右上のアイコン → 設置モデルプロバイダー をクリックします。
  2. モデル一覧から Google を探して Setup をクリックします。
  3. API Key 欄に、Phase 1で取得したGoogle AI Studioのキーを入力します。
  4. Save をクリックして保存します。
  5. gemini-2.0-flash モデルが利用可能になったことを確認します。

gemini-1.5-flash などだとうまくDifyと連携できないケースがあるようです。
2.0-flashだとうまくいきました。

Phase 4:Notionナレッジべースの作成 (40分)

1. ナレッジベースの作成

  1. Dify上部のメニューから ナレッジ を選択します。
  2. ナレッジベースを作成 ボタンをクリックします。
  3. Notionから同期 を選択し、Connect をクリックします。
  4. Phase 2で取得した Integration Token を入力して認証します。
  5. 同期可能なページ一覧が表示されるので、対象ページを選択して Next をクリックします。

2. インデックス設定 (重要)

回答精度を左右する重要な設定です。以下の通り設定してください。

  • Indexing Technique: High Quality
  • Embedding Model: text-embedding-3-small (OpenAI) または Difyデフォルト
  • Chunk Settings: Custom
  • Chunk Size: 500 tokens (短めに区切ることで精度向上)
  • Chunk Overlap: 50 tokens

Save & Process をクリックしてインデックス作成を開始します(完了まで数分かかります)。

3. 検索テスト

  1. 作成したナレッジベースをクリックして詳細画面に入ります。
  2. 左メニューの Search Test をクリックします。
  3. 実際にNotionにある内容について質問を入力し、適切なテキストチャンクがヒットするか確認します。

Phase 5:Dify チャットボットアプリ作成 (1時間)

1. アプリ作成

  1. 上部メニュー StudioCreate from Blank をクリックします。
  2. Chatbot を選択し、名前(例: 社内ナレッジBot)を入力して作成します。

2. モデルとコンテキスト設定

  1. Prompt Engineering 画面左上のモデル選択で gemini-2.0-flash を選択します。
  2. パラメータ設定で以下の通りに調整します。
  • Temperature: 0.3 (事実に基づく回答のため低めに)
  • Top P: 0.9
  • Max Token: 2048
  1. Context の「Add」をクリックし、Phase 4で作成したナレッジベースを追加します。

3. システムプロンプト設定

以下のプロンプトを「Pre-prompt」エリアに貼り付けます。

あなたは社内ナレッジに基づいて回答する優秀なアシスタントです。

【重要な前提】
- 必ず「Context」にある情報を最優先してください。
- Contextに関連情報がない場合は、正直に「社内ナレッジに情報が見当たりませんでした」と回答した後、インターネット上の一般的な情報を確認した上で、補足回答してください。

【回答ルール】
1. 結論から先に述べる(PREP法)。
2. 箇条書きや番号付きリストを積極的に活用して可読性を高める。(マークダウン記法)
3. 技術的なサポート内容には具体的な手順などわかりやすく記載する。
4. 専門用語には簡単な説明を添える。
4. 引用元が明確な場合は「📚 出典: [ページタイトル]」と明記する。
5. 推測による回答は避ける。

【トーン&マナー】
- 丁寧語(です・ます調)を使用。
- 親しみやすく、かつプロフェッショナルな態度。
Screenshot

4. API設定

  1. 右上の PublishUpdate をクリックして保存します。
  2. 左サイドメニューの API Access をクリックします。
  3. 右上の API Key をクリックし、Create New Secret Key でキーを発行します。
  4. API KeyAPI Server URL (例: https://api.dify.ai/v1) をメモしておきます。

Phase 6:Slack App作成 (30分)

1. Slack App作成

  1. Slack API: Your Apps にアクセスします。
  2. Create New AppFrom scratch を選択します。
  3. アプリ名(例: Knowledge Bot)とワークスペースを選択して作成します。

2. OAuth & Permissions設定

  1. 左メニュー OAuth & Permissions をクリックします。
  2. Scopes セクションの Bot Token Scopes に以下を追加します
  • app_mentions:read (メンションを検知)
  • channels:history (チャンネル履歴参照)
  • chat:write (メッセージを送信)
  • groups:history (プライベートチャンネル履歴参照)
  • im:history (DM履歴参照)
  • reactions:read (リアクションを検知)
  • users:read (ユーザー情報取得)
  1. ページ上部の Install to Workspace をクリックしてインストールします。
  2. Bot User OAuth Token (xoxb-...) を情報管理シートに記録します。

3. Basic Information (参考情報)

  1. 左メニュー Basic Information をクリックします。
  2. App Credentials セクションの Signing Secret を表示できます。

💡 slack-bot2 プラグイン版では不要

Signing Secret は、GASや独自サーバーで署名検証を行う場合に必要です。
slack-bot2 プラグインを使用する場合、Dify側で署名検証を行うため、Signing Secretの入力は不要です。
将来的に別の統合方法を試す場合に備えて、参考情報として残しています。

Phase 7:Dify Slack統合設定 (10分)

💡 コード不要・スレッド返信対応!

Dify Marketplace の公式Slackプラグインを使用することで、コードを一切書かずにスレッド返信対応のSlack Botを構築できます。

1. Dify Marketplaceからslack-bot2をインストール

  1. Dify Cloudにログインし、左メニュー Plugins または Extensions をクリックします。
  2. Browse Marketplace をクリックします。
  3. 検索ボックスに slack-bot2 と入力して検索。(こちらのリンクからアクセスも可能です)
  1. slack-bot2 (by takada-at) を見つけて Install ボタンをクリックします。
  2. インストールが完了するまで数秒待ちます。

slack-bot2 の特徴:
スレッド返信完全対応 (Reply in thread)
• リトライ制御機能 (Slackの再送を防止)
• エラーハンドリング機能
• 詳細なログ出力
• 設定が簡単で動作が安定している

2. Endpoint (エンドポイント) を作成

  1. インストールできたら、slack-bot2 をクリックして「エンドポイントの作成」画面に移動します。
  2. + ボタンをクリックし、Endpoint 作成画面で以下の設定項目を入力します
設定項目入力値説明
Endpoint Name社内ナレッジBot任意の識別名
Bot Tokenxoxb-xxxxx-xxxxxPhase 6で取得した Bot User OAuth Token
Allow Retry□ 無効 (推奨)Slackのリトライを無視する (デフォルト: false)
AppPhase 5で作成したアプリを選択App Selectorでアプリを選択
  1. Save または Create をクリックして保存します。
  2. 保存すると、POST Request URL (Webhook URL) が自動生成されます。

💡 生成されるURL形式の例:
https://xxxxxxxxxxx.ai-plugin.io/

  1. このURLをコピーして情報管理シートに記録します。

⚠️ 重要な注意点 (公式ドキュメント準拠)
• Bot Token の先頭が xoxb- で始まっていることを確認してください。
• 余分なスペースや改行が含まれていないことを確認してください。

Endpoint作成のポイント (公式仕様)
• 1つのプラグインで複数のEndpointを作成できます (チャンネルごとなど)
• 各Endpointは異なるDifyアプリに接続できます
• Endpoint名は後から変更可能です
App Selectorでアプリを選択すると、その時点でアプリ連携が完了します (追加作業不要)

3. Slack Event Subscriptions 設定

  1. Slack App設定画面 (https://api.slack.com/apps) に戻ります。
  2. 左メニューから Event Subscriptions をクリックします。
  3. 右上の Enable Events トグルを ON にします。
  4. Request URL 欄に、ステップ2でコピーした POST Request URL を貼り付けます。
  5. 貼り付けると自動的に検証が開始されます。数秒待つと:
    “Verified” (緑色のチェックマーク) が表示されれば成功!
  6. Subscribe to bot events セクションに以下のイベントを追加します
  • app_mention (app_mentions:read)
  • message.im (im:history)
  • reaction_added (reactions:read)

💡 イベントの選択について:
公式ドキュメントでは app_mention のみを使用しています。
DMに対応したい場合は message.im も追加してください (オプション)。

  1. ページ下部の Save Changes ボタンを必ずクリックしてください!
  2. “Your app’s configuration has changed” という警告が表示された場合:
    Reinstall your app リンクをクリックするか、
    左メニュー Install AppReinstall to Workspace をクリックします。

URL検証が成功したら:
• “Verified” の横に緑色のチェックマークが表示されます
• Event Subscriptions が正常に動作しています
• SlackからDify slack-bot2 プラグインへイベントが送信されるようになります

⚠️ URL検証が失敗する場合:

  1. POST Request URLが正しくコピーされているか確認 (余分なスペースなし)
  2. Dify Cloud → Plugins → slack-bot2 で Endpoint が正しく作成されているか確認
  3. Bot Token が正しく入力されているか確認
  4. Dify Cloud のプランが Professional ($59/月) であることを確認
  5. 数分待ってから再度 “Retry” ボタンをクリック

4. アプリ連携の確認

  1. Dify Cloud → Pluginsslack-bot2 で作成したEndpointを確認します。
  2. Endpoint詳細画面で「App」欄に正しいアプリ名が表示されていることを確認します。
  3. Phase 5で作成したアプリがPublished (公開済み)であることを確認します:
    Dify Studio → 社内ナレッジBot → 右上に「公開済み」バッジが表示されていればOK

⚠️ アプリが未公開の場合:
Dify Studio → 社内ナレッジBot → 右上の Publish ボタンをクリックして公開してください。
公開しないと、Pluginからアプリを呼び出せません。

5. 動作テスト (段階的確認)

ステップ1: Botをチャンネルに招待

  1. Slackで動作テスト用のチャンネルを開きます (例: #bot-test)
  2. チャンネルで以下のコマンドを実行します:
/invite @Knowledge Bot
  1. “Knowledge Bot がチャンネルに参加しました” と表示されればOKです。

ステップ2: メンションでテスト

  1. チャンネルでBotにメンションして質問します:
@Knowledge Bot テスト
  1. 期待される動作:
  • メッセージに 🤔 (考え中) のリアクションが付く
  • 元のメッセージのスレッド内に回答が投稿される
  • リアクションが ✅ (完了) に変わる

ステップ3: 実際の質問でテスト

  1. Notionに登録されている内容について質問します
@Knowledge Bot 経費精算の方法を教えてください
  1. 期待される動作
  • スレッド内に具体的な回答が投稿される

全て成功したら構築完了です! 🎉
• スレッド返信が動作している
• Notionのナレッジを参照して回答している
• 出典情報が表示されている
→ Phase 8の統合テストに進んでください!

⚠️ トラブルシューティング (よくある問題)

1. Botが反応しない場合:
• Event Subscriptions の URL が Verified になっているか確認
• Slack App を再インストール (Install App → Reinstall to Workspace)
• slack-bot2 の Endpoint URL が正しいか再確認

2. スレッド返信されず、チャンネルに直接投稿される場合:
• slack-bot2 の設定で “Reply in thread” が有効になっているか確認!
• 設定を変更したら Save をクリックして再度テスト

3. “回答できません” と表示される場合:
• Dify Chatbot が Publish されているか確認
• Gemini API Key が正しく設定されているか確認 (Dify Settings → Model Provider)
• Notionナレッジベースが同期されているか確認 (Dify Knowledge)

4. エラーメッセージが表示される場合:
• Dify Cloud → Plugins → slack-bot2 → Logs でエラーログを確認
• Slack App → Event Subscriptions → Recent Deliveries でリクエスト履歴を確認

slack-bot2 プラグイン版のメリット
• コード一切不要、設定だけで完結 (10分で完成!)
スレッド返信完全対応 🎉
• リトライ制御機能でSlackの重複送信を自動防止
• 詳細なエラーハンドリングとログ機能
• Difyが全ての処理を担当 (署名検証、セキュリティ含む)
• プラグインの自動アップデート対応
• デバッグ不要、動作が保証されている
• 日本人開発者による手厚いサポート

⚠️ 注意事項
• Dify Cloudの有料プラン (Professional: $59/月) が必要です
• 無料プラン (Sandbox) ではプラグインが使用できません
• カスタマイズは限定的 (プラグインの仕様に依存)

📝 slack-bot2 の詳細情報:
• プラグインページ: https://marketplace.dify.ai/plugins/takada-at/slack-bot2
• 開発者: takada-at
• バージョン: 最新版が自動適用されます
• サポート: Dify Community または GitHub Issues

Phase 8:統合テスト (30分)

1. 基本動作確認チェックリスト

  • SlackチャンネルにBotを招待する (/invite @Knowledge Bot)
  • Botにメンションして質問する(ナレッジにある内容) → 回答と出典が返ってくるか
  • BotにDMを送る → スレッドで返信が来るか

2. トラブルシューティングガイド

現象考えられる原因対処法
SlackでBotが無反応Event URLの未設定 / slack-bot2設定エラー1) Event Subscriptions の URL が Verified か確認
2) slack-bot2 の Logs を確認
3) Slack App を再インストール
“dispatch_failed” エラーEndpoint URL検証失敗1) slack-bot2 の Endpoint URL をコピー
2) Event Subscriptions で Retry をクリック
3) Bot Token を再確認 (※Signing Secretは不要)
スレッド返信されないslack-bot2のコード実装の問題slack-bot2 プラグインはスレッド返信がデフォルトで実装されています。返信されない場合は Endpoint を再作成してテストしてください
Difyからの回答が空またはエラーChatbot連携ミス / API Key間違い1) Dify Chatbot を Publish
2) slack-bot2 とアプリの連携を確認
3) Gemini API Key を再確認
「Authorization failed」エラーSLACK_BOT_TOKEN が間違っているPhase 6 で取得した Bot Token (xoxb-) を再入力
プラグインがインストールできない無料プラン (Sandbox) を使用Professional プラン ($59/月) にアップグレード必須
リトライエラー (重複回答)Slackのリトライ処理が発動Endpoint 作成画面でAllow Retry を無効 (false) に設定

💡 slack-bot2 のデバッグ方法

1. Dify側のログ確認:
  Dify Cloud → Plugins → slack-bot2 → Logs タブ
  → リクエスト履歴、エラー内容、レスポンス時間を確認

2. Slack側のログ確認:
  Slack App → Event Subscriptions → Recent Deliveries
  → 送信されたイベント、HTTPステータスコード、レスポンスを確認

3. よくあるログ出力例:
  ✅ “200 OK” – 正常動作
  ❌ “401 Unauthorized” – Bot Token が間違っている (※Signing Secretは不要)
  ❌ “404 Not Found” – Endpoint URL が間違っている
  ❌ “500 Internal Server Error” – Dify Chatbot または Gemini API のエラー

4. テスト送信:
  Slack App → Event Subscriptions → Retry ボタン
  → 最後に失敗したイベントを再送信してテスト可能

Phase 9:本番運用設定 (30分)

運用最適化チェックリスト

  • モニタリング: Dify Cloud → Plugins → slack-bot2 → Logs でエラーログを定期的に確認する。
  • Notion同期: Difyのナレッジ設定で「Auto Sync」スケジュールを設定し、Notionの更新が定期的に反映されるようにする。
  • プロンプト改善: ユーザーからの質問で「回答不能」だったものを分析し、DifyのシステムプロンプトやNotion側のドキュメントを修正する。
  • コスト管理: Dify Cloudの使用状況とGoogle AI Studio (Gemini API) の無料枠消費状況を月次でチェックする。

番外編:想定コストについて

💰 想定コスト内訳 (月額)

合計: 約 ¥8,500 / 月 (Dify Plugin版は追加コスト¥0!) 🎉

サービスプラン月額料金
Google AI Studio (Gemini)無料枠内¥0
Notion既存プラン¥0 (追加なし)
Slack既存プラン¥0 (追加なし)
Dify CloudProfessional$59 (≈¥8,500)
slack-bot2 プラグインDify料金に含む¥0 (追加なし)

slack-bot2 プラグイン版のコストメリット
月額¥8,500 (Dify Cloud Professional) のみで、以下が全て実現:
スレッド返信機能 完全対応 🎉
• リトライ制御 (重複回答防止)
• 詳細なログとエラーハンドリング
• コード不要、設定だけで完結
• プラグインはDify Cloudの料金に含まれており、追加課金は一切なし!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次