メインコンテンツへ移動

ベクトルナレッジベースを有効にする

注意

ベクトルナレッジベースは、本製品の拡張モジュールです。ワークシートにベクトル検索と意味検索の機能を提供します。必要に応じて有効にしてください。

⚠️ 注意:ベクトルナレッジベース機能には「スーパー検索」のライセンスが必要です。購入していない場合は、デプロイ後もナレッジベースを作成できません。

環境要件​

有効にする前に、サーバーが次の要件を満たしていることを確認してください(専用サーバーへのデプロイを強く推奨します)。

Milvus の単一サーバーモードでは、Milvus、MinIO、etcd の3つのコンポーネントを実行し、合計で約 6~8GB のメモリを使用します。空きメモリが 12GB 未満のサーバーでは、この機能の有効化を推奨しません。

コンポーネント最低要件推奨要件
Docker20.10.16 以降—
CPU4コア(SSE4.2 / AVX 命令セット対応)8コア以上
空きメモリ12GB32GB 以上
ディスクSATA SSDNVMe SSD

Milvus のデプロイ​

サーバーリソースと運用方法に応じて、Milvus を独立してデプロイするか、HAP と同じ環境にデプロイできます。

方法1:専用サーバーにデプロイする​

専用サーバーを利用できる場合や、ベクトルデータベースと HAP のメインサービスを分けて管理したい場合に適しています。

Docker と Docker Compose のインストール​

  1. Docker をインストールします。

    Docker のインストール方法は、各 Linux ディストリビューション向けの公式インストール手順、またはデプロイ例の Docker のインストールを参照してください。

  2. Docker Compose のバイナリをダウンロードします。

    wget https://pdpublic.mingdao.com/private-deployment/offline/common/docker-compose-linux-x86_64
  3. バイナリの配置先に移動します。

    mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
  4. 実行権限を付与します。

    chmod +x /usr/local/bin/docker-compose

Milvus のデプロイ​

  1. イメージを取得します(オフラインパッケージのダウンロード)。

    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-etcd:v3.5.25
    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-minio:RELEASE.2025-04-22T22-12-26Z
    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-milvus:v2.6.14
  2. データディレクトリを作成します。

    Milvus のデプロイ先を定義します。ここでは /data/mingdao/script を例とします。

    mkdir -p /data/mingdao/script

    デプロイ先に、対応するデータマウント用ディレクトリを作成します。

    cd /data/mingdao/script
    mkdir -p ./volume/data/milvus/{etcd,minio,data}
  3. デプロイ先に milvus.yaml を作成します。

    version: "3.5"

    services:
    etcd:
    container_name: milvus-etcd
    restart: always
    image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-etcd:v3.5.25
    environment:
    - ETCD_AUTO_COMPACTION_MODE=revision
    - ETCD_AUTO_COMPACTION_RETENTION=1000
    - ETCD_QUOTA_BACKEND_BYTES=4294967296
    - ETCD_SNAPSHOT_COUNT=50000
    volumes:
    - ./volume/data/milvus/etcd:/etcd
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd

    minio:
    container_name: milvus-minio
    restart: always
    image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-minio:RELEASE.2025-04-22T22-12-26Z
    environment:
    MINIO_ROOT_USER: minioadmin
    MINIO_ROOT_PASSWORD: minioadmin
    volumes:
    - ./volume/data/milvus/minio:/minio_data
    command: minio server /minio_data --console-address ":9001"

    milvus:
    container_name: milvus-standalone
    restart: always
    image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-milvus:v2.6.14
    command: ["milvus", "run", "standalone"]
    security_opt:
    - seccomp:unconfined
    environment:
    ETCD_ENDPOINTS: etcd:2379
    MINIO_ADDRESS: minio
    MINIO_PORT: "9000"
    MINIO_ACCESS_KEY_ID: minioadmin
    MINIO_SECRET_ACCESS_KEY: minioadmin
    MINIO_BUCKET_NAME: mdmilvus
    COMMON_SECURITY_AUTHORIZATIONENABLED: "true"
    MQ_TYPE: woodpecker
    volumes:
    - ./volume/data/milvus/data:/var/lib/milvus
    ports:
    - 19530:19530
    depends_on:
    - etcd
    - minio

    既存の MinIO サービスを再利用する(任意)

    本製品の環境に MinIO サービスがある場合は、Milvus でも再利用できるため、別途デプロイする必要はありません。設定手順は次のとおりです。

    1. docker-compose.yaml から minio サービスの定義を削除します。
    2. milvus サービスの depends_on から - minio を削除します。
    3. milvus サービスの次の環境変数を変更します。
      • MINIO_ADDRESS:既存の MinIO サービスのアドレス(例:192.168.1.100)に変更します。
      • MINIO_PORT:既存の MinIO サービスのポート(例:9000)に変更します。
      • MINIO_ACCESS_KEY_ID:既存の MinIO の Access Key に変更します。
      • MINIO_SECRET_ACCESS_KEY:既存の MinIO の Secret Key に変更します。
      • MINIO_BUCKET_NAME:mdmilvus のままにすることを推奨します。Milvus が自動作成します。
  4. サービスを起動します。

    docker-compose -f milvus.yaml up -d
    • 後で Milvus サービスを停止する場合は、次のコマンドを実行します。

      docker-compose -f milvus.yaml down
  5. Milvus のデフォルトパスワードを変更します(必須)。

    Milvus のデフォルトアカウント:

    • ユーザー名:root
    • パスワード:Milvus

    初回起動後は必ずデフォルトパスワードを変更してください。次のコマンドの your_password を実際のパスワードに置き換え、パスワードを安全に保管してください。

    docker exec -it milvus-standalone bash

    TOKEN=$(echo -n 'root:Milvus' | base64 -w0)

    curl -s -X POST 'http://localhost:19530/v2/vectordb/users/update_password' \
    -H 'Content-Type: application/json' \
    -H "Authorization: Basic $TOKEN" \
    -d '{"userName": "root", "password": "Milvus", "newPassword": "your_password"}'

    {"code":0,"data":{}} が返れば、変更は成功です。

