79、昇腾系列服务器/昇腾系列推理卡/昇腾系列嵌入式开发板+Dify部署DeepSee ...

打印 上一主题 下一主题

主题 866|帖子 866|积分 2598

根本头脑:使用昇腾NPU处理芯片+昇腾Mindie推理框架+embeding分词+排序举行dify支撑,对外部客户使用,因为整套华为昇腾处理架构为aarch64位,所以团体docker镜像使用arm镜像,本教程以Atlas 800 9000为底子举行部署和测试,本博客的时间点为2025年2月23日,镜像文件和教程仅限于目前官方支持的驱动版本,后续官方有版本更新,一切以昇腾官网为基准;目前测试昇腾的硬件平台都是支持本文部署,抛开项目配景,举行简要部署记录,所有部署一定要以华为的硬件为底子;
第一步:先向昇腾方申请装备,申请到Atlas 800 9000服务器,使用昇腾官方提供的账号和暗码包管可以登录上服务器;

(1)更新一下驱动,因为昇腾官方的提供的镜像必要指定版本的驱动固件,下载安装更新 Version: 23.0.rc2将会变动为Version: 23.0.0,下载地址:社区版-固件与驱动-昇腾社区

更新安装固件,并更新固件,重启装备
  1. [root@dify HwHiAiUser]# pwd
  2. /home/HwHiAiUser
  3. [root@dify HwHiAiUser]# ls -l
  4. total 131112
  5. -rw------- 1 root root 134251528 Dec  7 16:16 Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run
  6. [root@dify HwHiAiUser]# chmod 777 Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run
  7. [root@dify HwHiAiUser]# ls
  8. Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run
  9. [root@dify HwHiAiUser]# sudo ./Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run --full --force
  10. Verifying archive integrity...  100%   SHA256 checksums are OK. All good.
  11. Uncompressing ASCEND DRIVER RUN PACKAGE  100%
  12. [Driver] [2025-02-23 15:46:26] [INFO]Start time: 2025-02-23 15:46:26
  13. [Driver] [2025-02-23 15:46:26] [INFO]LogFile: /var/log/ascend_seclog/ascend_install.log
  14. [Driver] [2025-02-23 15:46:26] [INFO]OperationLogFile: /var/log/ascend_seclog/operation.log
  15. [Driver] [2025-02-23 15:46:26] [INFO]base version is 23.0.rc2.
  16. [Driver] [2025-02-23 15:46:26] [WARNING]Do not power off or restart the system during the installation/upgrade
  17. [Driver] [2025-02-23 15:46:26] [INFO]set username and usergroup, HwHiAiUser:HwHiAiUser
  18. [Driver] [2025-02-23 15:46:26] [INFO]Driver package has been installed on the path /usr/local/Ascend, the version is 23.0.rc2, and the version of this package is 23.0.0,do you want to continue?  [y/n]
  19. y
  20. [Driver] [2025-02-23 15:46:36] [INFO]driver install type: Direct
  21. [Driver] [2025-02-23 15:46:36] [INFO]upgradePercentage:10%
  22. [Driver] [2025-02-23 15:46:40] [INFO]upgradePercentage:30%
  23. [Driver] [2025-02-23 15:46:40] [INFO]upgradePercentage:40%
  24. [Driver] [2025-02-23 15:46:42] [INFO]upgradePercentage:90%
  25. [Driver] [2025-02-23 15:46:45] [INFO]upgradePercentage:100%
  26. [Driver] [2025-02-23 15:46:45] [INFO]Driver package installed successfully! Reboot needed for installation/upgrade to take effect!
  27. [Driver] [2025-02-23 15:46:45] [INFO]End time: 2025-02-23 15:46:45
  28. [root@dify HwHiAiUser]# sudo reboot
复制代码
固件更新完成,查看驱动版本为Version: 23.0.0

(2)将底子模型先下载下来,一会举行挂载推理模型,分词模型、到排序模型,举行使用 ,可以去魔搭社区下载ModelScope魔搭社区,先下载模型:DeepSeek-R1-Distill-Qwen-32B ,下载使用方式参考官方引导方式即可;

使用python脚本下载模型
  1. [root@dify HwHiAiUser]# pwd
  2. /home/HwHiAiUser
  3. [root@dify HwHiAiUser]# pip3 install modelscope==1.18.0 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
  4. [root@dify HwHiAiUser]# python3
  5. Python 3.7.0 (default, May 11 2024, 10:32:14)
  6. [GCC 7.3.0] on linux
  7. Type "help", "copyright", "credits" or "license" for more information.
  8. >>> import modelscope
  9. >>> exit()
  10. [root@dify HwHiAiUser]# cat down.py
  11. #模型下载
  12. from modelscope import snapshot_download
  13. model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-32B',cache_dir=".")
  14. [root@dify HwHiAiUser]# python3 down.py
  15. Downloading [figures/benchmark.jpg]: 100%|██████████████████████████████████████████████████████████████████████| 759k/759k [00:00<00:00, 1.78MB/s]
  16. Downloading [config.json]: 100%|██████████████████████████████████████████████████████████████████████████████████| 664/664 [00:00<00:00, 2.10kB/s]
  17. Downloading [configuration.json]: 100%|███████████████████████████████████████████████████████████████████████████| 73.0/73.0 [00:00<00:00, 233B/s]
  18. Downloading [generation_config.json]: 100%|█████████████████████████████████████████████████████████████████████████| 181/181 [00:00<00:00, 686B/s]
  19. Downloading [LICENSE]: 100%|██████████████████████████████████████████████████████████████████████████████████| 1.04k/1.04k [00:00<00:00, 2.92kB/s]
  20. Downloading [model-00001-of-000008.safetensors]:   0%|                                                        | 1.00M/8.19G [00:00<59:21, 2.47MB/s]Downloading [model-00001-of-000008.safetensors]:   0%|                                                        | 16.0M/8.19G [00:00<03:43, 39.3MB/s]
复制代码
下载完成,查看权重目次
  1. [root@dify HwHiAiUser]# pwd
  2. /home/HwHiAiUser
  3. [root@dify HwHiAiUser]# tree -L 2
  4. .
  5. ├── Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run
  6. ├── deepseek-ai
  7. │   ├── DeepSeek-R1-Distill-Qwen-32B
  8. │  
  9. └── down.py
  10. 3 directories, 3 files
