AI 助手相关配置
向量库服务
请联系售后人员获取部署脚本
脚本部署
启动服务
bash
bash deploy.sh -m start
# 当看到 "start success" 字样表示服务启动正常
停止服务
bash
bash deploy.sh -m stop
停止服务(清理容器)
bash
bash deploy.sh -m down
查看运行状态
bash
bash deploy.sh -m status
k8s部署
部署vector-serve和vector-postgres
shell
kubectl -n [namespace] apply -f vectorize-pg.yaml -f vector-serve.yaml
请注意
部署前请确认当前集群使用的存储系统,根据需要修改部署文件vector-serve中的存储配置。默认longhorn
拷贝模型文件(请联系售后人员获取下载链接)
shell
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
变量的注释
bash
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文件增加以下参数。
bash
# 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/embeddings
k8s部署
编辑hengshi所部署的命名空间下名为"hengshi-sense"的configmap, 增加以下参数。
yaml
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的形式进行配置。
重启操作
单机
bash
# 请注意路径更换成当前部署的hengshi路径,默认为/opt/hengshi
/opt/hengshi/bin/hengshi-sense-bin restart hengshi
docker
bash
# docker部署请执行docker-compose down 再docker-compose up -d 重新应用更改的新配置
cd docker-compose-x.x
docker-compose down
docker-compose up -d
k8s
bash
# 请替换[namespace]为实际部署的命名空间,replicas为实际部署的pod数量,默认1
kubectl -n [namespace] scale deployment hengshi --replicas=0
kubectl -n [namespace] scale deployment hengshi --replicas=1
常见错误
query vector db fail
通常此问题是vector-serve与vector-postgres之间无法通信导致, 可以使用以下方法来确认是否正常
- 通过请求vector-serve接口确认
shell
# 在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确认
shell
# 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.
shell
# 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.