Dify大模型集成工具本地部署运行笔记

wylc123 1月前 ⋅ 100 阅读

经测试使用docker在VM中安装最简单迅速

一、安装docker环境

1. 使用 root 权限更新 yum 包
yum -y update
2. 卸载旧版本
yum remove docker  docker-common docker-selinux docker-engine

因为dify要求

Docker 19.03 or later

Docker Compose 1.28 or later

3.安装Docker的详细步骤
3.1.安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
3.2 设置 yum 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
3.3 默认安装最新版本
sudo dnf install docker-ce docker-ce-cli containerd.io docker                                                                                                                -buildx-plugin docker-compose-plugin
3.4 安装完成查看docker版本
docker version
docker compose version
3.5 设置docker镜像配置
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}

配置生效并重启docker

systemctl daemon-reload
systemctl restart docker

启动 Docker 并设置开机自启

systemctl start docker
systemctl enable docker

二、安装Dify

克隆 Dify 源代码至本地环境。

# 假设当前最新版本为 0.15.3
git clone https://github.com/langgenius/dify.git --branch 0.15.3
启动 Dify
  1. 进入 Dify 源代码的 Docker 目录

    cd dify/docker
  2. 复制环境配置文件

    cp .env.example .env
  3. 启动 Docker 容器

    根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version 命令检查版本,详细说明请参考 Docker 官方文档

    • 如果版本是 Docker Compose V2,使用以下命令:
    docker compose up -d
    • 如果版本是 Docker Compose V1,使用以下命令:
    docker-compose up -d

运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:

[+] Running 11/11
 ✔ Network docker_ssrf_proxy_network  Created                                                                 0.1s 
 ✔ Network docker_default             Created                                                                 0.0s 
 ✔ Container docker-redis-1           Started                                                                 2.4s 
 ✔ Container docker-ssrf_proxy-1      Started                                                                 2.8s 
 ✔ Container docker-sandbox-1         Started                                                                 2.7s 
 ✔ Container docker-web-1             Started                                                                 2.7s 
 ✔ Container docker-weaviate-1        Started                                                                 2.4s 
 ✔ Container docker-db-1              Started                                                                 2.7s 
 ✔ Container docker-api-1             Started                                                                 6.5s 
 ✔ Container docker-worker-1          Started                                                                 6.4s 
 ✔ Container docker-nginx-1           Started                                                                 7.1s

最后检查是否所有容器都正常运行:

docker compose ps

在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox

NAME                  IMAGE                              COMMAND                   SERVICE      CREATED              STATUS                        PORTS
docker-api-1          langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   api          About a minute ago   Up About a minute             5001/tcp
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           About a minute ago   Up About a minute (healthy)   5432/tcp
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        About a minute ago   Up About a minute             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-redis-1        redis:6-alpine                     "docker-entrypoint.s…"   redis        About a minute ago   Up About a minute (healthy)   6379/tcp
docker-sandbox-1      langgenius/dify-sandbox:0.2.1      "/main"                   sandbox      About a minute ago   Up About a minute             
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   About a minute ago   Up About a minute             3128/tcp
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     About a minute ago   Up About a minute             
docker-web-1          langgenius/dify-web:0.6.13         "/bin/sh ./entrypoin…"   web          About a minute ago   Up About a minute             3000/tcp
docker-worker-1       langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   worker       About a minute ago   Up About a minute             5001/tcp

通过这些步骤,你应该可以成功在本地安装 Dify。

 
更新 Dify

进入 dify 源代码的 docker 目录,按顺序执行以下命令:

cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
 
同步环境变量配置 (重要!)

如果 .env.example 文件有更新,请务必同步修改你本地的 .env 文件。

检查 .env 文件中的所有配置项,确保它们与你的实际运行环境相匹配。你可能需要将 .env.example 中的新变量添加到 .env 文件中,并更新已更改的任何值。

访问 Dify

你可以先前往管理员初始化页面设置设置管理员账户:

# 本地环境
http://localhost/install

# 服务器环境
http://your_server_ip/install

Dify 主页面:

# 本地环境
http://localhost

# 服务器环境
http://your_server_ip
自定义配置

编辑 .env 文件中的环境变量值。然后重新启动 Dify:

docker compose down
docker compose up -d

完整的环境变量集合可以在 docker/.env.example 中找到。

三、使用Dify

  1. 配置本地模型

ollama可以本地安装大模型,缺点不支持Rerank 模型配置,安装配置网上资料比较多不赘述

Xinference可以支持:

  • 语言模型:比如 qwen2、baichuan、deepseek、gemma 等场景的语言模型
  • Embedding 模型:有 Jina 的 Embedding 模型(结合 Rerank,知识库检索不就起来了嘛 );
  • Rerank 模型:有 Jina 的 Rerank 模型;
  • 图像模型:除了 Stable Diffusion 之外,还有 Flux 模型
  • 语音模型:有 ChatTTS 以及 whisper 等等;
  • 视频模型:这类模型还没了解过,Xinference 里是 CogVideoX 模型;
  • 自定义模型:需要先注册,然后才可以在这里看到;

推荐通过docker安装,注意下面配置,国内访问HuggingFace 镜像网站,使用ModelScope安装模型

docker pull registry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference:latest-cpu

docker run \
  -v /home/xinference/.xinference:/root/.xinference \
  -v /home/xinference/.cache/modelscope:/root/.cache/modelscope \
  -p 9997:9997 \
  -e HF_ENDPOINT=https://hf-mirror.com \
  -e XINFERENCE_MODEL_SRC=modelscope \
  registry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference:latest-cpu \
  xinference-local -H 0.0.0.0

参数详解  
--name xinference:为容器指定名称。
-d:让容器在后台运行。
-v:挂载宿主机目录到容器,用于数据持久化。
-p 9997:9997:将容器端口映射到宿主机,便于访问。
--gpus all:分配所有GPU资源给容器,提升计算能力,cpu本地可以删掉这个配置。
-e:设置环境变量,确保正确访问HuggingFace和魔塔。
registry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference:latest:指定使用的Xinference镜像。

设置完后可以直接访问ip:9997在web页面安装大模型到本地

docker logs -f <containerid>

可以查看安装日志

2. 建立知识库

3. 建立第一个聊天机器人


相关文章推荐

全部评论: 0

    我有话说: