DifyはオープンソースのLLMアプリ開発プラットフォームです。その直感的なインターフェースは、AIワークフロー、RAGパイプライン、エージェント機能、モデル管理、可観測性機能などを組み合わせており、プロトタイプから本番環境への移行を迅速に行うことができます。
機能
- ワークフロー:視覚的なキャンバス上で強力なAIワークフローを構築し、テストします。以下のすべての機能およびそれ以上を活用します。
- 包括的なモデルサポート:数十の推論プロバイダーおよび自己ホスト型ソリューションから、数百の専有/オープンソースLLMとシームレスに統合されており、GPT、Mistral、Llama3、そしてOpenAI API互換のモデルをすべてカバーしています。サポートされているモデルプロバイダーの完全なリストはモデルプロバイダーセクションで見つけることができます。
- プロンプトIDE:プロンプトの作成、モデルの性能比較、そしてチャットベースのアプリに音声合成などの追加機能を加えるための直感的なインターフェースです。
- RAGパイプライン:ドキュメントの取り込みから検索までをカバーする広範なRAG機能を備えており、PDF、PPT、およびその他の一般的なドキュメント形式からのテキスト抽出をサポートします。
- エージェント機能:LLM関数呼び出しまたはReActに基づいてエージェントを定義し、エージェントにプリビルドまたはカスタムツールを追加できます。Difyは、Google検索、DELL·E、Stable Diffusion、WolframAlphaなど、AIエージェント向けに50以上の組み込みツールを提供しています。
- LLMOps:アプリケーションのログと性能を時間の経過とともに監視し、分析します。プロダクションデータと注釈に基づいてプロンプト、データセット、モデルを継続的に改善することができます。
- バックエンド・アズ・ア・サービス:Difyのすべての製品には対応するAPIが付属しており、Difyをビジネスロジックに簡単に統合できます。
デプロイ
Difyをデプロイするには、右上の「デプロイ」ボタンをクリックし、必要なドメイン名を入力してください。デプロイ後、https://<your-domain>.zeabur.appでDifyアプリにアクセスできます。
アプリの構造
- Redis、PostgreSQL、MINIO、Weaviateがデータストレージとキャッシングに使用されます。
api、worker、worker-beat、web、sandboxはDifyのマイクロサービスです。
plugin-daemonはサードパーティプラグインの実行とライフサイクルを管理します。
nginxはDifyのゲートウェイです。マイクロサービスを単一のホストに統合します。言い換えれば、それがDifyアプリのエントリーポイントです。
設定
環境変数の設定については、https://docs.dify.ai/getting-started/install-self-hosted/environments を参照してください。これらの変数は主に api サービスで設定されます。
アップロードファイルサイズの制限
デフォルトのアップロードファイルサイズ制限は100 MBです。この制限は、nginx サービスの /etc/nginx/nginx.conf 設定ファイル内の client_max_body_size ディレクティブを変更することで調整できます。値は単位付きの文字列で指定する必要があります(例:100M は100 MBを表します)。
また、api サービスの環境で UPLOAD_FILE_SIZE_LIMIT 変数を設定し、上記の設定と一致させる必要があるかもしれません。この値が /etc/nginx/nginx.conf の設定にある client_max_body_size ディレクティブと同じであることを確認してください(例:100M は100 MBを表します)。
変更履歴
v1.13.0
追加
- AI と人間の協働のための Human-in-the-Loop(HITL)ワークフローノード
- ワークフローストリーミングが Celery ワーカーで実行されるようになり、信頼性が向上
修正
- プラグインデーモン通信用の内部ファイル URL を追加
v1.12.1-2
追加
- worker-beat スケジューラサービスを追加
修正
- ファイルアップロードサイズ制限を 15MB から 100MB に引き上げ
- プラグインエンドポイントページのアセット読み込み 404 を修正
- プラグインエンドポイント URL が localhost と表示される問題を修正
- テンプレートからのアプリ作成が失敗する問題を修正
改善
- 環境変数を各サービスで管理するように変更し、重複を削減