首页
博客小事纪
网站统计
友情链接
推荐
百度一下
文心一言
通义千问
Search
1
基于 openEuler 操作系统的 VNC(noVNC) 部署流程
479 阅读
2
openEuler 操作系统用户权限管理——sudo 权限的授予与限制案例
426 阅读
3
基于 openEuler 操作系统使用 Sealos 构建 Kubernetes 高可用集群
349 阅读
4
openEuler 搭建本地 repo 源
269 阅读
5
基于 openEuler 22.03 LTS SP4 编译 docker 20.10.13
140 阅读
默认分类
openEuler
x2openEuler
云原生
生活随笔
登录
Search
标签搜索
openEuler
Docker
故宫
kubernetes
x2openEuler
Nginx
repo
VNC
SUSE
DeepSeek
Ollama
AI
闫志聪
累计撰写
17
篇文章
累计收到
0
条评论
首页
栏目
默认分类
openEuler
x2openEuler
云原生
生活随笔
页面
博客小事纪
网站统计
友情链接
推荐
百度一下
文心一言
通义千问
搜索到
1
篇与
的结果
2025-04-09
使用 Ollama + Dify 本地部署 DeepSeek 构建个人知识库
1 环境准备本文所有环境基于 openEuler 22.03 LTS SP4 操作系统1.1 网络环境# 配置代理 PROXY_IP=192.168.230.1 PROXY_PORT=10809 export http_proxy=http://${PROXY_IP}:${PROXY_PORT} export https_proxy=http://${PROXY_IP}:${PROXY_PORT} export ALL_PROXY=http://${PROXY_IP}:${PROXY_PORT} export all_proxy=socks://${PROXY_IP}:${PROXY_PORT}1.2 安装 cuda# 安装基础工具及内核开发包 $ yum install -y gcc-c++ make dkms kernel-source-$(uname -r) kernel-devel-$(uname -r) # 下载 cuda 包 $ wget https://repo.oepkgs.net/openEuler/rpm/openEuler-22.03-LTS-SP4/contrib/drivers/x86_64/Packages/cuda_12.4.0_550.54.14_linux.run -P /root # 安装 cuda 包 $ sh /root/cuda_12.4.0_550.54.14_linux.run ...... =========== = Summary = =========== Driver: Installed Toolkit: Installed in /usr/local/cuda-12.4/ Please make sure that - PATH includes /usr/local/cuda-12.4/bin - LD_LIBRARY_PATH includes /usr/local/cuda-12.4/lib64, or, add /usr/local/cuda-12.4/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.4/bin To uninstall the NVIDIA Driver, run nvidia-uninstall Logfile is /var/log/cuda-installer.log # 配置 PATH 变量 $ sed -i \ -e '$a \ ' \ -e "\$a export PATH=$PATH" \ -e '$a export PATH=$PATH:/usr/local/cuda-12.4/bin' \ /etc/profile # 刷新 /etc/profile 文件 $ source /etc/profile # 配置库文件 $ sed -i '$a /usr/local/cuda-12.4/lib64' /etc/ld.so.conf # 刷新动态链接库 $ ldconfig # 查看 Nvidia 驱动版本 $ nvidia-smi # 查看 cuda 版本 $ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Tue_Feb_27_16:19:38_PST_2024 Cuda compilation tools, release 12.4, V12.4.99 Build cuda_12.4.r12.4/compiler.33961263_01.3 安装 docker1.3.1 安装 docker# 定义要安装的 docker 版本及架构(x86_64、aarch64) $ DOCKER_VERSION=26.0.0; DOCKER_ARCH=x86_64 # 从官方仓库下载二进制 docker 压缩包 $ wget https://download.docker.com/linux/static/stable/"${DOCKER_ARCH}"/docker-"${DOCKER_VERSION}".tgz -P /root # 解压下载的压缩包 $ tar -xvf /root/docker-"${DOCKER_VERSION}".tgz -C /root # 复制解压的命令到 /usr/bin 目录 $ cp /root/docker/* /usr/bin # 创建 docker 组,否则会有 could not change group /var/run/docker.sock to docker: group docker not found 的警告信息,并且 cir-docker 会启动失败 $ groupadd docker # 编写启动文件 $ cat > /etc/systemd/system/docker.service <<"EOF" [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target EOF # 配置代理 $ mkdir -p /etc/systemd/system/docker.service.d cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF [Service] Environment="HTTP_PROXY=http://${PROXY_IP}:${PROXY_PORT}" Environment="HTTPS_PROXY=http://${PROXY_IP}:${PROXY_PORT}" Environment="NO_PROXY=localhost,127.0.0.1" EOF # 修改 cgroup 为 systemd,修改日志驱动 $ [ ! -d "/etc/docker" ] && mkdir /etc/docker cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" } } EOF # 重新加载配置 $ systemctl daemon-reload # 启动(重启) docker $ systemctl restart docker && systemctl enable docker # 查看代理、Cgroup 驱动、日志驱动配置 $ docker info | grep -E "Proxy|Cgroup Driver|Logging Driver" Logging Driver: json-file Cgroup Driver: systemd HTTP Proxy: http://192.168.230.1:10809 HTTPS Proxy: http://192.168.230.1:10809 No Proxy: localhost,127.0.0.11.3.2 安装 docker-compose# 创建插件目录 $ mkdir -p /usr/libexec/docker/cli-plugins # 定义要安装的 docker-compose 版本及架构(x86_64、aarch64) $ COMPOSE_VERSION=2.33.0; COMPOSE_ARCH=x86_64 # 从官方仓库下载二进制 docker-compose 命令 $ wget https://github.com/docker/compose/releases/download/v"${COMPOSE_VERSION}"/docker-compose-linux-"${COMPOSE_ARCH}" -P /root # 安装 docker-compose $ install -m 755 /root/docker-compose-linux-"${COMPOSE_ARCH}" /usr/libexec/docker/cli-plugins/docker-compose # 验证 docker-compose 是否安装成功 $ docker compose version Docker Compose version v2.33.02 安装(卸载)ollama2.1 安装 ollama2.1.1 在线安装参考文档:ollama/docs/linux.md at main · ollama/ollama · GitHub# 安装 ollama(若不指定版本则安装最新版本) $ curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.11 sh # 修改 ollama 监听地址,默认监听在回环网卡 $ sed -i '/^Environment=.*/i Environment="OLLAMA_HOST=0.0.0.0:11434"' /etc/systemd/system/ollama.service # 重新加载配置 $ systemctl daemon-reload # 重新启动 ollama $ systemctl restart ollama # 查看监听的地址 $ netstat -anpt | grep ollama tcp6 0 0 :::11434 :::* LISTEN 110562/ollama2.1.2 本地安装参考文档:ollama/docs/linux.md at main · ollama/ollama · GitHub# 指定要安装的 ollama 版本及架构(amd64、arm64) $ OLLAMA_VERSION=0.5.11; OLLAMA_ARCH=amd64 # 下载安装包 $ wget https://github.com/ollama/ollama/releases/download/v"${OLLAMA_VERSION}"/ollama-linux-"${OLLAMA_ARCH}".tgz -P /root # 解压并安装 $ tar -xvf /root/ollama-linux-"${OLLAMA_ARCH}".tgz -C /usr # 创建 ollama 用户、组 $ useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama usermod -a -G ollama $(whoami) # 编写 service 文件 $ cat > /etc/systemd/system/ollama.service <<EOF [Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="PATH=$PATH" [Install] WantedBy=default.target EOF # 重载配置文件 $ systemctl daemon-reload # 启动 ollama 并设置开机自启 $ systemctl start ollama && systemctl enable ollama # 查看监听的地址 $ netstat -anpt | grep ollama tcp6 0 0 :::11434 :::* LISTEN 2650/ollama2.2 卸载 ollama# 停止 ollama 服务 $ systemctl stop ollama && systemctl disable ollama # 删除 service 文件 $ rm -rf /etc/systemd/system/ollama.service # 删除 ollama 二进制文件 $ rm -rf $(which ollama) # 删除 ollama 库文件 $ rm -rf /usr/local/lib/ollama # 删除 ollama 用户、组 $ groupdel ollama userdel ollama # 删除家目录(同时会删除家目录下的大模型文件) $ rm -rf /usr/share/ollama2.3 ollama 使用指南2.3.1 命令使用指南$ ollama Usage: ollama [flags] ollama [command] Available Commands: serve Start ollama # 启动 ollama 服务 create Create a model from a Modelfile # 从 Modelfile 文件创建模型 show Show information for a model # 显示模型信息 run Run a model # 运行模型,若不存在则先下载 stop Stop a running model # 停止正在运行的模型 pull Pull a model from a registry # 从仓库拉取模型 push Push a model to a registry # 推送模型到仓库 list List models # 列出所有模型 ps List running models # 列出正在运行的模型并查看资源消耗 cp Copy a model # 复制模型 rm Remove a model # 删除模型 help Help about any command # 查看命令帮助 Flags: -h, --help help for ollama # 查看命令帮助 -v, --version Show version information # 查看版本2.3.2 相关环境变量(1)OLLAMA_HOST:指定 ollama 服务的监听地址及端口参考文档:ollama/api/client.go at main · ollama/ollama · GitHub使用场景:ollama 服务默认监听地址为 127.0.0.1,需要从外部访问或调用 ollama 服务使用方法:指定监听的地址和端口 OLLAMA_HOST=0.0.0.0:11434(2)OLLAMA_NUM_PARALLEL:每个模型同时处理的并行请求的最大数量参考文档:ollama/docs/faq.md at main · ollama/ollama · GitHub使用场景:每个模型需要处理多个并发使用方法:默认值将根据可用内存自动选择 4 或 1,若有需要可以手动调整 OLLAMA_NUM_PARALLEL=10(3)OLLAMA_MAX_QUEUE:当 ollama 忙碌时,它在拒绝额外请求之前将排队的最大请求数量参考文档:ollama/docs/faq.md at main · ollama/ollama · GitHub使用场景:调整 ollama 忙碌时可以排队的最大请求数量使用方法: 默认值是 512,若有需要可以手动调整 OLLAMA_MAX_QUEUE=256(4)OLLAMA_MAX_LOADED_MODELS:可同时加载的最大模型数量参考文档:ollama/docs/faq.md at main · ollama/ollama · GitHub使用场景:同时需要加载多个模型(如果已加载一个或多个模型时,没有足够的可用内存来加载新的模型请求,所有新的请求将被排队,直到新模型能够被加载。当先前的模型变为闲置时,将卸载一个或多个模型以腾出空间给新模型。排队的请求将按顺序处理。在使用 GPU 推理时,新模型必须能够完全适应 VRAM,以允许并发加载模型。)使用方法:默认值为 CPU 或 GPU 的 3 倍,若有需要可以手动调整 OLLAMA_MAX_LOADED_MODELS=6(5)CUDA_VISIBLE_DEVICES:限制 ollama 可使用的 NVIDIA 显卡参考文档:ollama/docs/gpu.md at main · ollama/ollama · GitHub使用场景:系统中有多块 NVIDIA 显卡,需要限制 ollama 只使用其中一部分或完全不使用显卡使用方法:使用数字 ID:执行 nvidia-smi 命令获取显卡的序号,然后定义环境变量 CUDA_VISIBLE_DEVICES=0,1使用 UUID:执行 nvidia-smi -L 命令获取显卡 UUID,然后定义环境变量 CUDA_VISIBLE_DEVICES=GPU-1831a5ee-622a-7e65-06cc-d57de8902585,GPU-d21e966e-7a89-884f-d0b2-444d371bb8f9不使用显卡:若想忽略显卡并强制使用 CPU,可以使用一个无效的 GPU ID,例如 CUDA_VISIBLE_DEVICES=-13 安装(使用)Dify3.1 安装 Dify参考文档:Docker Compose 部署 | Dify# 克隆 Dify 源代码至本地环境 $ git clone https://github.com/langgenius/dify.git # 进入 Dify 源代码目录 $ cd dify # 切换到需要的版本 $ git checkout 0.15.3 # 进入 Dify 源代码的 Docker 目录 $ cd docker # 复制环境配置文件 $ cp .env.example .env # 启动 Docker 容器 $ docker compose up -d [+] Running 74/74 ✔ api Pulled 211.9s ✔ sandbox Pulled 213.7s ✔ redis Pulled 161.0s ✔ weaviate Pulled 8.8s ✔ worker Pulled 211.9s ✔ db Pulled 157.2s ✔ web Pulled 133.0s ✔ ssrf_proxy Pulled 83.6s ✔ nginx Pulled 19.2s [+] Running 11/11 ✔ Network docker_default Created 0.0s ✔ Network docker_ssrf_proxy_network Created 0.0s ✔ Container docker-web-1 Started 0.4s ✔ Container docker-sandbox-1 Started 0.3s ✔ Container docker-ssrf_proxy-1 Started 0.5s ✔ Container docker-redis-1 Started 0.3s ✔ Container docker-weaviate-1 Started 0.4s ✔ Container docker-db-1 Started 0.4s ✔ Container docker-api-1 Started 0.5s ✔ Container docker-worker-1 Started 0.6s ✔ Container docker-nginx-1 Started 0.7s # 查看 3 个业务服务 api/worker/web,以及 6 个基础组件 weaviate/db/redis/nginx/ssrf_proxy/sandbox 是否运行 $ docker compose ps在 Windows 浏览器中访问 http://${your_server_ip}/install 进入管理员初始化页面,设置管理员账户在 Windows 浏览器中访问 http://${your_server_ip} 进入主页面
2025年04月09日
24 阅读
0 评论
0 点赞