Difyとは
カスタムAIアシスタントを構築・展開するためのオープンソースのLLMアプリケーション開発プラットフォームです。コミュニティ版(OSS)は、以下の主要な機能を提供します。
- プロンプトエンジニアリングとLLMの統合管理
- データセットの作成と管理
- 会話型アプリケーションの構築
- APIを通じたアプリケーション統合
コミュニティ版は、セルフホスティングで運用可能で、Docker Composeを使用して簡単にデプロイできます。商用版と比べて一部機能は制限(注意点に記載しています)されていますが、基本的なAIアプリケーション開発に必要な機能は網羅されています。
https://github.com/langgenius/dify/blob/main/README_JA.md
インストール
Difyをインストールする前に、構築環境が以下の要件を満たしていることを確認してください。
- Docker Engineのインストール(バージョン20.10.0以上推奨)
- Docker Composeのインストール(バージョン2.0.0以上推奨)
- 最小システム要件 CPU 2コア、メモリ4GB、ストレージ20GB以上
- ポート3000(Webコンソール用)と3000(API用)が利用可能なこと
またLLMを利用するために、以下のいずれかのAPIキーを用意する必要があります。
- OpenAI API キー
- Anthropic API キー
- Azure OpenAI API キー
インストール手順
以下の手順でDifyをインストールします。
1. Gitリポジトリのクローン
git clone https://github.com/langgenius/dify.git
cd dify2. 環境設定ファイルの準備
cd docker
cp .env.example .env3. .envファイルの編集以下の項目を必要に応じて変更してください。
POSTGRES_PASSWORD:PostgreSQLのパスワードREDIS_PASSWORD:RedisのパスワードCOOKIE_SECRET:セッション用の秘密鍵CONSOLE_API_URL:APIのベースURLCONSOLE_WEB_URL:WebアプリのベースURL
4. Dockerコンテナの起動
docker compose up -d5. 初期設定の実行ブラウザで http://localhost:3000 にアクセスし、以下の初期設定を行います。
- 管理者アカウントの作成
- ワークスペース名の設定
- LLMプロバイダー(OpenAI等)の設定
https://docs.dify.ai/ja-jp/getting-started/install-self-hosted/docker-compose
初期設定
初期設定では以下の手順で基本的な設定を行います。
- 管理者アカウントの設定
- メールアドレスとパスワードを設定
- 管理者名を入力
- ワークスペースの設定
- ワークスペース名を入力
- 必要に応じてワークスペースの説明を追加
- LLMプロバイダーの設定
- 使用するLLMプロバイダー(OpenAI、Anthropic、Azure OpenAI)を選択
- APIキーを入力
- 必要に応じてモデルの設定を調整
- セキュリティ設定
- アクセス制限の設定
- APIキーの発行(必要な場合)
これらの設定は後からダッシュボードで変更することも可能です。特にLLMの設定は、使用状況に応じて適宜調整することをお勧めします。
💡 ただし、ワークスペースは設定後にGUIで変更することはできませんのでご注意ください
バージョンアップ
Difyは頻繁に更新されているようです。私の環境では、公式ドキュメントを参考に、以下の手順でバージョンアップしています。
1. カスタマイズしたdocker-compose YAMLファイルのバックアップ(任意)
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak2. メインブランチから最新のコードを取得
git checkout main
git pull origin main3. サービスの停止(dockerディレクトリで実行)
sudo docker compose down4. データのバックアップ(念の為)
tar -cvf volumes-$(date +%s).tgz volumes5. サービスのアップグレード
sudo docker compose up -dコミュニティ版の注意点
- GoogleやGithubでのログインは未対応
- SSOは今後対応予定
- ワークスペースはインストール時に設定する1つのみ
