Open5

Dify

dehio3dehio3

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提供
  • スケーラブルな処理基盤
dehio3dehio3

Private Deployment of DeepSeek + Dify: Build Your Own AI Assistant

https://docs.dify.ai/learn-more/use-cases/private-ai-deepseek-dify

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

https://ollama.com/library

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を設定する