AI 助手相关配置
向量库服务
请联系售后人员获取部署脚本
脚本部署
部署包包含 deploy.sh、Compose 文件、发布版本清单和离线资源;配置、模型及数据库数据与部署包分离保存。请勿直接执行 docker compose up,请统一通过 deploy.sh 操作。
部署包可放在任意目录,例如:
/opt/vector-server-release/
├── deploy.sh
├── docker-compose.yaml
├── release.env
├── hsenv
└── artifacts/默认运行数据目录为:
/var/lib/vector-server/
├── config/
│ └── .env
└── models/PostgreSQL 数据保存在 Compose 项目 vector-server 的 Docker volume 中。升级部署包时,请勿删除 /var/lib/vector-server/ 或 PostgreSQL volume。
首次部署
cd /opt/vector-server-release
./deploy.sh -m check
./deploy.sh -m start启动脚本会检查环境、初始化配置、准备镜像和模型、处理容器名及端口冲突、创建 vectorize 扩展,并输出实际连接信息。
离线部署
离线环境请将镜像和模型放入部署包的 artifacts/ 目录:
artifacts/
├── vectorize-pg-<version>.tar
├── vector-serve-<version>.tar
└── models--intfloat--multilingual-e5-base.tar.gz若 Docker 尚未安装,还需准备 Docker 与 Docker Compose 的离线安装包。执行部署前设置离线模式:
cd /opt/vector-server-release
export OFFLINE_NETWORK=true
./deploy.sh -m check
./deploy.sh -m start缺少镜像或模型时,脚本会提示所需文件并停止,不会继续启动服务。
配置与端口
固定配置文件位于 /var/lib/vector-server/config/.env。常用配置如下:
COMPOSE_PROJECT_NAME=vector-server
VECTOR_SERVER_DATA_DIR=/var/lib/vector-server
VECTOR_SERVER_CONFIG_DIR=/var/lib/vector-server/config
MODEL_BASE_DIR=/var/lib/vector-server/models
VECTORIZE_PG_EXPOSE_PORT=54321
VECTOR_SERVE_EXPOSE_PORT=3000
VECTORIZE_POSTGRES_DEFAULT_CONTAINER_NAME="vector-server_vectorize-pg"
VECTOR_SERVE_API_DEFAULT_CONTAINER_NAME="vector-server_vector-serve-api"如需将运行数据保存在独立磁盘,可调整上述三个目录,例如:
VECTOR_SERVER_DATA_DIR=/data/vector-server
VECTOR_SERVER_CONFIG_DIR=/data/vector-server/config
MODEL_BASE_DIR=/data/vector-server/models生产环境不建议将配置和模型放在部署包目录。start 和 upgrade 会自动检查容器名与端口冲突:发生冲突时会生成可用名称或从 20000-59999 选择空闲端口,并写回固定配置文件。请以启动日志和 .env 中记录的实际端口为准。
升级与迁移
已使用固定数据目录的服务可使用新部署包执行升级:
cd /opt/vector-server-release-new
./deploy.sh -m check
./deploy.sh -m upgrade升级会保留配置、模型、容器名、端口及 PostgreSQL volume。升级前不要执行 ./deploy.sh -m down,也不要删除运行数据目录或 PostgreSQL volume。
旧版本若将 .env 和模型存放在旧部署目录,首次迁移时可执行:
cd /opt/vector-server-release-new
./deploy.sh -m upgrade --legacy-dir /opt/vectorize-pg--legacy-dir 仅用于首次迁移,后续升级无需再次指定。
常用命令
# 环境检查
./deploy.sh -m check
# 准备镜像、模型和配置,不启动服务
./deploy.sh -m prepare
# 首次启动或普通启动
./deploy.sh -m start
# 升级已部署服务
./deploy.sh -m upgrade
# 停止或重启服务(保留数据)
./deploy.sh -m stop
./deploy.sh -m restart
# 查看状态或最近 100 行日志
./deploy.sh -m status
./deploy.sh -m logs
# 删除容器和网络,默认保留 named volume
./deploy.sh -m downk8s部署
部署vector-serve和vector-postgres
kubectl -n [namespace] apply -f vectorize-pg.yaml -f vector-serve.yaml请注意
部署前请确认当前集群使用的存储系统,根据需要修改部署文件vector-serve中的存储配置。默认longhorn
拷贝模型文件(请联系售后人员获取下载链接)
kubectl -n [namespace] cp models--intfloat--multilingual-e5-base.tar.gz vector-serve-xxxx:/root/.cache/huggingface/hub/
kubectl -n [namespace] exec -t vector-serve-xxxx -- bash -c "cd /root/.cache/huggingface/hub && tar xf models--intfloat--multilingual-e5-base.tar.gz"更改 hengshi 服务配置(需重启 hengshi 服务)
单机部署
修改/opt/hengshi/conf/hengshi-sense-env.sh 文件
取消VECTOR_DB_URL和VECTOR_ENDPOINT 变量的注释
export VECTOR_DB_URL="jdbc:postgresql://<SERVER_IP>:54321/postgres?user=postgres&password=postgres&useUnicode=true&characterEncoding=utf8"
export VECTOR_ENDPOINT="http://<SERVER_IP>:3000/v1/embeddings"docker部署
进入部署目录 docker-compose-x.x,使用vi/vim 打开.env文件增加以下参数。
# VECTOR_DB
VECTOR_DB_URL=jdbc:postgresql://<SERVER_IP>:54321/postgres?user=postgres&password=postgres&useUnicode=true&characterEncoding=utf8
VECTOR_ENDPOINT=http://<SERVER_IP>:3000/v1/embeddingsk8s部署
编辑hengshi所部署的命名空间下名为"hengshi-sense"的configmap, 增加以下参数。
VECTOR_DB_URL: "jdbc:postgresql://<SERVER_IP>:54321/postgres?user=postgres&password=postgres&useUnicode=true&characterEncoding=utf8"
VECTOR_ENDPOINT: "http://<SERVER_IP>:3000/v1/embeddings"注意:
请将<SERVER_IP>替换成部署机器的IP地址,可通过ifconfig 命令查看当前机器的IP地址。
k8s部署可配置为Service的地址,例如vector-serve和vectorize-pg 也可使用NodeIP+NodePort的形式进行配置。
重启操作
单机
# 请注意路径更换成当前部署的hengshi路径,默认为/opt/hengshi
/opt/hengshi/bin/hengshi-sense-bin restart hengshidocker
# docker部署请执行docker-compose down 再docker-compose up -d 重新应用更改的新配置
cd docker-compose-x.x
docker-compose down
docker-compose up -dk8s
# 请替换[namespace]为实际部署的命名空间,replicas为实际部署的pod数量,默认1
kubectl -n [namespace] scale deployment hengshi --replicas=0
kubectl -n [namespace] scale deployment hengshi --replicas=1常见错误
脚本部署启动失败或服务不可用
请先在部署包目录依次执行以下命令:
./deploy.sh -m check
./deploy.sh -m status
./deploy.sh -m logs确认 Docker、Compose、镜像和模型均已就绪。离线环境请确认 artifacts/ 下的镜像和模型文件完整,并已设置 OFFLINE_NETWORK=true。如服务因端口或容器名冲突而调整过配置,请从 /var/lib/vector-server/config/.env 或启动日志获取实际端口,再更新 Hengshi 的 VECTOR_DB_URL 和 VECTOR_ENDPOINT。
query vector db fail
通常此问题是vector-serve与vector-postgres之间无法通信导致, 可以使用以下方法来确认是否正常
- 通过请求vector-serve接口确认
# 在hengshi所在服务器上执行
# docker/k8s 部署请进入hengshi-sense的容器内执行
curl -X POST http://localhost:3000/v1/embeddings -H 'Content-Type: application/json' -d '{"input": [" abc"],"model": "intfloat/multilingual-e5-base"}'
# 正常会返回以下信息;
{"data":[{"embedding":[-0.003002965124323964,0.03069210797548294,-0.002330577466636896,0.03642740473151207,0.019268367439508438,-0.007615369278937578,-0.03148505836725235,-0.012897394597530365,0.04027864709496498,0.039263855665922165,0.0038333579432219267,-0.02870958484709263,0.0900445431470871,-0.005433060694485903,-0.028027791529893875,-0.0381585918366909,0.013700217008590698,-0.03247552365064621,0.05149281769990921,0.006922998931258917,0.07466138899326324,-0.050848592072725296,0.037725191563367844,-0.025164397433400154,0.03877019137144089,-0.024159127846360207,0.023425891995429993,0.0228315070271492,-0.054315488785505295,0.05397752672433853,0.03425733000040054,-0.05478481948375702,0.03427012637257576"index":0}],"model":"intfloat/multilingual-e5-base"}- 通过vector的查询sql确认
# docker部署 进入vector-postgres容器
docker ps | grep "postgres-vectorize"
docker exec -it <container_id> bash
# 执行psql命令进入sql控制台
psql (16.3 (Debian 16.3-1.pgdg120+1))
Type "help" for help.
postgres=# select vectorize.transform_embeddings(input => 'abc', model_name => 'intfloat/multilingual-e5-base')::TEXT;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{-0.003002965124323964,0.03069210797548294,-0.002330577466636896,0.03642740473151207,0.01926836743950844,-0.007615369278937578,-0.03148505836725235,-0.012897394597530363,0.04027864709496498,0.039263855665922165,0.0038333579432219263,-0.02870958484709263,0.0900445431470871,-0.005433060694485903,-0.028027791529893875,-0.0381585918366909,0.013700217008590698,-0.03247552365064621,0.05149281769990921,0.006922998931258917,0.07466138899326324,-0.050848592072725296,0.03772519156336784,-0.02516439743340015,0.03877019137144089,-0.024159127846360207,0.023425891995429993,0.0228315070271492,-0.054315488785505295,0.05397752672433853,0.03425733000040054,-0.05478481948375702,0.03427012637257576,0.018632836639881138,0.04853101447224617,0.00798027589917183,-0.00742304464802146,-0.03389187157154083,0.# k8s部署 进入vector-postgres容器
kubectl -n [namespace] exec -it vectorize-pg-xxxx -- bash
# 执行psql命令进入sql控制台
psql (16.3 (Debian 16.3-1.pgdg120+1))
Type "help" for help.
postgres=# select vectorize.transform_embeddings(input => 'abc', model_name => 'intfloat/multilingual-e5-base')::TEXT;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{-0.003002965124323964,0.03069210797548294,-0.002330577466636896,0.03642740473151207,0.01926836743950844,-0.007615369278937578,-0.03148505836725235,-0.012897394597530363,0.04027864709496498,0.039263855665922165,0.0038333579432219263,-0.02870958484709263,0.0900445431470871,-0.005433060694485903,-0.028027791529893875,-0.0381585918366909,0.013700217008590698,-0.03247552365064621,0.05149281769990921,0.006922998931258917,0.07466138899326324,-0.050848592072725296,0.03772519156336784,-0.02516439743340015,0.03877019137144089,-0.024159127846360207,0.023425891995429993,0.0228315070271492,-0.054315488785505295,0.05397752672433853,0.03425733000040054,-0.05478481948375702,0.03427012637257576,0.018632836639881138,0.04853101447224617,0.00798027589917183,-0.00742304464802146,-0.03389187157154083,0.