方法2:Milvus を HAP と同じ環境にデプロイする​

注意

この方法では、Milvus 関連のコンポーネントを HAP と同じサーバーにデプロイします。十分な空きリソースを確保してください。サーバー構成は最低でも 16C 64G を推奨し、データディスクには必ず SSD を使用してください。

Milvus のデプロイ​

  1. イメージを取得します(オフラインパッケージのダウンロード)。

    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-etcd:v3.5.25
    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-minio:RELEASE.2025-04-22T22-12-26Z
    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-milvus:v2.6.14
  2. データマウント用ディレクトリを作成します。

    mkdir -p /data/mingdao/script/volume/data/milvus/{etcd,minio,data}
  3. 次のコマンドを実行し、出力に start minio を含む行があるか確認します。

    docker logs $(docker ps | grep mingdaoyun-sc | awk '{print $1}') | grep minio

    出力に start minio が含まれる場合は「出力あり」、何も出力されない場合は「出力なし」タブを選択し、その手順に従って設定を変更してください。

    HAP サービスの docker-compose.yaml(デフォルトパス:/data/mingdao/script/docker-compose.yaml)を編集し、次のサービスを追加します。

    etcd:
    container_name: milvus-etcd
    image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-etcd:v3.5.25
    environment:
    - ETCD_AUTO_COMPACTION_MODE=revision
    - ETCD_AUTO_COMPACTION_RETENTION=1000
    - ETCD_QUOTA_BACKEND_BYTES=4294967296
    - ETCD_SNAPSHOT_COUNT=50000
    volumes:
    - ./volume/data/milvus/etcd:/etcd
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd

    milvus:
    container_name: milvus-standalone
    image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-milvus:v2.6.14
    command: ["milvus", "run", "standalone"]
    security_opt:
    - seccomp:unconfined
    environment:
    ETCD_ENDPOINTS: etcd:2379
    MINIO_ADDRESS: sc
    MINIO_PORT: "9010"
    MINIO_ACCESS_KEY_ID: mdstorage
    MINIO_SECRET_ACCESS_KEY: eBxExGQJNhGosgv5FQJiVNqH
    MINIO_BUCKET_NAME: mdmilvus
    COMMON_SECURITY_AUTHORIZATIONENABLED: "true"
    MQ_TYPE: woodpecker
    volumes:
    - ./volume/data/milvus/data:/var/lib/milvus
    depends_on:
    - etcd
  4. HAP サービスを再起動します。

    bash ./service.sh restartall
  5. Milvus のデフォルトパスワードを変更します(必須)。

    Milvus のデフォルトアカウント:

    • ユーザー名:root
    • パスワード:Milvus

    初回起動後は必ずデフォルトパスワードを変更してください。次のコマンドの your_password を実際のパスワードに置き換え、パスワードを安全に保管してください。

    docker exec -it milvus-standalone bash

    TOKEN=$(echo -n 'root:Milvus' | base64 -w0)

    curl -s -X POST 'http://localhost:19530/v2/vectordb/users/update_password' \
    -H 'Content-Type: application/json' \
    -H "Authorization: Basic $TOKEN" \
    -d '{"userName": "root", "password": "Milvus", "newPassword": "your_password"}'

    {"code":0,"data":{}} が返れば、変更は成功です。

HAP メインサービスへの接続​

いずれかの方法で Milvus をデプロイした後、RAG サービスを HAP メインサービスに接続します。

  1. HAP サーバーで rag サービスのイメージを取得します(オフラインパッケージのダウンロード)。

    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-rag:1.0.0
  2. rag サービスを追加します。

    HAP メインサービスの設定ファイル docker-compose.yaml に、次の内容を追加します。

    rag:
    image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-rag:1.0.0
    environment:
    <<: *app-environment
  3. 環境変数を追加します。

    HAP メインサービスの設定ファイル docker-compose.yaml の app サービスに、環境変数を追加します。Milvus のデプロイ方法に応じて設定を選択してください。

    app:
    environment:
    ENV_RAG_ENABLE: "true"
    ENV_MILVUS_URL: "http://{Milvus内网IP}:19530"
    ENV_MILVUS_DATABASE: "default"
    ENV_MILVUS_USERNAME: "root"
    ENV_MILVUS_PASSWORD: "your_password"

    環境変数 ENV_MILVUS_PASSWORD の値を、前の手順で設定した Milvus のパスワードに変更してください。

  4. 管理ツールのルートディレクトリで bash ./service.sh restartall を実行してサービスを再起動し、コマンドの完了を待ちます。