ACK に Dify をデプロイし、独自のエンタープライズナレッジベースに基づくスケーラブルな AI Q&A アシスタントを作成します。
ソリューションの概要
|
Dify カスタム AI アプリケーションの例
|
Web 統合 AI アプリケーションの例
|
専用の AI Q&A アシスタントを 3 つの手順でセットアップします。
-
ack-dify コンポーネントのインストール: Container Service for Kubernetes (ACK) クラスターを作成して、ack-dify コンポーネントをインストールします。
-
AI Q&A アシスタントの追加: Dify サービスにアクセスして、Web サイトに AI Q&A アシスタントを追加します。
-
AI Q&A アシスタントのカスタマイズ: 専用のナレッジベースを追加して、ドメイン固有の質問に対する精度を向上させます。

Dify サービスと ACK クラスター間の連携:
Dify の概要
Dify は、Backend as a Service (BaaS) と LLMOps を組み合わせた、オープンソースの大規模言語モデル (LLM) アプリケーション開発プラットフォームです。開発者だけでなく非技術者も、コアコンポーネントを一から作り直すことなく、プロダクショングレードの生成 AI アプリケーションを構築できます。
Dify のアーキテクチャの主要コンポーネント:
-
コアテクノロジーコンポーネント: Dify は、多数のモデルとの互換性、ユーザーフレンドリーなプロンプト設計インターフェイス、高性能な検索拡張生成 (RAG) システム、カスタマイズ可能なエージェントアーキテクチャなど、LLM アプリケーションの作成に必要な主要コンポーネントを統合しています。
-
ビジュアルオーケストレーションと運用: Dify の直感的なインターフェイスは、プロンプトのビジュアルオーケストレーション、運用ワークフローの効率化、データセットの効率的な管理を可能にします。これにより、AI アプリケーション開発プロセスが大幅に加速し、開発者は迅速にデプロイできるほか、既存システムへの LLM の統合も行えます。また、継続的な運用最適化もサポートします。
-
アプリケーションテンプレートとオーケストレーションフレームワーク: Dify は、すぐに使えるアプリケーションテンプレートとオーケストレーションフレームワークを開発者に提供し、大規模言語モデルに基づく生成 AI アプリケーションを迅速に開発できるようにします。また、変化するビジネスニーズに対応するための即時かつスムーズなスケーリングをサポートし、ビジネスの成長を促進します。
これらのコンポーネントは、生成 AI アプリケーションを迅速に開発してデプロイするための包括的なプラットフォームを提供します。
1. ack-dify コンポーネントのインストール
ワンクリックデプロイ
ACK クラスターを初めて利用する場合や作成プロセスに不慣れな場合は、ワンクリックデプロイをクリックして、Dify ランタイム環境を作成します。これにより、ACK アプリケーションマーケットプレイスの ack-dify Helm テンプレートを使用して、開発およびテストに適した単一インスタンスの Dify アプリケーションがデプロイされます。
ワンクリックデプロイを使用する前に、ACK が 有効化され、承認されている ことを確認してください。詳細については、「ACK マネージドクラスターの作成」をご参照ください。
このソリューションでは、以下のクラウドリソースを使用します。課金情報については、「課金」をご参照ください。
|
クラウドリソース |
説明 |
|
Virtual Private Cloud (VPC) × 1 |
Elastic Compute Service (ECS) インスタンスや ACK クラスターなどのクラウドリソースにプライベートネットワークを提供します。 |
|
vSwitch × 2 |
ECS インスタンスや ACK クラスターなどのリソースを接続し、通信とネットワーク分離を実現します。 |
|
セキュリティグループ × 1 |
VPC 内の ECS インスタンスのインバウンドおよびアウトバウンドネットワークルールを定義します。 |
|
クラシックロードバランサー (CLB) インスタンス × 1 |
Dify プラットフォームへのインターネットアクセスを提供します。 |
|
NAS ファイルシステム × 1 |
Dify 内部サービス (api および worker) のデータを保存します。 |
|
ACK マネージドクラスター × 1 |
Dify をデプロイします。リソース不足を避けるため、8 vCPU と 16 GiB のメモリを持つノードを少なくとも 1つ選択してください (例: ecs.u1-c1m2.2xlarge)。 |
操作手順
-
ワンクリックデプロイ をクリックします。ROS コンソールで、リージョン (中国東部1 (杭州) など) を選択します。ROS テンプレートに従って、vSwitch ゾーン ID、ノードプールインスタンスタイプ、パスワード、セキュリティ確認などの設定を構成します。残りはデフォルトのままにして、[次へ: 確認] をクリックします。
-
クラスターの作成には約 10 分かかります。作成後、Container Service for Kubernetes コンソールにログインします。左側のナビゲーションペインで、クラスターリスト を選択します。目的のクラスターをクリックします。[ワークロード] > [ポッド] を選択し、名前空間を [dify-system] に設定し、ack-dify コンポーネントがクラスターにインストールされていることを確認します。
-
(オプション) Pod が Pending 状態の場合、クラスターに ack-dify の PVC 依存関係が不足している可能性があります。クラスターに CNFS ファイルシステムと NAS StorageClass を作成してください。詳細については、「CNFS を使用した NAS ファイルシステムの管理」をご参照ください。Pod の例外のトラブルシューティングについては、「Pod の例外のトラブルシューティング」をご参照ください。
ack-dify コンポーネント のインストール後、次のステップに進んでください。
ROS の ワンクリックデプロイ を使用して ack-dify コンポーネントをすでにインストールしている場合、ack-dify サービスのパブリックアクセスは有効になっています。「Dify サービスへのアクセス」の手順はスキップできます。
手動デプロイ
ACK クラスターの作成プロセスに精通している場合は、以下の手順に従って、ニーズに合わせたクラスターを作成してください。
1.1 前提条件
-
バージョン 1.22 以降の ACK Pro クラスターが作成されていること。詳細については、「ACK マネージドクラスターの作成」および「クラスターのアップグレード」をご参照ください。
少なくとも 2 vCPU と 4 GB のメモリを確保してください。CSI ストレージプラグインと CNFS ファイルシステムが構成されていることを確認してください。
-
kubectl がクラスターに接続されていること。「kubectl を使用した ACK クラスターへの接続」をご参照ください。
1.2 コンポーネントのデプロイ
Dify サービス用に、クラスターに ack-dify コンポーネントをデプロイしてください。
-
Container Service for Kubernetes コンソールにログインします。 左側のナビゲーションペインで、クラスターリスト を選択します。 対象のクラスターをクリックします。 図の番号付きの手順に従って ack-dify コンポーネントをインストールします。
コンポーネントのアプリケーション名または名前空間を設定する必要はありません。次へをクリックします。表示される確認ダイアログボックスで、[はい]をクリックしてデフォルト (ack-dify / dify-system) を受け入れます。次に、最新のChart バージョンを選択し、OKをクリックして ack-dify コンポーネントをインストールします。