复制代码
二、使用官方镜像 昇腾镜像堆栈详情,举行昇腾MindIE环境构建,因为计划测试DeepSeek-R1-Distill-Qwen-32B-W8A8模型,所以记得创建容器挂载两张卡即可
(1)拉取Atals 800 9000镜像,发起从官方拉取,自己要根据自己的机型拉取对应的镜像

也可以从下面的公开链接拉取镜像,创建双卡容器
  1. [root@dify HwHiAiUser]#yum install docker
  2. [root@dify HwHiAiUser]# docker pull swr.cn-east-317.qdrgznjszx.com/qd-aicc/mindie:910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.02
  3. Error response from daemon: Get https://swr.cn-east-317.qdrgznjszx.com/v2/: x509: certificate signed by unknown authority
  4. [root@dify HwHiAiUser]#
复制代码
修改配置源,添加mindie的镜像源;
  1. 解决办法:
  2. [root@dify HwHiAiUser]#vim /etc/docker/daemon.json
  3. 填入内容
  4. { "insecure-registries": ["https://swr.cn-east-317.qdrgznjszx.com"], "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
  5. 保存退出、然后重启docker即可
  6. [root@dify HwHiAiUser]# systemctl restart docker.service
  7. [root@dify HwHiAiUser]# docker pull swr.cn-east-317.qdrgznjszx.com/qd-aicc/mindie:910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.02
  8. 910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.02: Pulling from qd-aicc/mindie
  9. edab87ea811e: Pull complete
  10. 72906c864c93: Pull complete
  11. 98f62a370e96: Pull complete
  12. Digest: sha256:6ceefe4506f58084717ec9bed7df75e51032fdd709d791a627084fe4bd92abea
  13. Status: Downloaded newer image for swr.cn-east-317.qdrgznjszx.com/qd-aicc/mindie:910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.02
  14. [root@dify HwHiAiUser]#
复制代码
创建容器,进入容器,计划使用两张昇腾NPU卡推理DeepSeek-R1-Distill-Qwen-32B的W8A8模型,所以构建的容器用两张卡,选6、7卡吧,0-6号卡可以跑文本嵌入模型、重排序模型;创建容器脚本
  1. [root@dify ~]# cd /home/HwHiAiUser/
  2. [root@dify HwHiAiUser]# ls
  3. Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run  deepseek-ai  down.py
  4. [root@dify HwHiAiUser]# docker images
  5. REPOSITORY                                      TAG                                                                                IMAGE ID            CREATED             SIZE
  6. swr.cn-east-317.qdrgznjszx.com/qd-aicc/mindie   910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.02   69f30d0c15be        5 weeks ago         16.5GB
  7. [root@dify HwHiAiUser]# vim docker_run.sh
  8. [root@dify HwHiAiUser]# vim docker_run.sh
  9. [root@dify HwHiAiUser]# vim docker_run.sh
  10. [root@dify HwHiAiUser]# cat docker_run.sh
  11. #!/bin/bash
  12. docker_images=swr.cn-east-317.qdrgznjszx.com/qd-aicc/mindie:910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.02
  13. model_dir=/home/HwHiAiUser #根据实际情况修改挂载目录
  14. docker run -it --name qdaicc --ipc=host --net=host \
  15.         --device=/dev/davinci6 \
  16.         --device=/dev/davinci7 \
  17.         --device=/dev/davinci_manager \
  18.         --device=/dev/devmm_svm \
  19.         --device=/dev/hisi_hdc \
  20.         -v /usr/local/dcmi:/usr/local/dcmi \
  21.         -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
  22.         -v /usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/common \
  23.         -v /usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/driver/lib64/driver \
  24.         -v /etc/ascend_install.info:/etc/ascend_install.info \
  25.         -v /etc/vnpu.cfg:/etc/vnpu.cfg \
  26.         -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
  27.         -v ${model_dir}:${model_dir} \
  28.         -v  /var/log/npu:/usr/slog ${docker_images} \
  29.         /bin/bash
  30. [root@dify HwHiAiUser]#
复制代码
填进去内容如上,启动镜像
  1. [root@dify HwHiAiUser]# bash docker_run.sh
  2. (Python310) root@dify:/usr/local/Ascend/atb-models# cd /home/HwHiAiUser/
  3. (Python310) root@dify:/home/HwHiAiUser# ls
  4. Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run  deepseek-ai  docker_run.sh  down.py
复制代码
因为之前挂在的目次是 /home/HwHiAiUser/ ,所以可以在docker里面看到物理机的下载权重,再查看一下卡数是两张

(2)举行模型量化Ascend/ModelZoo-PyTorch - Gitee.com 直接进入量化阶段,在容器外面操作即可,环境不用管,因为系统已经默认配置了环境,直接跳到 权重量化 阶段,安装过程缺什么,,在docker外面git下源码,进入容器内部举行量化,这里的容器发起在创建个8卡的容器,双卡容器量化会体现npu显存不敷,除非你用cpu转模型,我就懒得创建容器了,使用cpu量化吧;
  1. [root@dify HwHiAiUser]# pwd
  2. /home/HwHiAiUser
  3. [root@dify HwHiAiUser]# git clone https://gitee.com/ascend/msit.git
  4. Cloning into 'msit'...
  5. remote: Enumerating objects: 81125, done.
  6. remote: Total 81125 (delta 0), reused 0 (delta 0), pack-reused 81125
  7. Receiving objects: 100% (81125/81125), 71.73 MiB | 12.14 MiB/s, done.
  8. Resolving deltas: 100% (59704/59704), done.
  9. [root@dify HwHiAiUser]# cd msit/
  10. .git/              .gitee/            msit/              msmodelslim/       msserviceprofiler/
  11. [root@dify Qwen]# docker start b5399c4da202
  12. b5399c4da202
  13. [root@dify Qwen]# docker exec -it b5399c4da202 /bin/bash
  14. (Python310) root@dify:/home/HwHiAiUser/msit# cd msmodelslim/
  15. (Python310) root@dify:/home/HwHiAiUser/msit/msmodelslim# bash install.sh
  16. #安装成功,pip缺啥安装啥
  17. (Python310) root@dify:/home/HwHiAiUser# cd /home/HwHiAiUser/msit/msmodelslim/example/Qwen
  18. #量化模型
  19. (Python310) root@dify:/home/HwHiAiUser/msit/msmodelslim/example/Qwen# python3 quant_qwen.py --model_path /home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B/ --save_directory /home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B-W8A8 --calib_file ../common/boolq.jsonl --w_bit 8 --a_bit 8 --device_type npu
  20. 2025-02-23 18:15:25,404 - msmodelslim-logger - WARNING - The current CANN version does not support LayerSelector quantile method.
  21. 或者cpu处理
  22. (Python310) root@dify:/home/HwHiAiUser/msit/msmodelslim/example/Qwen# python3 quant_qwen.py --model_path /home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B/ --save_directory /home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B-W8A8 --calib_file ../common/boolq.jsonl --w_bit 8 --a_bit 8 --device_type cpu
  23. 2025-02-23 18:25:10,776 - msmodelslim-logger - WARNING - The current CANN version does not support LayerSelector quantile method.
  24. 2025-02-23 18:25:10,783 - msmodelslim-logger - WARNING - `cpu` is set as `dev_type`, `dev_id` cannot be specified manually!
复制代码
转换完成之后生成权重文件
  1. (Python310) root@dify:/home/HwHiAiUser/deepseek-ai# cd /home/HwHiAiUser/msit/msmodelslim/example/Qwen
  2. (Python310) root@dify:/home/HwHiAiUser/msit/msmodelslim/example/Qwen# ls /home/HwHiAiUser/deepseek-ai/
  3. DeepSeek-R1-Distill-Qwen-32B  DeepSeek-R1-Distill-Qwen-32B-W8A8
  4. (Python310) root@dify:/home/HwHiAiUser/msit/msmodelslim/example/Qwen#
复制代码
因为Atlas 800 9000不支持bf16,所以修改float16,别的装备参考昇腾手册
  1. (Python310) root@dify:/home/HwHiAiUser/msit/msmodelslim/example/Qwen# vim /home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B-W8A8/config.json
  2. 该字段要设置为:"torch_dtype": "float16"
复制代码
(3)启动MindIE服务,先记录本机的ip地址,模型路径和以及模型名字

模型路径权重: /home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B-W8A8/
模型名字: DeepSeek-R1-Distill-Qwen-32B-W8A8
修改配置文件
  1. (Python310) root@dify:/usr/local/Ascend/mindie/latest/mindie-service# pwd
  2. /usr/local/Ascend/mindie/latest/mindie-service
  3. (Python310) root@dify:/usr/local/Ascend/mindie/latest/mindie-service# vim conf/config.json
复制代码
修改解释一下,ipAddress,主要为了背面搭建dify使用的推理引擎模型,别的参考mindie手册
MindSpore Models服务化使用-MindSpore Models使用-模型推理使用流程-MindIE LLM开发指南-大模型开发-MindIE1.0.0开发文档-昇腾社区
单机推理-配置MindIE Server-配置MindIE-MindIE安装指南-环境预备-MindIE1.0.0开发文档-昇腾社区
  1. "ipAddress" : "192.168.1.115", 改为本地地址
  2. "httpsEnabled" : false,
  3. "npuDeviceIds" : [[0,1]],
  4. "modelName" : "DeepSeek-R1-Distill-Qwen-32B-W8A8",
  5. "modelWeightPath" : "/home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B-W8A8/",
  6. "maxInputTokenLen" : 4096,
  7. "maxIterTimes" : 4096,
  8. "truncation" : true,
复制代码
修改内容如下:
  1. (Python310) root@dify:/usr/local/Ascend/mindie/latest/mindie-service# cat conf/config.json
  2. {
  3.     "Version" : "1.0.0",
  4.     "LogConfig" :
  5.     {
  6.         "logLevel" : "Info",
  7.         "logFileSize" : 20,
  8.         "logFileNum" : 20,
  9.         "logPath" : "logs/mindie-server.log"
  10.     },
  11.     "ServerConfig" :
  12.     {
  13.         "ipAddress" : "192.168.1.115",
  14.         "managementIpAddress" : "127.0.0.2",
  15.         "port" : 1025,
  16.         "managementPort" : 1026,
  17.         "metricsPort" : 1027,
  18.         "allowAllZeroIpListening" : false,
  19.         "maxLinkNum" : 1000,
  20.         "httpsEnabled" : false,
  21.         "fullTextEnabled" : false,
  22.         "tlsCaPath" : "security/ca/",
  23.         "tlsCaFile" : ["ca.pem"],
  24.         "tlsCert" : "security/certs/server.pem",
  25.         "tlsPk" : "security/keys/server.key.pem",
  26.         "tlsPkPwd" : "security/pass/key_pwd.txt",
  27.         "tlsCrlPath" : "security/certs/",
  28.         "tlsCrlFiles" : ["server_crl.pem"],
  29.         "managementTlsCaFile" : ["management_ca.pem"],
  30.         "managementTlsCert" : "security/certs/management/server.pem",
  31.         "managementTlsPk" : "security/keys/management/server.key.pem",
  32.         "managementTlsPkPwd" : "security/pass/management/key_pwd.txt",
  33.         "managementTlsCrlPath" : "security/management/certs/",
  34.         "managementTlsCrlFiles" : ["server_crl.pem"],
  35.         "kmcKsfMaster" : "tools/pmt/master/ksfa",
  36.         "kmcKsfStandby" : "tools/pmt/standby/ksfb",
  37.         "inferMode" : "standard",
  38.         "interCommTLSEnabled" : true,
  39.         "interCommPort" : 1121,
  40.         "interCommTlsCaPath" : "security/grpc/ca/",
  41.         "interCommTlsCaFiles" : ["ca.pem"],
  42.         "interCommTlsCert" : "security/grpc/certs/server.pem",
  43.         "interCommPk" : "security/grpc/keys/server.key.pem",
  44.         "interCommPkPwd" : "security/grpc/pass/key_pwd.txt",
  45.         "interCommTlsCrlPath" : "security/grpc/certs/",
  46.         "interCommTlsCrlFiles" : ["server_crl.pem"],
  47.         "openAiSupport" : "vllm"
  48.     },
  49.     "BackendConfig" : {
  50.         "backendName" : "mindieservice_llm_engine",
  51.         "modelInstanceNumber" : 1,
  52.         "npuDeviceIds" : [[0,1]],
  53.         "tokenizerProcessNumber" : 8,
  54.         "multiNodesInferEnabled" : false,
  55.         "multiNodesInferPort" : 1120,
  56.         "interNodeTLSEnabled" : true,
  57.         "interNodeTlsCaPath" : "security/grpc/ca/",
  58.         "interNodeTlsCaFiles" : ["ca.pem"],
  59.         "interNodeTlsCert" : "security/grpc/certs/server.pem",
  60.         "interNodeTlsPk" : "security/grpc/keys/server.key.pem",
  61.         "interNodeTlsPkPwd" : "security/grpc/pass/mindie_server_key_pwd.txt",
  62.         "interNodeTlsCrlPath" : "security/grpc/certs/",
  63.         "interNodeTlsCrlFiles" : ["server_crl.pem"],
  64.         "interNodeKmcKsfMaster" : "tools/pmt/master/ksfa",
  65.         "interNodeKmcKsfStandby" : "tools/pmt/standby/ksfb",
  66.         "ModelDeployConfig" :
  67.         {
  68.             "maxSeqLen" : 2560,
  69.             "maxInputTokenLen" : 4096,
  70.             "truncation" : true,
  71.             "ModelConfig" : [
  72.                 {
  73.                     "modelInstanceType" : "Standard",
  74.                     "modelName" : "DeepSeek-R1-Distill-Qwen-32B-W8A8",
  75.                     "modelWeightPath" : "/home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B-W8A8/",
  76.                     "worldSize" : 2,
  77.                     "cpuMemSize" : 5,
  78.                     "npuMemSize" : -1,
  79.                     "backendType" : "atb",
  80.                     "trustRemoteCode" : false
  81.                 }
  82.             ]
  83.         },
  84.         "ScheduleConfig" :
  85.         {
  86.             "templateType" : "Standard",
  87.             "templateName" : "Standard_LLM",
  88.             "cacheBlockSize" : 128,
  89.             "maxPrefillBatchSize" : 50,
  90.             "maxPrefillTokens" : 8192,
  91.             "prefillTimeMsPerReq" : 150,
  92.             "prefillPolicyType" : 0,
  93.             "decodeTimeMsPerReq" : 50,
  94.             "decodePolicyType" : 0,
  95.             "maxBatchSize" : 200,
  96.             "maxIterTimes" : 4096,
  97.             "maxPreemptCount" : 0,
  98.             "supportSelectBatch" : false,
  99.             "maxQueueDelayMicroseconds" : 5000
  100.         }
  101.     }
  102. }
复制代码
修改模型权限,启动服务
  1. (Python310) root@dify:/usr/local/Ascend/mindie/latest/mindie-service# chmod -R 750 /home/HwHiAiUser/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B-W8A8/
  2. (Python310) root@dify:/usr/local/Ascend/mindie/latest/mindie-service# ./bin/mindieservice_daemon
  3. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  4. [2025-02-23 19:04:44,279] [89160] [281464373506464] [llm] [INFO][logging.py-227] : Skip binding cpu.
  5. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  6. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  7. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  8. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  9. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  10. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  11. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  12. Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
  13. Daemon start success!
复制代码
重启一个终端,查看npu使用状况

本机测试
  1. [root@dify ~]# curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"inputs":"如何赚大钱","parameters":{"decoder_input_details":true,"details":true,"do_sample":true,"max_new_tokens":50,"repetition_penalty":1.03,"return_full_text":false,"seed":null,"temperature":0.5,"top_k":10,"top_p":0.95,"truncate":null,"typical_p":0.5,"watermark":false}}' http://192.168.1.115:1025/generate
  2. {"details":{"prompt_tokens":5,"finish_reason":"length","generated_tokens":50,"prefill":[{"id":151646,"logprob":null,"special":null,"text":null},{"id":100007,"logprob":null,"special":null,"text":null},{"id":102223,"logprob":null,"special":null,"text":null},{"id":26288,"logprob":null,"special":null,"text":null},{"id":99428,"logprob":null,"special":null,"text":null}],"seed":2240260787,"tokens":[{"id":26850,"logprob":null,"special":null,"text":null},{"id":100007,"logprob":null,"special":null,"text":null},{"id":102223,"logprob":null,"special":null,"text":null},{"id":26288,"logprob":null,"special":null,"text":null},{"id":99428,"logprob":null,"special":null,"text":null},{"id":11319,"logprob":null,"special":null,"text":null},{"id":1406,"logprob":null,"special":null,"text":null},{"id":151649,"logprob":null,"special":null,"text":null},{"id":271,"logprob":null,"special":null,"text":null},{"id":102223,"logprob":null,"special":null,"text":null},{"id":26288,"logprob":null,"special":null,"text":null},{"id":99428,"logprob":null,"special":null,"text":null},{"id":102119,"logprob":null,"special":null,"text":null},{"id":85106,"logprob":null,"special":null,"text":null},{"id":100374,"logprob":null,"special":null,"text":null},{"id":99605,"logprob":null,"special":null,"text":null},{"id":9370,"logprob":null,"special":null,"text":null},{"id":101139,"logprob":null,"special":null,"text":null},{"id":5373,"logprob":null,"special":null,"text":null},{"id":85329,"logprob":null,"special":null,"text":null},{"id":33108,"logprob":null,"special":null,"text":null},{"id":99345,"logprob":null,"special":null,"text":null},{"id":101135,"logprob":null,"special":null,"text":null},{"id":1773,"logprob":null,"special":null,"text":null},{"id":87752,"logprob":null,"special":null,"text":null},{"id":99639,"logprob":null,"special":null,"text":null},{"id":97084,"logprob":null,"special":null,"text":null},{"id":102716,"logprob":null,"special":null,"text":null},{"id":39907,"logprob":null,"special":null,"text":null},{"id":48443,"logprob":null,"special":null,"text":null},{"id":14374,"logprob":null,"special":null,"text":null},{"id":220,"logprob":null,"special":null,"text":null},{"id":16,"logprob":null,"special":null,"text":null},{"id":13,"logprob":null,"special":null,"text":null},{"id":3070,"logprob":null,"special":null,"text":null},{"id":99716,"logprob":null,"special":null,"text":null},{"id":102447,"logprob":null,"special":null,"text":null},{"id":1019,"logprob":null,"special":null,"text":null},{"id":256,"logprob":null,"special":null,"text":null},{"id":481,"logprob":null,"special":null,"text":null},{"id":3070,"logprob":null,"special":null,"text":null},{"id":104023,"logprob":null,"special":null,"text":null},{"id":5373,"logprob":null,"special":null,"text":null},{"id":100025,"logprob":null,"special":null,"text":null},{"id":334,"logprob":null,"special":null,"text":null},{"id":5122,"logprob":null,"special":null,"text":null},{"id":67338,"logprob":null,"special":null,"text":null},{"id":101930,"logprob":null,"special":null,"text":null},{"id":99716,"logprob":null,"special":null,"text":null},{"id":101172,"logprob":null,"special":null,"text":null}]},"generated_text":"?\n\n如何赚大钱?\n\n\n</think>\n\n赚大钱通常需要结合个人的技能、资源和市场机会。以下是一些常见的方法:\n\n### 1. **投资理财**\n   - **股票、基金**:通过长期投资优质"}[root@dify ~]#
复制代码
三、启动分词服务和重排序服务,首先去华为仓下载镜像 昇腾镜像堆栈详情, 对应自己的装备查找镜像

(1)拉取镜像Atlas 800 9000,一定要根据自己的硬件版本去官方仓拉取镜像,举行分词服务启动,新镜像以官方为主
  1. [root@dify ~]# docker pull swr.cn-east-317.qdrgznjszx.com/sxj731533730/mis-tei:6.0.RC3-910-aarch64
  2. [root@dify ~]# docker images
  3. REPOSITORY                                            TAG                                                                                IMAGE ID            CREATED             SIZE
  4. swr.cn-east-317.qdrgznjszx.com/sxj731533730/mis-tei   6.0.RC3-910-aarch64                                                                affece68b209        2 days ago          22.6GB
  5. swr.cn-east-317.qdrgznjszx.com/qd-aicc/mindie         910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.02   69f30d0c15be        5 weeks ago         16.5GB
  6. [root@dify ~]#
复制代码
拉取完镜像之后,举行必要的权重模型下载
  1. [root@dify ~]# cd /home/HwHiAiUser/
  2. [root@dify HwHiAiUser]# pwd
  3. /home/HwHiAiUser
  4. [root@dify HwHiAiUser]# vim down.py
  5. [root@dify HwHiAiUser]# cat down.py
  6. #模型下载
  7. from modelscope import snapshot_download
  8. model_dir = snapshot_download('BAAI/bge-m3',cache_dir=".")
  9. from modelscope import snapshot_download
  10. model_dir = snapshot_download('BAAI/bge-large-zh-v1.5',cache_dir=".")
  11. from modelscope import snapshot_download
  12. model_dir = snapshot_download('BAAI/bge-reranker-large',cache_dir=".")
  13. [root@dify HwHiAiUser]# python3 down.py
复制代码
下载完模型,修改每一个模型内部的配置项 Atlas800 9000/300I Duo/300V Pro装备,Atlas 800T A2等装备不用走该步骤
  1. [root@dify HwHiAiUser]# ls
  2. Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run  BAAI  deepseek-ai  docker_run.sh  down.py  msit
  3. [root@dify HwHiAiUser]# vim BAAI/bge-large-zh-v1___5/config.json
  4. [root@dify HwHiAiUser]# vim BAAI/bge-m3/config.json
  5. [root@dify HwHiAiUser]# vim BAAI/bge-reranker-large/config.json
  6. "torch_dtype": "float16",
复制代码
(2)创建三个容器,暂定容器名字是 bge-m3、bge-large-zh-v1___5、bge-reranker-large,在创建之前,必要接洽昇腾技能人员,开通服务器对外端口,暂定开通的为8001,8002,8003 和niginx转发端口-入方向:|出方向:TCP/8001,8002,8003,8004,442

将模型拷贝到/home/data下,参考官方手册来即可
  1. [root@dify ~]# cd /home/HwHiAiUser/
  2. [root@dify HwHiAiUser]# ls
  3. Ascend-hdk-910-npu-driver_23.0.0_linux-aarch64.run  BAAI  deepseek-ai  docker_run.sh  down.py  msit
  4. [root@dify HwHiAiUser]# pwd
  5. /home/HwHiAiUser
  6. [root@dify HwHiAiUser]# mkdir -p /home/data
  7. [root@dify HwHiAiUser]# cp -r BAAI/* /home/data/
  8. [root@dify HwHiAiUser]# ls /home/data/
  9. bge-large-zh-v1___5  bge-m3  bge-reranker-large
  10. [root@dify HwHiAiUser]#
复制代码
参考官方阐明:
ASCEND_VISIBLE_DEVICES环境变量表现将宿主机上的npu卡挂载到容器,假如挂载多张卡使用逗号分隔,如:ASCEND_VISIBLE_DEVICES=0,1,2,3;挂载多张卡到容器时,默认会寻找最优的一张卡调用,假如不希望容器内部自动寻找最优的卡,启动容器时可通过TEI_NPU_DEVICE=卡id指定使用哪张卡,注意这里的变量TEI_NPU_DEVICE配置从0开始取,容器内已将外部卡id举行了逻辑映射,编号从0连续映射;注意:配置的ASCEND_VISIBLE_DEVICES对应的卡不能被其他容器已挂载,否则会报错
  1. [root@dify ~]# docker run -u root -e TEI_NPU_DEVICE=0 -itd --name=bge-reranker-large --net=host -e HOME=/home/HwHiAiUser --privileged=true  -v /home/data:/home/HwHiAiUser/model -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/Ascend/driver:/usr/local/Ascend/driver --entrypoint /home/HwHiAiUser/start.sh swr.cn-east-317.qdrgznjszx.com/sxj731533730/mis-tei:6.0.RC3-910-aarch64  BAAI/bge-reranker-large 192.168.1.115 8001
  2. ef2383785c58ec5a650eb9d852ba965c48eb7b8cc7679cb7c194d2f2d0eb1a0d
  3. [root@dify ~]# docker start ef2383785c58ec5a650eb9d852ba965c48eb7b8cc7679cb7c194d2f2d0eb1a0d
  4. ef2383785c58ec5a650eb9d852ba965c48eb7b8cc7679cb7c194d2f2d0eb1a0d
  5. [root@dify ~]# docker run -u root -e TEI_NPU_DEVICE=1 -itd --name=bge-m3 --net=host -e HOME=/home/HwHiAiUser --privileged=true  -v /home/data:/home/HwHiAiUser/model -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/Ascend/driver:/usr/local/Ascend/driver --entrypoint /home/HwHiAiUser/start.sh swr.cn-east-317.qdrgznjszx.com/sxj731533730/mis-tei:6.0.RC3-910-aarch64  BAAI/bge-m3 192.168.1.115 8002
  6. 50dd3573f1ae1363211791425a2f681445b220f5a45bbdbe572a361ce974f63a
  7. [root@dify ~]# docker start 50dd3573f1ae1363211791425a2f681445b220f5a45bbdbe572a361ce974f63a
  8. 50dd3573f1ae1363211791425a2f681445b220f5a45bbdbe572a361ce974f63a
  9. bge-large-zh-v1___5  bge-m3  bge-reranker-large
  10. [root@dify ~]# docker run -u root -e TEI_NPU_DEVICE=2 -itd --name=bge-large-zh-v1___5 --net=host -e HOME=/home/HwHiAiUser --privileged=true  -v /home/data:/home/HwHiAiUser/model -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/Ascend/driver:/usr/local/Ascend/driver --entrypoint /home/HwHiAiUser/start.sh swr.cn-east-317.qdrgznjszx.com/sxj731533730/mis-tei:6.0.RC3-910-aarch64  BAAI/bge-large-zh-v1___5 192.168.1.115 8003
  11. d360f2b558c6556af53e19abd9f0782600f8cab1a7c60dc90fcf0b6061511c96
  12. [root@dify ~]# docker start d360f2b558c6556af53e19abd9f0782600f8cab1a7c60dc90fcf0b6061511c96
  13. d360f2b558c6556af53e19abd9f0782600f8cab1a7c60dc90fcf0b6061511c96
复制代码
查看一下三个服务,两个分词,一个排序模型,当然也可以放在一个NPU上运行

记录一下对外的服务端口 mindie推理服务 192.168.1.115:1025  ;bge-reranker-large服务:192.168.1.115:8001 bge-m3服务:192.168.1.115:8002 bge-large-zh-v1___5服务: 192.168.1.115:8003
四、部署dify环境举行部署配置,部署遇到的最大标题就是昇腾架构使用的aarch64,gitee使用docker镜像容器是x86_64,所以找镜像替代即可
(1)拉取dify的源码
  1. [root@dify HwHiAiUser]# git clone https://gitee.com/dify_ai/dify.git
  2. Cloning into 'dify'...
  3. remote: Enumerating objects: 206836, done.
  4. remote: Counting objects: 100% (10350/10350), done.
  5. remote: Compressing objects: 100% (5418/5418), done.
  6. remote: Total 206836 (delta 6559), reused 7867 (delta 4637), pack-reused 196486
  7. Receiving objects: 100% (206836/206836), 80.47 MiB | 3.03 MiB/s, done.
  8. Resolving deltas: 100% (161147/161147), done.
  9. [root@dify HwHiAiUser]# cd dify
  10. [root@dify dify]# git checkout 0.15.3
  11. Note: checking out '0.15.3'.
  12. You are in 'detached HEAD' state. You can look around, make experimental
  13. changes and commit them, and you can discard any commits you make in this
  14. state without impacting any branches by performing another checkout.
  15. If you want to create a new branch to retain commits you create, you may
  16. do so (now or later) by using -b with the checkout command again. Example:
  17.   git checkout -b <new-branch-name>
  18. HEAD is now at ca19bd31d chore(*): Bump version to 0.15.3 (#13308)
  19. [root@dify HwHiAiUser]# cd docker/
  20. [root@dify docker]# cp .env.example  .env
  21. [root@dify docker]# vim .env
复制代码
修改848行、906行
  1. NGINX_PORT=80
  2. # SSL settings are only applied when HTTPS_ENABLED is true
  3. NGINX_SSL_PORT=443
  4. 修改
  5. NGINX_PORT=8004
  6. # SSL settings are only applied when HTTPS_ENABLED is true
  7. NGINX_SSL_PORT=442
  8. 另一处
  9. EXPOSE_NGINX_PORT=80
  10. EXPOSE_NGINX_SSL_PORT=443
  11. 修改
  12. EXPOSE_NGINX_PORT=8004
  13. EXPOSE_NGINX_SSL_PORT=442
复制代码
修改配置文件
  1. [root@dify docker]# vim docker-compose.yaml
复制代码
第486行添加 --ignore-warnings ARM64-COW-BUG

将492行 修改0.2.10修改为0.2.1

(2)下载docker-compose,配置工具
  1. sudo curl -L https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-linux-aarch64 -o /usr/local/bin/docker-compose 
  2. 或者这样下载
  3. [root@dify docker]# cd /usr/local/bin/
  4. [root@dify bin]# pwd
  5. /usr/local/bin
  6. [root@dify bin]# wget https://sxj731533730.obs.cn-east-317.qdrgznjszx.com/docker-compose
  7. --2025-02-25 21:07:54--  https://sxj731533730.obs.cn-east-317.qdrgznjszx.com/docker-compose
  8. Resolving sxj731533730.obs.cn-east-317.qdrgznjszx.com (sxj731533730.obs.cn-east-317.qdrgznjszx.com)... 100.125.32.125
  9. Connecting to sxj731533730.obs.cn-east-317.qdrgznjszx.com (sxj731533730.obs.cn-east-317.qdrgznjszx.com)|100.125.32.125|:443... connected.
  10. HTTP request sent, awaiting response... 200 OK
  11. Length: 71778465 (68M) [application/octet-stream]
  12. Saving to: ‘docker-compose’
  13. docker-compose                       100%[=====================================================================>]  68.45M   220MB/s    in 0.3s
  14. 2025-02-25 21:07:54 (220 MB/s) - ‘docker-compose’ saved [71778465/71778465]
  15. [root@dify bin]# ls
  16. cloud-id    cloud-init-per  jsondiff   jsonpointer  modelscope  npu-healthcheck.sh  tqdm
  17. cloud-init  docker-compose  jsonpatch  jsonschema   normalizer  npu-smi
  18. [root@dify bin]# chmod 777 docker-compose
  19. [root@dify bin]# docker-compose -v
  20. Docker Compose version v2.33.0
复制代码

 (3)拉取镜像,预备启动dify环境,根据。yaml找aarch64位库即可
  1. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-api:0.15.3-linuxarm64
  2. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-api:0.15.3-linuxarm64  docker.io/langgenius/dify-api:0.15.3
  3. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-web:0.15.3-linuxarm64
  4. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-web:0.15.3-linuxarm64  docker.io/langgenius/dify-web:0.15.3
  5. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgres:15-alpine-linuxarm64
  6. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgres:15-alpine-linuxarm64  docker.io/postgres:15-alpine
  7. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:6-alpine-linuxarm64
  8. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:6-alpine-linuxarm64  docker.io/redis:6-alpine
  9. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.10-linuxarm64
  10. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.10-linuxarm64  docker.io/langgenius/dify-sandbox:0.2.10
  11. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.1-linuxarm64
  12. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.1-linuxarm64  docker.io/langgenius/dify-sandbox:0.2.1
  13. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu/squid:latest-linuxarm64
  14. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu/squid:latest-linuxarm64  docker.io/ubuntu/squid:latest
  15. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certbot/certbot:v3.1.0-linuxarm64
  16. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certbot/certbot:v3.1.0-linuxarm64  docker.io/certbot/certbot:latest
  17. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest-linuxarm64
  18. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest-linuxarm64  docker.io/nginx:latest
  19. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pingcap/tidb:v8.4.0-linuxarm64
  20. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pingcap/tidb:v8.4.0-linuxarm64  docker.io/pingcap/tidb:v8.4.0
  21. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/semitechnologies/weaviate:1.19.0-linuxarm64
  22. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/semitechnologies/weaviate:1.19.0-linuxarm64  docker.io/semitechnologies/weaviate:1.19.0
  23. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/qdrant:v1.7.3-linuxarm64
  24. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/qdrant:v1.7.3-linuxarm64  docker.io/langgenius/qdrant:v1.7.3
  25. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pgvector/pgvector:pg16-linuxarm64
  26. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pgvector/pgvector:pg16-linuxarm64  docker.io/pgvector/pgvector:pg16
  27. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0-linuxarm64
  28. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0-linuxarm64  docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0
  29. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/chroma-core/chroma:0.5.20-linuxarm64
  30. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/chroma-core/chroma:0.5.20-linuxarm64  ghcr.io/chroma-core/chroma:0.5.20
  31. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/oceanbase/oceanbase-ce:4.3.3.0-100000142024101215-linuxarm64
  32. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/oceanbase/oceanbase-ce:4.3.3.0-100000142024101215-linuxarm64  quay.io/oceanbase/oceanbase-ce:4.3.3.0-100000142024101215
  33. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/container-registry.oracle.com/database/free:latest-linuxarm64
  34. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/container-registry.oracle.com/database/free:latest-linuxarm64  docker.io/container-registry.oracle.com/database/free:latest
  35. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/coreos/etcd:v3.5.5-linuxarm64
  36. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/coreos/etcd:v3.5.5-linuxarm64  quay.io/coreos/etcd:v3.5.5
  37. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z-linuxarm64
  38. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z-linuxarm64  docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z
  39. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/milvusdb/milvus:v2.5.0-beta-linuxarm64
  40. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/milvusdb/milvus:v2.5.0-beta-linuxarm64  docker.io/milvusdb/milvus:v2.5.0-beta
  41. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opensearchproject/opensearch:latest-linuxarm64
  42. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opensearchproject/opensearch:latest-linuxarm64  docker.io/opensearchproject/opensearch:latest
  43. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opensearchproject/opensearch-dashboards:latest-linuxarm64
  44. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opensearchproject/opensearch-dashboards:latest-linuxarm64  docker.io/opensearchproject/opensearch-dashboards:latest
  45. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/myscale/myscaledb:1.6.4-linuxarm64
  46. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/myscale/myscaledb:1.6.4-linuxarm64  docker.io/myscale/myscaledb:1.6.4
  47. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/elasticsearch/elasticsearch:8.14.3-linuxarm64
  48. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/elasticsearch/elasticsearch:8.14.3-linuxarm64  docker.elastic.co/elasticsearch/elasticsearch:8.14.3
  49. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/kibana/kibana:8.14.3-linuxarm64
  50. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/kibana/kibana:8.14.3-linuxarm64  docker.elastic.co/kibana/kibana:8.14.3
  51. docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/robwilkes/unstructured-api:latest-linuxarm64
  52. docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/robwilkes/unstructured-api:latest-linuxarm64  docker.io/robwilkes/unstructured-api:latest
复制代码
然后启动dify成功
  1. [root@dify HwHiAiUser]# cd dify/
  2. [root@dify dify]# cd docker
  3. [root@dify docker]# pwd
  4. /home/HwHiAiUser/dify/docker
  5. [root@dify docker]# docker-compose up -d
  6. [+] Running 11/11
  7. ✔ Network docker_default             Created                                                                                                 0.1s
  8. ✔ Network docker_ssrf_proxy_network  Created                                                                                                 0.1s
  9. ✔ Container docker-sandbox-1         Started                                                                                                 1.6s
  10. ✔ Container docker-redis-1           Started                                                                                                 1.5s
  11. ✔ Container docker-web-1             Started                                                                                                 1.6s
  12. ✔ Container docker-weaviate-1        Started                                                                                                 1.9s
  13. ✔ Container docker-db-1              Started                                                                                                 1.8s
  14. ✔ Container docker-ssrf_proxy-1      Started                                                                                                 2.1s
  15. ✔ Container docker-api-1             Started                                                                                                 3.2s
  16. ✔ Container docker-worker-1          Started                                                                                                 3.0s
  17. ✔ Container docker-nginx-1           Started                                                                                                 3.7s
  18. [root@dify docker]#
复制代码
后台启动成功

五、启动dify举行配置界面,在地址栏输入http://ip(访问服务器的ip地址):8004端口,可以革新出dify界面

注册一下,这个是所有者权限,只能注册一次,无法修改,假如修改,必要重新拉dify服务

使用所有者权限进入账户,点击右边的设置

选择模型供应商

在下面的列表中找到这两个配置项

添加第一个模型deepseek


OpenAI-API-compatible
类型选LLM 模型名字对应你的mindie的name:DeepSeek-R1-Distill-Qwen-32B-W8A8  mindie的URL:http://192.168.1.115:1025/v1  只要后台服务启动中,前端可以生存,就是ok,秘钥随意填

Text Embedding Inference
然后配置排序模型和分词模型,支持RAG,秘钥随便写,只要后台服务启动中,前端可以生存,就是ok
1.1 选择 RERANK    URL设置 http://192.168.1.115:8001 模型名 :bge-reranker-large
1.2 选择 TEXT EMBEDDING  URL设置 http://192.168.1.115:8002 模型名 : bge-large-zh-v1___5
1.3 选择 TEXT EMBEDDING  URL设置 http://192.168.1.115:8003 模型名 : bge-m3

继续添加

六、实际测试,跑在昇腾上面的DeepSeek-R1-Distill-Qwen-32B-W8A8  双卡

测试知识库RAG,看一下知识库的内容

开始处理文本

处理文本

不挂知识库的结果


挂了知识库的结果

找到了文本数据,并作出了解释
七、增加公司域名和添加约请人使用邮箱发送功能约请
目前该平台支持增加管理员权限-支持问答和知识库使用,平凡用户只支持问答,目前以复制链接形式约请,注册新用户即可,增加邮箱发送功能,阅读手册中

增加公司网址访问,修改前面的端口号
  1. NGINX_PORT=80
  2. # SSL settings are only applied when HTTPS_ENABLED is true
  3. NGINX_SSL_PORT=443
  4. 保持默认
  5. NGINX_PORT=80
  6. # SSL settings are only applied when HTTPS_ENABLED is true
  7. NGINX_SSL_PORT=442
  8. 另一处
  9. EXPOSE_NGINX_PORT=80
  10. EXPOSE_NGINX_SSL_PORT=443
  11. 保持默认
  12. EXPOSE_NGINX_PORT=80
  13. EXPOSE_NGINX_SSL_PORT=442
复制代码
同时将获的密钥添加到指定目次下
  1. [root@wuzhoutuili-0003 docker]# ls ./nginx/ssl/ -a
  2. .  ..  .gitkeep  pem  _****.cer  _****.key
  3. [root@wuzhoutuili-0003 docker]#
复制代码
修改支持https://公司网址访问,访问应用了

或者是访问dify的ip:port

测试结果,直接输入网址登录即可

增加邮箱发送约请功能,就以qq邮箱为主吧,731533730@qq.com,不要给我发垃圾邮件哦,qq加不上好友~
首先仍然打开本地配置
  1. [root@wuzhoutuili-0003 docker]# docker-compose down
  2. /home/HwHiAiUser/dify/docker
  3. [root@wuzhoutuili-0003 docker]# vim .env
  4. [root@wuzhoutuili-0003 docker]# docker-compose up -d
复制代码
修改配置文件,这个配置文件的内容来自这里:

上图信息泉源

扫码获取密钥

进入账户发出约请


测试邮件收到 :https://wx.mail.qq.com/list/readtemplate?name=app_intro.html#/agreement/authorizationCode

假如要让链接打开,可用,必要修改官方代码
  1. [root@wuzhoutuili-0003 docker]# vim ../api/tasks/mail_invite_member_task.py
  2. [root@wuzhoutuili-0003 docker]# pwd
  3. /home/HwHiAiUser/dify/docker
复制代码

修改,浅读了一下代码,找到了标题地点;
  1. url = f"{dify_config.CONSOLE_WEB_URL}/activate?email={encoded_invitee_email}&token={token}"
复制代码
同时必要设置一下发送的网页环境变量
  1. [root@wuzhoutuili-0003 docker]# vim .env
复制代码

然后重启
  1. [root@wuzhoutuili-0003 docker]# vim .env
  2. [root@wuzhoutuili-0003 docker]# docker-compose down[+] Running 11/11 ✔ Container docker-worker-1          Removed                                                                                                                               4.3s  ✔ Container docker-nginx-1           Removed                                                                                                                              10.7s  ✔ Container docker-ssrf_proxy-1      Removed                                                                                                                              10.7s  ✔ Container docker-weaviate-1        Removed                                                                                                                               0.4s  ✔ Container docker-sandbox-1         Removed                                                                                                                               0.3s  ✔ Container docker-api-1             Removed                                                                                                                               4.6s  ✔ Container docker-web-1             Removed                                                                                                                              10.3s  ✔ Container docker-db-1              Removed                                                                                                                               0.4s  ✔ Container docker-redis-1           Removed                                                                                                                               0.4s  ✔ Network docker_default             Removed                                                                                                                               0.3s  ✔ Network docker_ssrf_proxy_network  Removed                                                                                                                               0.1s [root@wuzhoutuili-0003 docker]# docker-compose up -d[+] Running 11/11 ✔ Network docker_ssrf_proxy_network  Created                                                                                                                               0.0s  ✔ Network docker_default             Created                                                                                                                               0.1s  ✔ Container docker-db-1              Started                                                                                                                               1.1s  ✔ Container docker-sandbox-1         Started                                                                                                                               1.0s  ✔ Container docker-ssrf_proxy-1      Started                                                                                                                               1.2s  ✔ Container docker-redis-1           Started                                                                                                                               1.2s  ✔ Container docker-web-1             Started                                                                                                                               1.2s  ✔ Container docker-weaviate-1        Started                                                                                                                               1.1s  ✔ Container docker-worker-1          Started                                                                                                                               1.7s  ✔ Container docker-api-1             Started                                                                                                                               1.7s  ✔ Container docker-nginx-1           Started                                                                                                                               2.0s [root@wuzhoutuili-0003 docker]#
复制代码
然后就可以打开邮件链接,正常跳转了,我去给作者个pr,奖励一下他

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表