🧩
Dify概要・アプリ種別・アーキテクチャ
Difyの全体像・3種類のアプリケーション・コアコンポーネントの関係を理解する入門ガイド。
Dify とは
Dify は LLMアプリを視覚的に構築・運用するためのOSSプラットフォーム。バックエンドのプロンプト管理・RAGパイプライン・エージェント実行・観測機能をすべてUIから操作できる。
コードを書かずに LLM アプリを本番運用できる、というのが Dify の核心的な価値。
"LLM アプリの GitHub" を自称しており、OSS として自己ホスト可能。
3種類のアプリケーション種別
┌──────────────────────────────────────────────────────────────┐
│ Dify アプリ種別 │
├───────────────┬──────────────────────┬───────────────────────┤
│ Chatbot │ Workflow │ Chatflow │
│(会話型) │(単発実行型) │(会話×ワークフロー) │
├───────────────┼──────────────────────┼───────────────────────┤
│ユーザーと │ 1回の起動で完結。 │ 会話ターンごとに │
│自然言語で │ バッチ処理・ │ ワークフローが │
│対話する │ データ変換に最適 │ 実行される │
├───────────────┼──────────────────────┼───────────────────────┤
│ Agent モード │ ノードベースの │ 会話変数で文脈を │
│で自律推論も │ 決定論的フロー │ ターン間で保持 │
│可能 │ │ │
└───────────────┴──────────────────────┴───────────────────────┘
選び方の指針
| 要件 | 推奨種別 |
|---|---|
| ユーザーとの自由な対話 | Chatbot |
| 入力→処理→出力の決まった自動化 | Workflow |
| 文脈を保ちながら複雑な会話を処理 | Chatflow |
| バッチデータ処理・ETL | Workflow |
コアコンポーネントの全体図
┌─────────────────────────────────────────────────────────────────┐
│ Dify Platform │
│ │
│ ┌──────────────┐ ┌───────────────┐ ┌──────────────────┐ │
│ │ Prompt IDE │ │ Workflow │ │ Knowledge Base │ │
│ │(プロンプト │ │ Builder │ │ (RAGパイプライン)│ │
│ │ 設計・テスト)│ │(ノード配置) │ │ │ │
│ └──────┬───────┘ └──────┬────────┘ └────────┬─────────┘ │
│ │ │ │ │
│ ┌──────▼───────────────────▼──────────────────────▼──────────┐ │
│ │ Application Runtime │ │
│ │ │ │
│ │ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Model │ │ Tools │ │ Variables│ │ Memory │ │ │
│ │ │ Provider │ │ Plugins │ │ System │ │ Manager │ │ │
│ │ └──────────┘ └───────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Observability & API │ │
│ │ Logs / Traces / Annotations / REST API / Webhook │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
セルフホスト構成(Docker Compose)
# 主要コンテナ構成
services:
api: # FastAPI バックエンド
worker: # Celery 非同期ワーカー
web: # Next.js フロントエンド
db: # PostgreSQL(アプリデータ)
redis: # キャッシュ・キュー
weaviate: # ベクトルDB(デフォルト)
nginx: # リバースプロキシ
sandbox: # Codeノード用隔離実行環境
ssrf_proxy: # SSRF防止プロキシ
# 最小スペック: 2コア CPU / 4GB RAM
Dify vs 他ツールの位置付け
LangChain : コードライブラリ。柔軟だが開発者専用
LlamaIndex : RAG特化のフレームワーク
Flowise : ノーコード。Difyより機能が少ない
Dify : 開発者 + ビジネスユーザーが両方使える
視覚的UI + API両対応 + 自己ホスト可能
このシリーズで学べること
| ドキュメント | 内容 |
|---|---|
| ワークフロー vs チャットフロー | 実行モデルの違い |
| ノード一覧と制御フロー | ビルディングブロック |
| ナレッジベース・RAG | 文書検索の仕組み |
| モデルプロバイダー統合 | LLM接続設定 |
| エージェント機能 | 自律推論の実装 |
| ツール・プラグイン | 外部連携 |
| 変数システム | データの流れ |
| API・デプロイ | 本番公開 |
| 可観測性・デバッグ | 品質管理 |
実践ユースケース
- 1. 🧩Dify概要・アプリ種別・アーキテクチャ
- 2. 🔀ワークフロー vs チャットフロー
- 3. ⚙️ノード一覧と制御フロー(並列・イテレーション)
- 4. 📚ナレッジベース・RAGパイプライン
- 5. 🤖モデルプロバイダー統合(OpenAI・Anthropic・OSS)
- 6. 🤖エージェント機能(自律推論・ReAct)
- 7. 🔧ツール・プラグインエコシステム
- 8. 📊変数システムとデータフロー
- 9. 🚀API・公開・デプロイオプション
- 10. 🔍可観測性・デバッグ・評価(LangSmith等)
出典: Dify公式ドキュメント https://docs.dify.ai