-
約 1 分待機し、
dify-system名前空間内のすべてのポッドがRunning状態であることを確認します。kubectl get pod -n dify-systemPod が Pending 状態の場合、クラスターに ack-dify の PVC 依存関係が不足している可能性があります。クラスターに CNFS ファイルシステムと NAS StorageClass を作成してください。詳細については、「CNFS を使用した NAS ファイルシステムの管理」をご参照ください。Pod の例外のトラブルシューティングについては、「Pod の例外のトラブルシューティング」をご参照ください。
2. AI Q&A アシスタントの追加
2.1 Dify Service へのアクセス
-
ack-dify Service のパブリックアクセスを有効にします。
説明パブリックアクセスはデモ用です。本番環境でデータセキュリティを確保するには、[アクセス制御] 機能を有効にしてください。

-
設定後、[Network] > [Services] > [ack-dify] を選択し、名前空間を dify-system に設定します。ack-dify Service の [外部 IP アドレス (External IP)] が表示されます。この IP をブラウザで開き、Dify にアクセスします。

-
アカウントを登録します。
[外部 IP アドレス (External IP)] にアクセスし、画面の案内に従って 管理者アカウント (メールアドレス、ユーザー名、パスワード) を作成します。

2.2 AI Q&A アシスタントの作成
-
ブラウザに [外部 IP アドレス (External IP)] を入力し、Dify プラットフォームにログインします。
-
AI モデル (この例では Qwen) を追加し、Alibaba Cloud の API キーを設定します。次の図を参照してください:
Qwen の無料クォータを使い切ると、トークン使用量に基づいて課金されます。これは、モデルのセルフホスティングと比べて初期費用を抑えられます。
-
API キーの取得:ユーザー名 > 設定 > [Model Provider] を選択し、[Qwen] プラグインをインストールして設定してから、[Get API Key From Alibaba Cloud] を選択します。
-
API キーを入力し、保存 をクリックします。

