プライベートな企業の Q&A システムは、しばしば不正確な回答を提供します。Dify を Alibaba Cloud Tablestore ベクトルデータベースと統合することで、検索拡張生成 (RAG) アプリケーションを構築できます。このソリューションは、正確なナレッジ取得とインテリジェントな Q&A 機能を提供します。
ソリューションの概要
Tablestore は、パフォーマンス専有型のベクトルデータベースです。ミリ秒レベルのクエリ応答を提供し、ベクトル検索と全文検索を組み合わせたハイブリッド取得モードをサポートします。1 つのテーブルで数百億のベクトルを保存できます。Dify はアプリケーションのオーケストレーションとユーザーインターフェイスを処理します。これにより、RAG アプリケーションの構築とデプロイメントのプロセスが大幅に簡素化されます。
RAG アプリケーションは、インテリジェントな Q&A のために以下のコアプロセスを使用します。
ナレッジのベクトル化: Dify は、企業のドキュメントを自動的にナレッジセグメントに分割し、それらをベクトル表現に変換して、Tablestore ベクトルデータベースに保存します。
類似検索: ユーザーが質問をすると、システムは Tablestore から最も関連性の高いナレッジセグメントを迅速に取得します。
拡張生成: 取得されたナレッジは、ユーザーの質問と組み合わされ、大規模言語モデルに提供されて、正確で根拠のある回答を生成します。
デプロイメント環境の準備
Tablestore インスタンスの作成
Tablestore は、RAG アプリケーションのベクトルデータベースとして機能します。ドキュメントのベクトル化された表現を保存し、効率的な類似検索機能を提供します。
Tablestore コンソールにログインします。ページの上部で、インスタンスのリージョンを選択します。例:
中国 (杭州)。[インスタンスの作成] をクリックし、[CU モード (旧従量課金モード)] を選択します。以下のリストに従ってインスタンスパラメーターを設定します。他の設定項目はデフォルト設定のままにします。
[インスタンス名]: インスタンスの名前を入力します。
[インスタンスタイプ]: [計算最適化インスタンス] を選択します。
[OK] をクリックしてインスタンスを作成します。
ECS インスタンスの作成
ECS インスタンスは、Dify アプリケーションのランタイム環境として機能します。Docker コンテナークラスターの操作をサポートするために、十分な計算資源が必要です。
以下のリストにあるパラメーターで ECS インスタンスを作成します。他の設定項目はデフォルト設定のままにすることができます。
[課金方法] で、[従量課金] を選択します。
[リージョン]: インスタンスが配置されるリージョンを選択します。ネットワークの考慮事項のため、このトピックでは 中国 (香港) リージョンを使用します。
[ネットワークとゾーン]: デフォルトの VPC とゾーンを選択します。
[インスタンス]: [すべての仕様] をクリックして
ecs.e-c1m2.largeを検索して選択します。説明このインスタンスタイプが売り切れの場合は、別のものを選択してください。
[イメージ]: [パブリックイメージ] セクションで、[Alibaba Cloud Linux] (Alibaba Cloud Linux 3.2104 LTS 64 ビット) を選択します。
[システムディスク]: [ESSD Entry] の容量を 40 GiB に設定します。
[パブリック IP] で、[パブリック IPv4 アドレスを割り当てる] を選択します。
[帯域幅課金方法]: コストを節約するために [トラフィック量による支払い] を選択できます。
[ピーク帯域幅] で、[5 Mbps] 以上を選択します。
[セキュリティグループ] で、[既存のセキュリティグループ] を選択します。
[ログイン認証情報]: [カスタムパスワード] を選択します。ログイン名を [root] に設定し、[ログインパスワード] を設定します。パスワードは安全な場所に保管してください。
Dify のデプロイとアクセス
ステップ 1: Docker 環境のインストール
Dify はコンテナーにデプロイされます。したがって、まず ECS インスタンスに Docker と Docker Compose をインストールして、マルチサービスコンテナーのオーケストレーションをサポートする必要があります。
dnf-plugins-core プラグインをインストールします。
dnf -y install dnf-plugins-core公式 Docker リポジトリを設定します。
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoDocker Engine と Docker Compose プラグインをインストールします。
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDocker を起動し、システム起動時に自動的に起動するように設定します。
systemctl enable --now docker
ステップ 2: Dify サービスのデプロイ
次に、Dify のソースコードをクローンし、環境変数を設定します。特に、ベクトルデータベースとして機能する Tablestore の接続パラメーターを設定します。
Git バージョン管理ツールをインストールします。
yum -y install git公式 Dify ソースコードリポジトリをクローンします。
git clone https://github.com/langgenius/dify.gitDocker デプロイメントディレクトリに移動します。
cd dify/docker環境設定ファイルテンプレートをコピーします。
cp .env.example .env環境設定ファイルを編集します。
vi .env以下の設定項目を変更します。
設定項目
説明
VECTOR_STORE
ベクトルデータベースのタイプ。
tablestoreに設定します。TABLESTORE_ENDPOINT
重要新しい Tablestore インスタンスでは、デフォルトでパブリックネットワークアクセスが無効になっています。パブリックエンドポイントを使用するには、Tablestore コンソールに移動します。[インスタンス管理] ページで、[ネットワーク管理] タブをクリックします。[許可されたネットワークタイプ] セクションで、[パブリックネットワーク] を選択し、[設定] をクリックして設定を保存します。
Tablestore コンソールに移動します。[インスタンスリスト] で、インスタンスのエイリアスをクリックして [インスタンス管理] ページに移動します。インスタンス名とエンドポイントをコピーします。デプロイメントに基づいてエンドポイントを選択します。
ECS インスタンスと Tablestore インスタンスが同じリージョンにある場合は、パブリックエンドポイントまたは VPC エンドポイントを使用できます。
ECS インスタンスと Tablestore インスタンスが異なるリージョンにある場合は、パブリックエンドポイントを使用する必要があります。
TABLESTORE_INSTANCE_NAME
TABLESTORE_ACCESS_KEY_ID
AccessKey 管理ページに移動して、Alibaba Cloud アカウントの AccessKey を作成します。ACCESS_KEY_ID と ACCESS_KEY_SECRET を取得して保存します。
TABLESTORE_ACCESS_KEY_SECRET
Dify コンテナークラスターを起動します。
docker compose up -d起動が完了すると、次の出力が表示されます。
✔ Network docker_default Created 0.1s ✔ Network docker_ssrf_proxy_network Created 0.1s ✔ Container docker-sandbox-1 Started 0.8s ✔ Container docker-redis-1 Started 1.0s ✔ Container docker-ssrf_proxy-1 Started 1.3s ✔ Container docker-web-1 Started 1.0s ✔ Container docker-db-1 Started 0.9s ✔ Container docker-plugin_daemon-1 Started 2.4s ✔ Container docker-api-1 Started 2.4s ✔ Container docker-worker-1 Started 2.3s ✔ Container docker-nginx-1 Started 3.8s
ステップ 3: セキュリティグループのアクセスルールの設定
インターネットから Dify 管理インターフェイスにアクセスするには、ECS セキュリティグループで対応するポートを開く必要があります。
ECS コンソールで、対象のインスタンスに対して をクリックします。
セキュリティグループルールを設定するには、[承認ポリシー] を [許可] に、[プロトコルタイプ] を [Web HTTP トラフィックアクセス] に設定します。[アクセス先 (このインスタンス)] フィールドに、Dify サービスポート (デフォルトは 80) を入力し、ポートを追加します。次の図を参照してください。

