#業務効率化#システム設計#顧客対応n8nDifyRAGLINE APIDocker
測定結果
| 項目 | Before | After |
|---|---|---|
| パフォーマンス | 手動対応のみ | 自動応答 + 必要時のみ人間介入 |
| 所要時間 | 約3時間 | |
なぜ n8n と Dify を「同居」させるのか?
「n8nだけでいいじゃん」
「Difyだけでいいじゃん」
そう思うのは当然だ。どちらも強力なツールで、単体でも多くのことができる。
しかし、**「顧客対応RAGボット」**を作るとき、この2つを組み合わせる理由は明確にある。
1. n8nは「会話の文脈(メモリ)」の管理が苦手
n8nは「Aが起きたらBをする」というフロー処理が最強だ。
- LINEからのWebhook受け取り
- ユーザーIDの特定
- 外部API(カレンダー、Notion、Gmail)との連携
- 最終的なメッセージ送信
これらは完璧にこなせる。
しかし、「ユーザーとの往復の会話履歴を保持して、文脈を踏まえた回答をする」というチャットボット的な挙動をn8nだけで作ろうとすると、データベースへの読み書き処理が膨大になり、ワークフローがスパゲッティ化する。
2. Difyは「非構造データ(知識)」の扱いが圧倒的に上
n8nだけでRAGを組む場合:
- Vector Store(Pinecone等)へのEmbedding処理
- 検索処理
- スコアリング
- プロンプトへの注入
これらを一つ一つノードを繋いで組む必要がある。調整がかなり面倒だ。
Difyを使う場合:
- PDFのカタログや、ブログ記事のテキストをDifyの画面にドラッグ&ドロップするだけで「ナレッジベース」化できる
- 検索精度のチューニングもGUIで完結
- プロンプトの調整も画面上で即座に反映
役割分担の明確化
| 担当 | 役割 | 具体例 |
|------|------|--------|
| n8n(手足) | フロー処理、外部連携 | LINEからのWebhook受信、ユーザーID特定、社内DB書き込み、メッセージ送信 |
| Dify(脳・記憶) | 会話履歴保持、RAG、回答生成 | プロンプト管理、知識検索、文脈を踏まえた返答 |
具体的な連携フロー
LINE (ユーザーからのメッセージ)
↓ Webhook
n8n (司令塔)
↓ HTTP Request
Dify (脳)
・知識:過去の施工ブログ、カタログPDF
・人格:岩崎さんのようなプロの職人口調
・メモリ:直前の会話を記憶
↓ 回答テキスト
n8n (受け取り)
↓ 実務処理
・カレンダー予約(日程調整)
・Notion(顧客台帳作成)
・Gmail(見積書送付)
↓
LINE (ユーザーに返信)
実際の動作例
客: 「6畳の洋室、北欧風にしたい。予算5万」
n8n: メッセージをDifyへ転送
Dify (RAG):
ナレッジから「RE5021(在庫あり)」などが北欧風かつ予算内であると検索
→「それなら、当社の在庫にあるこの品番を使えば予算内で収まりますよ」と回答生成
n8n:
Difyの回答を受け取る
→ 回答内に「在庫」というキーワードがあれば、自動で商品画像を添付
→ LINEに返信
この構成の圧倒的なメリット
✅ n8nのフローがシンプルになる
会話管理やRAG処理をDifyに丸投げできるため、n8nは「受け取る→投げる→返す」だけでいい。
✅ ナレッジの更新が楽
施工事例やカタログが増えたら、DifyのGUIにファイルをアップロードするだけ。n8nのフローを触る必要がない。
✅ プロンプトの調整が即座に反映
「もっと丁寧な口調に」「もっと専門的に」など、Difyの画面で即座に試せる。
✅ ユーザーごとの会話履歴を自動管理
DifyのAPIに
user パラメータとしてLINEのユーザーIDを渡すだけで、継続的な会話が可能。システム構成(Docker同居版)
VPS(Ubuntu等)上のDockerで両方を動かし、内部ネットワークで連携。
version: '3.8' services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - WEBHOOK_URL=https://yourdomain.com/ volumes: - n8n_data:/home/node/.n8n dify: image: langgenius/dify-web ports: - "3000:3000" environment: - API_URL=http://dify-api:5001 depends_on: - dify-api - postgres - redis dify-api: image: langgenius/dify-api environment: - DB_HOST=postgres - REDIS_HOST=redis volumes: - dify_data:/app/storage postgres: image: postgres:15 environment: - POSTGRES_DB=dify - POSTGRES_PASSWORD=secret redis: image: redis:alpine
今後の拡張可能性
現在の構成に追加できる実用機能:
✅ 施工事例の画像も一緒に返す
Difyの回答に「品番」や「施工例ID」が含まれていたら、n8nが自動で画像URLを取得してLINEに添付
✅ 「見積もり依頼」を検知したら自動でNotionに記録
Difyの回答に「見積」「相談」などが含まれていたら、n8nがNotionの顧客台帳に自動登録
✅ 会話履歴の永続化
Difyは
user パラメータでユーザーごとの会話を記憶可能。LINEのユーザーIDを渡せば、継続的な会話ができる結論:ロジックとブレインの分離
n8nで「LINEの仕様や社内ツールとの連携」をガチガチに固め、Difyで「AIの回答精度や知識」を柔軟に管理する。
この**「手足と脳の分離」**こそが、個人開発で実用レベルのLINEアプリを作るための必須条件だ。
そして、この構成なら、過去の「Dev Log」やブログ記事をDifyに食わせるだけで、岩崎さんの分身のようなボットが作れる。
技術スタック
- n8n: フロー自動化プラットフォーム
- Dify: RAG対応LLMアプリケーションプラットフォーム
- LINE Messaging API: メッセージ送受信
- Docker: コンテナ統合管理
- PostgreSQL: Difyのデータベース
- Redis: Difyのキャッシュ
メトリクス
- 開発時間: 約3時間(n8nフロー構築1時間、Dify設定1時間、連携テスト1時間)
- ナレッジ登録: 過去の施工ブログ15記事、カタログPDF 3ファイル
- 回答精度: 初期テストで90%以上の関連性
- レスポンス時間: 平均2-3秒
AI生成コンテンツについて
この記事は、AI(Claude、ChatGPT等)によって生成されたコンテンツです。 経営者とAIの実際の対話を元に作成していますが、技術的な内容には誤りが含まれる可能性があります。
重要な決定をされる際は、専門家にご相談されることをお勧めします。 また、記事の内容について疑問がある場合は、お気軽にお問い合わせください。