-
-
汎用の AI Q&A アシスタントを作成します。
[Studio] > [Create from Blank] を選択し、アシスタントの 名前 と [Description] を入力します。その他のパラメーターはデフォルトのままにします。

2.3 AI Q&A アシスタントの検証
質問を入力してアシスタントをテストします。汎用チャットボットは簡単な会話には対応できますが、現時点では Dify 固有の質問には回答できません。

3. AI アシスタントのカスタマイズ
3.1 ナレッジベースの作成
Dify 関連の技術的な質問に正確に回答するために、アシスタント専用のナレッジベースを構成します。
この例では、コーパスファイル dify_doc.md を使用します。以下の手順でナレッジベースを作成してアップロードします。
-
準備したコーパスファイル dify_doc.md をナレッジベースにアップロードします。
[ナレッジ] > [ナレッジを作成] > [ファイルからインポート] > [ファイルを選択] > [次へ] の順に選択します。

-
次へ をクリックします。テキストセグメンテーションとクリーニングを実行し、保存します。
デフォルト設定のままにします。ナレッジベースは、ドキュメントを自動的にクリーニング、セグメント化し、取得のためにインデックスを作成します。
上記のコーパスファイルが単一の .md ファイルにどのように整理されているかを確認するには、以下の折りたたみセクションを展開して詳細をご覧ください。
3.2 アシスタントのオーケストレーションと公開
プロンプトを設定し、アシスタントのコンテキストにナレッジベースを追加します。
-
プロンプトの設定:以下の内容を [指示] フィールドにコピーします。プロンプトは、指示と制約によって応答の精度を高めます。
You will act as Dify's AI assistant, dedicated to answering customers' questions about Dify products and their features. Your responses should be based on the existing knowledge base to ensure accuracy. If a question is beyond your knowledge, please honestly inform them that you do not know the answer, in order to maintain the integrity of the information. Please communicate in a friendly and warm tone, and feel free to use emoticons appropriately to enhance the interactive experience. -
コンテキストへのナレッジベースの追加: 追加 エリアで [追加] をクリックしてナレッジベースを追加すると、正確で専門的な回答が可能になります。
-
リリース > 更新 の順にクリックして、設定を保存して適用します。
設定は以下の図のとおりです。

3.3 結果の検証
専用のナレッジベースにより、AI アシスタントは汎用チャットボットよりも正確でドメイン固有の回答を提供します。
概要
Dify のコア機能:
|
機能 |
説明 |
|
包括的な LLMOps |
アプリケーションのログとメトリクスをリアルタイムでモニタリングし、本番データに基づいてプロンプト、データセット、モデルを継続的に最適化します。 |
|
RAG エンジン |
ドキュメントの取り込みから検索までのエンドツーエンドの RAG パイプライン。PDF や PPT などの一般的なフォーマットを直接処理します。 |
|
エージェント |
LLM の関数呼び出しまたは ReAct パラダイムを使用してエージェントを定義し、50 以上の組み込みツールとカスタムツールをサポートします。 |
|
ワークフローオーケストレーション |
コンポーネントをドラッグアンドドロップで接続して AI ワークフローを構築するためのビジュアルキャンバスで、コーディングは最小限で済みます。 |
|
可観測性 |
監視ダッシュボードを通じて LLM アプリケーションの品質とコストを追跡および評価します。 |
|
エンタープライズ機能 (SSO/アクセス制御) |
組織は、情報漏洩やデータ破損のリスクを軽減し、情報セキュリティとビジネスの継続性を確保できます。 |
公開
AI Q&A アシスタントを本番環境にデプロイするための 4 つのオプション:
-
公開共有 Web サイト。
Dify で作成した AI アプリケーションは、インターネット上でアクセス可能な Web アプリケーションとして公開でき、プロンプトとオーケストレーションの設定に基づいて動作します。詳細については、「公開 Web アプリとして公開する」をご参照ください。
-
API ベースの呼び出し。
Dify は、「Backend-as-a-Service」の概念に基づき、すべてのアプリケーションに API を提供します。これにより、開発者は複雑なバックエンドアーキテクチャやデプロイを気にすることなく、フロントエンドアプリケーションで大規模言語モデルの能力を活用できます。詳細については、「API を使用した開発」をご参照ください。
-
フロントエンドコンポーネントをベースにした再開発。
ゼロから新しい製品を開発している場合や、プロトタイプの設計段階にある場合は、Dify を使用して AI サイトを迅速に公開できます。詳細については、「フロントエンドコンポーネントをベースにした再開発」をご参照ください。
-
エンタープライズまたは個人の Web サイトへの埋め込み。
Dify は、AI アプリケーションをビジネス Web サイトに埋め込むことをサポートしています。この機能を使用して、公式 AI カスタマーサービス、ビジネス Q&A、その他のアプリケーションをビジネスデータを使用して数分で作成できます。詳細については、「Web サイトへの埋め込み」をご参照ください。
例:Web サイトへの埋め込み
LLM アプリケーションをエンタープライズまたは個人の Web サイトに埋め込みます。
この例はデモンストレーション用です。本番環境でデータセキュリティを確保するために、アクセス制御 機能も有効化してください。
-
ack-dify Service のパブリックアクセスを有効にし、ブラウザで外部 IP を開きます。詳細については、「Dify サービスへのアクセス」をご参照ください。