[OK] をクリックしてセキュリティグループルールを保存します。
ステップ 4: Dify 管理インターフェイスへのアクセス
ブラウザで http://server_ip に移動します。ここで server_ip は ECS インスタンスのパブリック IP アドレスです。このページに初めてアクセスすると、初期化ページにリダイレクトされます。プロンプトに従って管理者アカウントを設定します。設定が完了すると、システムは自動的にログインします。

RAG アプリケーションの構築と結果の検証
ステップ 1: モデルサービスと API キーの設定
RAG アプリケーションは、質問を理解し、回答を生成するために大規模言語モデルを必要とします。また、テキストをベクトル表現に変換するための埋め込みモデルも必要です。
モデルプロバイダーをインストールし、その API キーを設定します。
Dify のホームページで、プロフィール写真をクリックし、ドロップダウンメニューから [設定] をクリックします。
設定ページで、[モデルプロバイダー] をクリックします。[Qwen] を選択し、[インストール] をクリックします。
インストールが完了したら、設定待ちのモデルのリストで [設定] をクリックします。

ページ上の指示に従って、Alibaba Cloud Model Studio の [API キー] を取得し、設定を完了します。その後、[保存] をクリックします。

デフォルトのシステムモデルを設定します。
モデルプロバイダーページで、[モデルリスト] の右側にある [システムモデル設定] をクリックします。
以下の推奨事項に従ってモデルを設定します。必要に応じて他のモデルを選択することもできます。
[システム推論モデル] には、[qwen3-max-preview] を選択します。
[埋め込みモデル] には、[text-embedding-v4] を選択します。
[Rerank モデル] には、[gte-rerank-v2] を選択します。
[音声テキスト変換モデル] には、[paraformer-realtime-v2] を選択します。
[テキスト音声合成モデル] には、[tts-1] を選択します。
モデルを設定した後、[ESC] をクリックして Dify のホームページに戻ります。
ステップ 2: ナレッジベースの作成
ナレッジベースは、RAG アプリケーションのコアコンポーネントです。企業のドキュメントを保存し、インテリジェントな取得機能を提供します。ドキュメントは自動的にチャンク化、ベクトル化され、Tablestore に保存されます。
Dify のホームページで、[ナレッジ] をクリックし、次に [ナレッジの作成] をクリックします。

