
Dify入門:ノーコードでLLMアプリを開発できるオープンソースプラットフォーム
ChatGPTやClaudeを組み込んだアプリをノーコードで構築。Difyの導入からRAG、エージェント、ワークフロー、API公開までの全工程を解説します。
Difyとは
Difyは、LLM(大規模言語モデル)を活用したアプリケーションをノーコードで構築できるオープンソースプラットフォームです。
ChatGPT、Claude、Geminiなど複数のLLMに対応し、チャットボット、RAGアプリ、AIエージェント、ワークフロー自動化をGUIで開発できます。
日本でも企業導入が急速に進んでおり、2025年以降最も注目されているLLMアプリ開発基盤の一つです。
Difyでできること
| アプリタイプ | 説明 | |-------------|------| | チャットボット | カスタマーサポート、社内FAQ | | テキスト生成 | 記事作成、メール生成、翻訳 | | RAGアプリ | 社内ドキュメントQ&A | | AIエージェント | ツール呼び出し付き自律AI | | ワークフロー | 複数ステップのAI処理パイプライン |
始め方
クラウド版(最速)
Difyの公式クラウド版にアクセスし、アカウントを作成するだけです。無料プランで200回/日のメッセージが利用できます。
セルフホスティング(Docker)
オープンソース版をDockerで自前サーバーに構築できます。
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
http://localhost/install にアクセスして初期設定を完了します。
セルフホスティングの利点:
- データが外部に出ない(セキュリティ要件の厳しい企業向け)
- 無制限利用(API呼び出しコストのみ)
- カスタマイズ自由
最初のチャットボットを作る
1. アプリ作成
ダッシュボードで「アプリを作成」→「チャットボット」を選択。
2. プロンプト設定
システムプロンプトを記述します。
あなたはWebデザインの専門家です。
ユーザーからのUI/UXに関する質問に、具体的な実装例を交えて回答してください。
Tailwind CSSのクラス名を使ったコード例も提示してください。
回答は日本語で行ってください。
3. モデル選択
使用するLLMを選択します。
- GPT-4o:バランスの良い性能
- Claude 3.5 Sonnet:長文理解と正確性
- Gemini 1.5 Pro:大量のコンテキスト処理
各モデルのAPIキーを事前に設定しておく必要があります(Settings → Model Provider)。
4. テスト・公開
プレビューでテストし、問題なければ「公開」。共有URLやiframe埋め込みコードが発行されます。
RAG(検索拡張生成)アプリ
DifyのRAG機能は、自社ドキュメントをAIに読み込ませてQ&Aアプリを作る機能です。
1. ナレッジベースの作成
「ナレッジ」→「作成」からドキュメントをアップロードします。
対応フォーマット:
- PDF、Word、Excel
- Markdown、テキスト
- HTML、CSV
- Notion連携
2. チャンク設定
ドキュメントを検索しやすい単位(チャンク)に分割します。
チャンクサイズ:500トークン
オーバーラップ:50トークン
区切り文字:\n\n(段落区切り)
3. アプリとの接続
チャットボットの設定画面で「コンテキスト」→ 作成したナレッジベースを選択。
ユーザーの質問に対して、関連するドキュメントを検索し、その内容に基づいてAIが回答します。
ユーザー:「有給休暇の申請方法は?」
→ AIが社内規定PDFから該当部分を検索
→ 「有給休暇は申請フォームから3日前までに...」と回答
AIエージェント
Difyのエージェント機能は、AIに外部ツールを使わせる仕組みです。
組み込みツール
- Web検索:最新情報の取得
- 天気情報:天気予報の参照
- 計算:数学的な計算
- Wikipedia:百科事典の参照
カスタムツール
APIの仕様を定義することで、自社のAPIをAIエージェントのツールとして使えます。
# OpenAPI仕様でツールを定義
openapi: 3.0.0
paths:
/api/products:
get:
summary: 商品一覧を取得
parameters:
- name: category
in: query
schema:
type: string
これにより、AIが自然言語で「キーボードカテゴリの商品を見せて」と言われたときに、APIを自動的に呼び出して結果を返します。
ワークフロー
ワークフローは、複数のAI処理を順番に実行するパイプラインです。
例:記事自動生成ワークフロー
入力:テーマ「Next.js 15の新機能」
↓
① Web検索:最新情報を収集
↓
② LLM:記事の構成案を作成
↓
③ LLM:構成案に基づいて本文を執筆
↓
④ LLM:SEOメタデータを生成
↓
出力:完成した記事 + メタデータ
これをGUI上でノードを繋げるだけで構築できます。
ノードの種類
| ノード | 用途 | |--------|------| | 開始 | 入力パラメータの定義 | | LLM | テキスト生成 | | ナレッジ検索 | RAGの実行 | | コード | Python / JavaScriptの実行 | | HTTPリクエスト | 外部API呼び出し | | 条件分岐 | if/else分岐 | | 変数代入 | 変数の操作 | | 終了 | 出力の定義 |
API連携
Difyで作成したアプリは、APIとして外部から呼び出せます。
チャットAPI
curl -X POST 'https://api.dify.ai/v1/chat-messages' \
-H 'Authorization: Bearer {api_key}' \
-H 'Content-Type: application/json' \
-d '{
"inputs": {},
"query": "Tailwind CSSでカードコンポーネントを作る方法は?",
"response_mode": "streaming",
"user": "user-123"
}'
Next.jsアプリへの組み込み
// Difyのチャットボットをフロントエンドに統合
const response = await fetch('https://api.dify.ai/v1/chat-messages', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.DIFY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
inputs: {},
query: userMessage,
response_mode: 'blocking',
user: userId,
}),
})
const data = await response.json()
// data.answer にAIの回答が入る
料金プラン
クラウド版
| プラン | 月額 | メッセージ | |--------|------|-----------| | Sandbox | $0 | 200回/日 | | Professional | $59 | 5,000回/月 | | Team | $159 | 10,000回/月 |
※ LLMのAPI料金は別途
セルフホスティング
- 本体は無料(オープンソース)
- LLMのAPI料金のみ発生
- サーバー費用は自己負担
実践Tips
1. プロンプトテンプレートの活用
Difyにはプロンプトテンプレート機能があります。変数を埋め込むことで汎用的なプロンプトを作れます。
以下の{language}のコードをレビューしてください。
重大なバグ、セキュリティリスク、パフォーマンス改善点を指摘してください。
コード:
{code}
2. 会話変数
チャットの会話中に変数を蓄積し、後のステップで参照できます。問診型チャットボットや段階的な情報収集に便利です。
3. ログとモニタリング
「ログ」タブで全ての会話履歴を確認できます。ユーザーの質問傾向を分析し、プロンプトやナレッジベースの改善に活かしましょう。
まとめ
Difyは、LLMアプリ開発を民主化するプラットフォームです。
- ノーコードでチャットボット、RAG、エージェントを構築
- 複数LLM対応:GPT、Claude、Geminiを簡単に切り替え
- RAG:社内ドキュメントQ&Aを簡単構築
- ワークフロー:複雑なAI処理パイプラインをGUIで設計
- API公開:作ったアプリをAPIとして外部連携
- オープンソース:セルフホスティングでデータの安全性を確保
プログラミングなしでAIアプリを作りたい方にも、開発者がプロトタイプを高速構築したい場合にも、Difyは強力な選択肢です。
次に読む
役に立ったら、関連記事とカテゴリ一覧もチェックしてください。


