この Topic では、Vector Retrieval Service for Milvus (Milvus) と Dify プラットフォームを使用して、検索拡張生成 (RAG) システムを構築する方法について説明します。
背景情報
RAG の原則
大規模言語モデル (LLM) は、知識が限られているため、しばしばハルシネーション (幻覚) を起こします。検索拡張生成 (RAG) 技術は、外部のナレッジベースに接続することで、この課題を解決します。効率的な RAG システムには、強力なベクトルデータベースが必要です。
この Topic では、Milvus と Dify ローコード人工知能 (AI) プラットフォームに焦点を当てます。これらを組み合わせて、エンタープライズグレードの RAG アプリケーションを迅速に構築する方法を紹介します。これは、AI における「ラストワンマイル」問題を解決する上でのベクトルデータベースのコアバリューを実証するものです。
Dify プラットフォームについて
Dify は、AI アプリケーションを開発するためのオープンソースプラットフォームです。ローコードのパイプラインとユーザーフレンドリなインターフェイスが特徴です。そのコアミッションは、BaaS (Backend-as-a-Service) と LLMOps (LLM Operations) の概念を統合することで、AI アプリケーションの構築プロセスを簡素化し、加速することです。
Dify はフルスタックのソリューションです。バックエンドでは、API サービスやデータ管理など、信頼性の高いインフラストラクチャを提供します。これにより、開発者はゼロから構築する必要がなくなります。LLMOps に関しては、Dify はプロンプトエンジニアリングのための直感的なビジュアルインターフェイスを提供し、複雑なプロンプトのワークフローを簡素化します。組み込みの高品質な RAG エンジンは、会社のドキュメントやデータベースなどの非公開のナレッジベースに接続します。この接続により、大規模言語モデルはドメイン固有の知識を使用して質問に答えることができ、ハルシネーションを減らし、回答の正確性と追跡可能性を確保します。
前提条件
Milvus インスタンスを作成済みであること。詳細については、「Milvus インスタンスの作成」をご参照ください。
Alibaba Cloud Model Studio をアクティベートし、API キーを取得済みであること。詳細については、「App ID と Workspace ID の取得」をご参照ください。
Docker と Docker Compose をインストール済みであること。詳細については、「Docker と Docker Compose のインストールと使用」をご参照ください。
手順
ステップ 1: Dify のインストール
GitHub からオープンソースの Dify プロジェクトをローカルマシンにクローンします。
git clone https://github.com/langgenius/dify.gitデプロイメントディレクトリに移動し、.env 構成ファイルをバックアップします。
cd dify/docker/ cp .env.example .env.env ファイルで次の構成情報を変更します。
# ベクトルストレージエンジンの構成 VECTOR_STORE=milvus # Milvus をベクトルストレージエンジンとして指定 # Milvus 接続情報 MILVUS_URI=http://YOUR_ALIYUN_MILVUS_ENDPOINT:19530 MILVUS_USER=YOUR_ALIYUN_MILVUS_USER MILVUS_PASSWORD=YOUR_ALIYUN_MILVUS_PASSWORDこの例では、次のパラメーターを使用します。実際の値に置き換えてください。
パラメーター
説明
MILVUS_URIMilvus インスタンスのエンドポイント。フォーマットは
http://<パブリック IP アドレス>:<ポート>です。<パブリック IP アドレス>: これは、Milvus インスタンスの [インスタンス詳細] ページで確認できます。<ポート>: これは、Milvus インスタンスの [インスタンス詳細] ページで確認できます。デフォルトのポートは 19530 です。
MILVUS_USERMilvus インスタンスの作成時に指定したユーザー名。
MILVUS_PASSWORDMilvus インスタンスの作成時に指定したユーザーのパスワード。
Dify を起動します。
docker compose up -d --build
ブラウザで
http://127.0.0.1/にアクセスして Dify サービスにアクセスします。管理者アカウントとパスワードを設定し、コンソールにログインします。説明Dify が Elastic Compute Service (ECS) インスタンスや仮想マシン (VM) などのリモートサーバーで実行されている場合は、
127.0.0.1をサーバーのパブリック IP アドレスまたはドメイン名に置き換えてください。サーバーがネットワーク経由でアクセス可能であることを確認してください。
ステップ 2: モデルの設定
ログイン後、右上のプロファイル画像をクリックし、ドロップダウンメニューから [設定] を選択します。

左側のナビゲーションウィンドウで、[モデルプロバイダー] を選択します。右側で Qwen を見つけてインストールします。
モデルがインストールされたら、[Set API-KEY] をクリックします。Alibaba Cloud Model Studio プラットフォームから取得した API キーを入力します。

必要に応じて [システムモデル設定] を構成します。

ステップ 3: ナレッジベースの作成
ページの上部で [ナレッジ] をクリックし、次に [ナレッジベースの作成] をクリックします。

データソースとして [テキストファイルからインポート] を選択します。README.md をクリックしてサンプルデータをダウンロードします。次に、サンプルデータファイルをアップロードします。

パラメーターを変更し、[保存して処理] をクリックします。

この例では、次のパラメーターを変更します。
[最大セグメント長]: 1024 に設定します。
[埋め込みモデル]: text-embedding-v1 を選択します。
プロセスが完了すると、ナレッジベースが作成されます。

ステップ 4: ベクトル取得の検証
Alibaba Cloud Milvus コンソールにログインし、Milvus インスタンスを選択します。右上の [Attu Manager] をクリックして Attu ページを開きます。対応するコレクションデータがインポートされていることを確認できます。詳細については、「Attu ツール管理」をご参照ください。
ステップ 5: RAG パフォーマンスの検証
ページの上部にある [Studio] をクリックしてホームページに戻ります。[テンプレートから作成] を選択します。

検索ボックスで、ナレッジ取得 + チャットボットテンプレートを検索して使用します。

表示されるダイアログボックスで、[作成] をクリックします。

ナレッジ取得ノードを選択します。ナレッジベースを前のステップで作成したものに設定します。

LLM ノードを選択し、モデルを qwen-max に設定します。

右上の [公開] をクリックし、次に [更新を公開] をクリックします。

[実行] をクリックしてテストページを開きます。ナレッジベースのコンテンツに関連する質問を入力して、回答を受け取ります。