跳到主要内容

如何启用向量知识库功能

提示

向量知识库为本产品的扩展模块,用于为工作表提供向量检索与语义搜索能力,用户可根据实际需求选择是否启用。

⚠️ 注意:向量知识库功能需购买「超级搜索」授权许可证,否则部署完成后仍无法创建知识库。

环境要求

启用前请确保服务器满足以下条件(强烈建议使用独立服务器部署):

Milvus 单机模式运行包含 MilvusMinIOetcd 三个组件,总内存占用约 6~8GB。可用内存低于 8GB 的服务器不建议启用该功能。

组件最低配置推荐配置
Docker20.10.16 及以上
CPU4 核(支持 SSE4.2 / AVX 指令集)4 核及以上
空余内存8GB16GB 及以上
磁盘SATA SSDNVMe SSD

部署 Milvus

Milvus 可根据服务器资源和运维方式选择独立部署,或并入 HAP 部署。

方案一:独立服务器部署

适用于有独立服务器或希望将向量数据库与 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: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 可复用现有 MinIO,无需单独部署。操作方式:

    1. docker-compose.yaml 中删除 minio 服务定义
    2. milvus 服务中删除 depends_on 里的 - minio
    3. 修改 milvus 服务中以下环境变量:
      • MINIO_ADDRESS:改为现有 MinIO 服务地址(如 192.168.1.100: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":{}} 表示修改成功。

方案二: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

    编辑 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: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.yamlapp 服务下新增环境变量。请根据 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 重启服务,等待命令执行完成