如何启用向量知识库功能
向量知识库为本产品的扩展模块,用于为工作表提供向量检索与语义搜索能力,用户可根据实际需求选择是否启用。
⚠️ 注意:向量知识库功能需购买「超级搜索」授权许可证,否则部署完成后仍无法创建知识库。
环境要求
启用前请确保服务器满足以下条件(强烈建议使用独立服务器部署):
Milvus 单机模式运行包含
Milvus、MinIO、etcd三个组件,总内存占用约 6~8GB。可用内存低于 12GB 的服务器不建议启用该功能。
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| Docker | 20.10.16 及以上 | — |
| CPU | 4 核(支持 SSE4.2 / AVX 指令集) | 8 核及以上 |
| 空余内存 | 12GB | 32GB 及以上 |
| 磁盘 | SATA SSD | NVMe SSD |
部署 Milvus
Milvus 可根据服务器资源和运维方式选择独立部署,或 并入 HAP 部署。
方案一:独立服务器部署
适用于有独立服务器或希望将向量数据库与 HAP 主服务分开维护的场景。
安装 Docker 与 Docker Compose
-
安装 Docker
- Linux amd64
- Linux arm64
安装 Docker,可参考官方对不同 Linux 版本的 安装说明 或参考部署示例中的 Docker 安装章节。
安装 Docker,可参考官方对不同 Linux 版本的 安装说明 或参考部署示例中的 Docker 安装章节。
-
下载 Docker Compose 二进制文件
- Linux amd64
- Linux arm64
wget https://pdpublic.nocoly.com/offline/common/docker-compose-linux-x86_64wget https://pdpublic.nocoly.com/offline/common/arm64/docker-compose-linux-aarch64 -
移至二进制文件存储路径
- Linux amd64
- Linux arm64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-composemv docker-compose-linux-aarch64 /usr/local/bin/docker-compose -
添加可执行权限
chmod +x /usr/local/bin/docker-compose
部署 Milvus
-
拉取镜像(离线包下载)
- Linux amd64
- Linux arm64
docker pull nocoly/etcd:v3.5.25docker pull nocoly/minio:RELEASE.2025-04-22T22-12-26Zdocker pull nocoly/milvus:v2.6.14docker pull nocoly/etcd-arm64:v3.5.25docker pull nocoly/minio-arm64:RELEASE.2025-04-22T22-12-26Zdocker pull nocoly/milvus-arm64:v2.6.14 -
创建数据目录
定义 milvus 部署路径,以
/data/hap/script为例mkdir -p /data/hap/script在部署路径下创建对应数据挂载目录
cd /data/hap/scriptmkdir -p ./volume/data/milvus/{etcd,minio,data} -
在部署路径下创建
milvus.yaml- Linux amd64
- Linux arm64
version: "3.5"services:etcd:container_name: milvus-etcdrestart: alwaysimage: nocoly/etcd:v3.5.25environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ./volume/data/milvus/etcd:/etcdcommand: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:container_name: milvus-miniorestart: alwaysimage: nocoly/minio:RELEASE.2025-04-22T22-12-26Zenvironment:MINIO_ROOT_USER: minioadminMINIO_ROOT_PASSWORD: minioadminvolumes:- ./volume/data/milvus/minio:/minio_datacommand: minio server /minio_data --console-address ":9001"milvus:container_name: milvus-standalonerestart: alwaysimage: nocoly/milvus:v2.6.14command: ["milvus", "run", "standalone"]security_opt:- seccomp:unconfinedenvironment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minioMINIO_PORT: "9000"MINIO_ACCESS_KEY_ID: minioadminMINIO_SECRET_ACCESS_KEY: minioadminMINIO_BUCKET_NAME: mdmilvusCOMMON_SECURITY_AUTHORIZATIONENABLED: "true"MQ_TYPE: woodpeckervolumes:- ./volume/data/milvus/data:/var/lib/milvusports:- 19530:19530depends_on:- etcd- minioversion: "3.5"services:etcd:container_name: milvus-etcdrestart: alwaysimage: nocoly/etcd-arm64:v3.5.25environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ./volume/data/milvus/etcd:/etcdcommand: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:container_name: milvus-miniorestart: alwaysimage: nocoly/minio-arm64:RELEASE.2025-04-22T22-12-26Zenvironment:MINIO_ROOT_USER: minioadminMINIO_ROOT_PASSWORD: minioadminvolumes:- ./volume/data/milvus/minio:/minio_datacommand: minio server /minio_data --console-address ":9001"milvus:container_name: milvus-standalonerestart: alwaysimage: nocoly/milvus-arm64:v2.6.14command: ["milvus", "run", "standalone"]security_opt:- seccomp:unconfinedenvironment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minioMINIO_PORT: "9000"MINIO_ACCESS_KEY_ID: minioadminMINIO_SECRET_ACCESS_KEY: minioadminMINIO_BUCKET_NAME: mdmilvusCOMMON_SECURITY_AUTHORIZATIONENABLED: "true"MQ_TYPE: woodpeckervolumes:- ./volume/data/milvus/data:/var/lib/milvusports:- 19530:19530depends_on:- etcd- minio复用现有 MinIO 服务(可选)
如果本产品部署时已存在 MinIO 服务,Milvus 可复用现有 MinIO,无需单独部署。操作方式:
- 在
docker-compose.yaml中删除minio服务定义 - 在
milvus服务中删除depends_on里的- minio - 修改
milvus服务中以下环境变量:MINIO_ADDRESS:改为现有 MinIO 服务地址(如192.168.1.100)MINIO_PORT:改为现有 MinIO 服务端口(如9000)MINIO_ACCESS_KEY_ID:改为现有 MinIO 的 Access KeyMINIO_SECRET_ACCESS_KEY:改为现有 MinIO 的 Secret KeyMINIO_BUCKET_NAME:建议保持mdmilvus,Milvus 会自动创建
-
启动服务
docker-compose -f milvus.yaml up -d-
后续如需停止 Milvus 服务,可执行:
docker-compose -f milvus.yaml down
-
-
修改 Milvus 默认密码(必须)
Milvus 默认账号:
- 用户名:
root - 密码:
Milvus
首次启动后必须修改默认密码。执行以下命令时,请将
your_password替换为实际密码,并妥善保存。docker exec -it milvus-standalone bashTOKEN=$(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
-
拉取镜像(离线包下载)
- Linux amd64
- Linux arm64
docker pull nocoly/etcd:v3.5.25docker pull nocoly/minio:RELEASE.2025-04-22T22-12-26Zdocker pull nocoly/milvus:v2.6.14docker pull nocoly/etcd-arm64:v3.5.25docker pull nocoly/minio-arm64:RELEASE.2025-04-22T22-12-26Zdocker pull nocoly/milvus-arm64:v2.6.14 -
创建数据挂载目录
mkdir -p /data/hap/script/volume/data/milvus/{etcd,minio,data} -
执行下方命令,检查是否有输出包含关键字
start minio的一行内容docker logs $(docker ps | grep sc | awk '{print $1}') | grep minio根据命令输出选择对应页签:包含
start minio时选择“有输出”;没有任何输出时选择“无输出”,并按页签说明修改配置。- 有输出
- 无输出
编辑 HAP 服务
docker-compose.yaml配置文件(默认路径:/data/hap/script/docker-compose.yaml),新增以下服务- Linux amd64
- Linux arm64
etcd:container_name: milvus-etcdimage: nocoly/etcd:v3.5.25environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ./volume/data/milvus/etcd:/etcdcommand: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdmilvus:container_name: milvus-standaloneimage: nocoly/milvus:v2.6.14command: ["milvus", "run", "standalone"]security_opt:- seccomp:unconfinedenvironment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: scMINIO_PORT: "9010"MINIO_ACCESS_KEY_ID: mdstorageMINIO_SECRET_ACCESS_KEY: eBxExGQJNhGosgv5FQJiVNqHMINIO_BUCKET_NAME: mdmilvusCOMMON_SECURITY_AUTHORIZATIONENABLED: "true"MQ_TYPE: woodpeckervolumes:- ./volume/data/milvus/data:/var/lib/milvusdepends_on:- etcdetcd:container_name: milvus-etcdimage: nocoly/etcd-arm64:v3.5.25environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ./volume/data/milvus/etcd:/etcdcommand: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdmilvus:container_name: milvus-standaloneimage: nocoly/milvus-arm64:v2.6.14command: ["milvus", "run", "standalone"]security_opt:- seccomp:unconfinedenvironment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: scMINIO_PORT: "9010"MINIO_ACCESS_KEY_ID: mdstorageMINIO_SECRET_ACCESS_KEY: eBxExGQJNhGosgv5FQJiVNqHMINIO_BUCKET_NAME: mdmilvusCOMMON_SECURITY_AUTHORIZATIONENABLED: "true"MQ_TYPE: woodpeckervolumes:- ./volume/data/milvus/data:/var/lib/milvusdepends_on:- etcd编辑 HAP 服务
docker-compose.yaml配置文件(默认路径:/data/hap/script/docker-compose.yaml),新增以下服务- Linux amd64
- Linux arm64
etcd:container_name: milvus-etcdimage: nocoly/etcd:v3.5.25environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ./volume/data/milvus/etcd:/etcdcommand: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:container_name: milvus-minioimage: nocoly/minio:RELEASE.2025-04-22T22-12-26Zenvironment:MINIO_ROOT_USER: minioadminMINIO_ROOT_PASSWORD: minioadminvolumes:- ./volume/data/milvus/minio:/minio_datacommand: minio server /minio_data --console-address ":9001"milvus:container_name: milvus-standaloneimage: nocoly/milvus:v2.6.14command: ["milvus", "run", "standalone"]security_opt:- seccomp:unconfinedenvironment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minioMINIO_PORT: "9000"MINIO_ACCESS_KEY_ID: minioadminMINIO_SECRET_ACCESS_KEY: minioadminMINIO_BUCKET_NAME: mdmilvusCOMMON_SECURITY_AUTHORIZATIONENABLED: "true"MQ_TYPE: woodpeckervolumes:- ./volume/data/milvus/data:/var/lib/milvusdepends_on:- etcd- minioetcd:container_name: milvus-etcdimage: nocoly/etcd-arm64:v3.5.25environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ./volume/data/milvus/etcd:/etcdcommand: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdminio:container_name: milvus-minioimage: nocoly/minio-arm64:RELEASE.2025-04-22T22-12-26Zenvironment:MINIO_ROOT_USER: minioadminMINIO_ROOT_PASSWORD: minioadminvolumes:- ./volume/data/milvus/minio:/minio_datacommand: minio server /minio_data --console-address ":9001"milvus:container_name: milvus-standaloneimage: nocoly/milvus-arm64:v2.6.14command: ["milvus", "run", "standalone"]security_opt:- seccomp:unconfinedenvironment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minioMINIO_PORT: "9000"MINIO_ACCESS_KEY_ID: minioadminMINIO_SECRET_ACCESS_KEY: minioadminMINIO_BUCKET_NAME: mdmilvusCOMMON_SECURITY_AUTHORIZATIONENABLED: "true"MQ_TYPE: woodpeckervolumes:- ./volume/data/milvus/data:/var/lib/milvusdepends_on:- etcd- minio -
重启 HAP 服务
bash ./service.sh restartall -
修改 Milvus 默认密码(必须)
Milvus 默认账号:
- 用户名:
root - 密码:
Milvus
首次启动后必须修改默认密码。执行以下命令时,请将
your_password替换为实际密码,并妥善保存。docker exec -it milvus-standalone bashTOKEN=$(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 主服务。
-
在 HAP 服务器拉取 rag 服务镜像(离线包下载)
- Linux amd64
- Linux arm64
docker pull nocoly/rag:1.0.0docker pull nocoly/rag-arm64:1.0.0 -
增加 rag 服务
在 HAP 主服务配置文件
docker-compose.yaml中追加:- Linux amd64
- Linux arm64
rag:image: nocoly/rag:1.0.0environment:<<: *app-environmentrag:image: nocoly/rag-arm64:1.0.0environment:<<: *app-environment -
新增环境变量
在 HAP 主服务配置文件
docker-compose.yaml的app服务下新增环境变量。请根据 Milvus 部署方式选择对应配置:- Milvus 独立服务器部署
- Milvus 并入 HAP 部署
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"app:environment:ENV_RAG_ENABLE: "true"ENV_MILVUS_URL: "http://milvus:19530"ENV_MILVUS_DATABASE: "default"ENV_MILVUS_USERNAME: "root"ENV_MILVUS_PASSWORD: "your_password"注意将
ENV_MILVUS_PASSWORD环境变量值修改为前面自定义的 Milvus 密码。 -
在管理器根目录下执行
bash ./service.sh restartall重启服务,等待命令执行完成