[空のナレッジベースを作成] をクリックします。[空のナレッジベースを作成] ダイアログボックスで、ナレッジベースの名前 (例: Tablestore) を入力し、[作成] をクリックします。

ナレッジベースの詳細ページで、[ファイルの追加] をクリックし、サンプルファイル Model_Studio_Series_Mobile_Phone_Product_Introduction.docx を選択し、[次へ] をクリックしてテキストセグメンテーションとクリーニングの設定に進みます。

ナレッジ処理パラメーターを設定するには、[インデックス作成方法] を [高品質] に、[取得設定] を [ハイブリッド検索] に設定します。その後、[保存して処理] をクリックします。[ドキュメントに移動] をクリックして、アップロードされたドキュメントの処理ステータスを表示できます。

Tablestore コンソールに移動して、ベクトルデータベースに保存されているナレッジデータを表示できます。

ステップ 3: AI チャットアシスタントの作成と RAG 効果の検証
最後に、チャットアシスタントアプリケーションを作成します。ナレッジベースを追加する前と後の応答を比較して、RAG アプリケーションの検索拡張機能を確認します。
Dify のホームページで、[Studio] をクリックし、次に [空白から作成] をクリックします。

[初心者向け] テンプレートと [チャットアシスタント] アプリケーションタイプを選択し、アプリケーション名を入力して [作成] をクリックします。

チャットアシスタントに質問してテストします。例:
Model Studio の電話モデルは何ですか。この時点では、アシスタントの回答は正確でないか、詳細でない場合があります。
アプリケーションの [オーケストレーション] ページで、[ナレッジベース] の横にある [追加] をクリックし、ナレッジベースを選択してから、デバッグエリアをリセットするように促されたら [再起動] をクリックします。

チャットアシスタントに同じ質問を再度します。ナレッジベースのコンテンツにより、アシスタントは正確で詳細な回答を提供できるようになります。

本番環境での使用
ベストプラクティス
本番環境で Dify アプリケーションの高可用性を確保するために、ACK を使用してデプロイすることをお勧めします。実装計画の詳細については、ソリューション Dify を迅速にデプロイして AI アプリケーション開発を加速する を参照し、ACK を使用する本番環境デプロイメントオプションを選択してください。
リスク防止
権限コントロール: Resource Access Management (RAM) ユーザーを使用してリソースアクセスを管理します。権限の範囲を厳密に制御し、Tablestore と ECS に必要な操作権限のみを付与します。
操作監査: ActionTrail を有効にして、主要なリソースへのアクセスと変更に関する完全な操作ログを記録します。これにより、すべてのアクションが追跡可能になります。
データバックアップ: Tablestore のデータバックアップを定期的に実行します。これにより、偶発的な障害や人為的ミスによるデータ損失のリスクを効果的に防止します。
リソースのクリーンアップ
チュートリアルを完了した後、本番環境で使用する予定がない場合は、不要な料金を避けるために、関連するクラウドリソースを速やかにリリースしてください。
ECS インスタンスのリリース
ECS コンソールで、対象のインスタンスを見つけ、 をクリックします。画面の指示に従ってインスタンスをリリースします。
Tablestore データテーブルの削除
Tablestore コンソールに移動します。[インスタンスリスト] で、対象のインスタンスのエイリアスをクリックします。[インスタンス管理] ページで、対象のデータテーブルの [インデックス管理] をクリックします。[インデックス管理] ページで、多次元インデックスを削除します。その後、データテーブルリストに戻ります。対象のデータテーブルで、 をクリックします。
Tablestore インスタンスのリリース (CU モード)
Tablestore コンソールに移動します。[インスタンスリスト] で、対象のインスタンスを見つけ、[操作] 列の [リリース] をクリックします。
[OK] をクリックしてインスタンスをリリースします。ID 検証を求められた場合は、画面の指示に従ってください。