Open5
Dify

docker compose構成図

Difyのコンポーネント構成と役割
必須コンポーネント
1. フロントエンド層
nginx*
- リバースプロキシとしての役割
- HTTPSの終端
- 静的ファイルの配信
- APIリクエストの振り分け
web*
- Difyの管理画面UI
- アプリケーション設定インターフェース
- プロンプト管理インターフェース
- データセット管理インターフェース
2. アプリケーション層
api*
- RESTful APIの提供
- ユーザー認証・認可
- プロンプト管理
- LLMとの対話処理
- データセット管理
worker*
- 非同期タスクの処理
- ファイルのインデックス作成
- 長時間実行タスクの処理
- バッチ処理の実行
3. データストア層
db* (PostgreSQL)
- ユーザーデータの永続化
- アプリケーション設定の保存
- プロンプトテンプレートの保存
- 会話履歴の保存
redis*
- セッション管理
- キャッシュストア
- タスクキューの管理
- レート制限の実装
4. セキュリティ層
ssrf_proxy*
- サーバーサイドリクエスト偽装(SSRF)対策
- 外部APIリクエストの制御
- セキュアな通信の確保
sandbox*
- コード実行環境の分離
- セキュアなコード評価
- プラグイン実行の制御
オプションコンポーネント
1. ベクトルストア(いずれか1つ必須)
weaviate(デフォルト)
- ベクトル検索の実装
- セマンティック検索機能の提供
- データセットのインデックス管理
その他の選択肢
- qdrant
- pgvector
- milvus-standalone
- elasticsearch
- それぞれ異なる特性を持つベクトルデータベース
- 用途や規模に応じて選択可能
2. SSL証明書管理
certbot
- SSL証明書の自動取得・更新
- HTTPSの設定自動化
- Let's Encryptとの連携
主な機能の流れ
1. 会話処理
Client -> NGINX -> API -> LLM -> API -> Client
2. データセット処理
File Upload -> API -> Worker -> Vector Store -> DB
3. 非同期タスク
API -> Redis Queue -> Worker -> DB/Vector Store
システムの主要機能
- LLMアプリケーションの構築と管理
- プロンプトエンジニアリング
- データセット管理とRAG(Retrieval-Augmented Generation)
- セキュアなAPI提供
- スケーラブルな処理基盤

Private Deployment of DeepSeek + Dify: Build Your Own AI Assistant
Setup Ollama
### install
brew install ollama
### start ollama
brew services start ollama
### install model
ollama pull deepseek-r1:7b
ollama list
### start
ollama run deepseek-r1:7b
Docker コンテナから ホストの Ollama に接続 できるようにする
.env
に以下を追加
OLLAMA_BASE_URL=http://host.docker.internal:11434
### restart
docker restart docker-api-1
### test
docker exec -it docker-api-1 curl http://host.docker.internal:11434/api/tags
モデルプロバイダー設定画面でのBase URLに http://host.docker.internal:11434
を設定する

ollama で Hugging Face 上のモデルを利用する
ollama pull hf.co/cyberagent/DeepSeek-R1-Distill-Qwen-32B-Japanese

PCのAI性能測定
brew install --cask geekbench-ai