-
ACK クラスター内にシンプルな Web アプリケーションを迅速に構築し、AI Q&A アシスタントをデバッグします。
これにより、ACK クラスター上に Web アプリケーションがデプロイされ、埋め込まれた Dify LLM アプリケーションをホストします。
-
Dify サービスコードを取得します。
図に示すように、チャットアプリケーションのコードを Web サイトに埋め込む方法を選択します。

-
クラスターで、Deployment を作成して Web アプリケーションを実行し、Service を作成して公開します。
以下は、静的な HTML を持つ Nginx サーバーをデプロイする方法を示す簡単な YAML の例です。
-
Container Service for Kubernetes (ACK) コンソールにログインします。ConfigMap ページで、名前空間を default に設定し、次に YAML のリソースの作成 をクリックします。以下の YAML コンテンツをテンプレートにコピーし、取得した Dify サービスコードに基づいて
window.difyChatbotConfig、src、idパラメーターを変更します。以下の例をご参照ください。
-
デプロイのステータスを確認します。両方の Pod が
Running状態の場合、デプロイは成功です。 -
デプロイされた Service のパブリックアクセスを有効にします。
本番環境のデータセキュリティのため、アクセス制御 機能も有効にすることを推奨します。

設定後、web-service サービスの 外部 IP アドレス (External IP) が表示されます。この IP をブラウザで開きます。
重要-
他のデバイスから Service にアクセスさせたい場合は、クラスターのファイアウォールまたはセキュリティグループでポート 80 のトラフィックが許可されていることを確認してください。詳細については、「セキュリティグループのルールの追加」をご参照ください。
-
潜在的な XSS や悪意のあるコードの埋め込みを防ぐために、ご自身のコードとサードパーティのコードが安全であることを確認してください。これはデモンストレーションのみを目的とした基本的な例です。必要に応じて拡張および変更できます。
-
-
結果の例。

-
-
課金
この機能を使用すると、ACK Pro のクラスター管理料金と Alibaba Cloud のリソース使用料金が発生します。関連する Alibaba Cloud 製品には、Elastic Compute Service (ECS)、クラシックロードバランサー (CLB)、Elastic IP アドレス (EIP)、Apsara File Storage NAS が含まれます。使用したリソースは、各製品の料金ルールに従って課金されます。クラスター管理料金とクラウド製品のリソース料金の詳細については、課金概要をご参照ください。
免責事項
Dify on ACK は、オープンソースプロジェクト Dify を Alibaba Cloud ACK 環境に適応させ、迅速なデプロイを可能にする Helm デプロイメントソリューションです。ACK は、Dify アプリケーションのパフォーマンス、またはプラグインやデータベースなどの他のエコシステムコンポーネントとの互換性を保証するものではありません。ACK は、Dify またはそのエコシステムコンポーネントの欠陥によるいかなるビジネス上の損失に対しても、補償や賠償などの商用サービスを提供しません。Dify の安定性とセキュリティを確保するため、オープンソースコミュニティからのアップデートをフォローし、オープンソースソフトウェアの問題を積極的に修正してください。

