Skip to content


Dify v1.0本地部署+deepseek

Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)

生成式 AI 应用创新引擎

开源的 LLM 应用开发平台。内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持,提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。

在线体验:https://dify.ai/zh
开源地址:https://github.com/langgenius/dify
官方文档:https://docs.dify.ai/v/zh-hans

Dify云服务,可以在线使用.

  • Sandbox(免费版) 每天可调用200次GPT
  • 专业版 $59/month
  • 团队版 $159/month
  • 企业版 面议

开源社区版
安装 Dify 之前, 请确保你的机器已满足最低安装要求:

CPU >= 2 Core

RAM >= 4 GiB

克隆 Dify 代码仓库

安装git

yum install -y git

克隆 Dify 源代码至本地环境

# 假设当前最新版本为 0.15.3
git clone https://github.com/langgenius/dify --branch 0.15.3

Cloning into 'dify'...
remote: Enumerating objects: 143184, done.
remote: Counting objects: 100% (530/530), done.
remote: Compressing objects: 100% (279/279), done.
remote: Total 143184 (delta 440), reused 252 (delta 251), pack-reused 142654 (from 4)
Receiving objects: 100% (143184/143184), 75.24 MiB | 6.51 MiB/s, done.
Resolving deltas: 100% (105740/105740), done.
Note: switching to 'ca19bd31d42fb87c83b91541c473ebae85e9d14e'.

安装docker

docker,docker-ce,podman 安装其中之一就可
rocky8 以上默认为podman

A.安装docker

yum install docker

B.安装docker-ce

删除podman (如需要)
podman数据不会转移到docker
迁移 Docker 镜像,可以先导出再导入,容器用docker export和import
docker save -o image.tar image_name:tag
docker load image.tar

先停止所有容器的应用和删除容器,再删除安装包
podman container prune

清理所有未使用的镜像
podman image prune -a

清理所有未使用的卷
podman volume prune

清理所有未使用的网络
podman network prune

检查存储状态
podman system df

删除 Podman 存储目录
rm -rf /var/lib/containers/storage
systemctl restart podman

检查存储状态
podman system df

删除podman
dnf remove podman

删除podman残余文件
rm -rf /etc/containers /etc/registries.conf /etc/containers/policy.json /etc/containers/storage.conf ~/.config/containers ~/.local/share/containers

安装docker-ce

安装docker所需依赖

dnf install -y yum-utils device-mapper-persistent-data lvm2
dnf install -y dnf-plugins-core

添加docker官方和阿里的YUM仓库

dnf config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf config-manager –add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker Engine

dnf install -y docker-ce docker-ce-cli containerd.io

systemctl start docker
systemctl enable docker

docker –version
Docker version 28.0.1, build 068a01e

docker加速

tee > /etc/docker/daemon.json <<EOF
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://hub.rat.dev",
    "https://dockerhub.icu",
    "https://docker.wanpeng.top",
    "https://register.librax.org"
  ]
}
EOF

验证有无出错

docker info

C.安装podman

Podman 是一个与 Docker 兼容的容器工具

dnf install podman
docker –version
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
podman version 5.2.2

设置镜像网站

Podman 默认注册表配置文件在 /etc/containers/registries.conf
vi /etc/containers/registries.conf
[[registry]]
prefix = "docker.io"
location = "docker.io"
mirror = [
{ location = "docker.nju.edu.cn" },
{ location = "docker.m.daocloud.io" }
]
docker info

docker-compose 安装

docker-compose 和 podman-compose安装其中之一就可

docker-compose 安装

如果安装的是docker则安装docker-compose
https://github.com/docker/compose/releases/
curl -L "https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose

使用国内加速

wget -o /usr/local/bin/docker-compose https://ghproxy.cn/https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64

chmod +x /usr/local/bin/docker-compose

查看 docker-compose

docker-compose –version 版本
Docker Compose version v2.29.1

安装podman-compose

#yum install podman-compose

系统自带podman-compose version: 1.0.6版本过老
podman-compose –version

podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 5.2.2
podman-compose version 1.0.6
podman --version
podman version 5.2.2
exit code: 0

会出错以下报错
Cannot connect to the Docker daemon at unix:///run/podman/podman.sock. Is the docker daemon running?

安装pip 后安装podman-compose

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
pip –version
升级 pip
pip install -U pip

pip 国内加速

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

pip 安装podman-compose

pip3 install podman-compose
更新 podman-compose
运行以下命令更新 podman-compose:
pip install –upgrade podman-compose

运行以下命令检查 podman-compose 是否已安装:
pip show podman-compose

#没找到
-bash: /usr/bin/podman-compose: No such file or directory

find / -name podman-compose 2>/dev/null

/usr/share/licenses/podman-compose
/usr/share/doc/podman-compose
/usr/local/bin/podman-compose

将路径加入到环境变量

#临时
export PATH=/usr/local/bin:$PATH
#永久添加
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc 

查看版本

podman-compose –version

podman-compose version 1.3.0
podman version 5.2.2

使用podman-compose 拉起会报错
podman-compose up -d

RuntimeError: missing networks: 

改用docker-compose兼容方式

 检查 Podman 套接字文件

ls -l /run/podman/podman.sock
Podman 的套接字文件通常位于 /run/podman/podman.sock。如果该文件不存在,可能是系统未启用 Podman 的套接字功能。

 启用 Podman 套接字

运行以下命令启用 Podman 套接字:
systemctl –user enable –now podman.socket
验证套接字文件
ls -l /run/podman/podman.sock

如果 Podman 套接字仍未生成,可以尝试手动启动 Podman 套接字服务。

 手动创建套接字文件

podman system service –time=0 unix:///run/podman/podman.sock &
chmod 666 /run/podman/podman.sock
export DOCKER_HOST=unix:///run/podman/podman.sock

docker-compose ps

注册开机自动启动podman socket

cat >/etc/systemd/system/podman.socket.service<<EOF 
[Unit]
Description=Podman API Socket
Documentation=man:podman-system-service(1)
After=network.target

[Service]
ExecStart=/usr/bin/podman system service --time=0 unix:///run/podman/podman.sock
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target
EOF 

systemctl daemon-reload
systemctl enable podman.socket.service
systemctl start podman.socket.service
systemctl status podman.socket.service
ls -l /run/podman/podman.sock

Dify 安装

进入 Dify 源代码的 Docker 目录

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

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

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

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

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

使用docker-compose拉起

docker compose pull

Trying to pull docker.io/library/redis:6-alpine…
Trying to pull docker.io/langgenius/dify-api:0.15.3…
Trying to pull docker.io/library/postgres:15-alpine…
Trying to pull docker.io/langgenius/dify-web:0.15.3…
Trying to pull docker.io/ubuntu/squid:latest…
Trying to pull docker.io/langgenius/dify-api:0.15.3…
Trying to pull docker.io/semitechnologies/weaviate:1.19.0…
Trying to pull docker.io/library/nginx:latest…
Trying to pull docker.io/langgenius/dify-sandbox:0.2.10…

此时会遇到超时问题
pinging container registry registry-1.docker.io: Get "https://registry-1.docker.io/v2/": dial tcp 208.43.237.140:443: i/o timeout

测试拉取

docker pull docker.io/library/redis:6-alpine
docker pull docker.io/langgenius/dify-web:0.15.3
docker pull docker.io/library/postgres:15-alpine

ocker pull register.librax.org/langgenius/dify-api:0.15.3
docker pull register.librax.org/semitechnologies/weaviate:1.19.0
docker pull register.librax.org/library/nginx:latest
docker pull register.librax.org/langgenius/dify-sandbox:0.2.10

docker tag register.librax.org/langgenius/dify-api:0.15.3 docker.io/langgenius/dify-api:0.15.3

docker-compose up -d

[+] Running 11/11
 ✔ Network docker_default             Created                                        0.0s
 ✔ Network docker_ssrf_proxy_network  Created                                        0.0s
 ✔ Container docker-ssrf_proxy-1      Started                                        0.9s
 ✔ Container docker-db-1              Started                                        1.0s
 ✔ Container docker-weaviate-1        Started                                        1.2s
 ✔ Container docker-sandbox-1         Started                                        1.0s
 ✔ Container docker-redis-1           Started                                        0.9s
 ✔ Container docker-web-1             Started                                        0.9s
 ✔ Container docker-worker-1          Started                                        1.4s
 ✔ Container docker-api-1             Started                                        1.2s
 ✔ Container docker-nginx-1           Started                                        1.4s

你应该可以看到包括3个业务服务 api / worker / web,以及6个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox 。
通过这些步骤,你应该可以成功在本地安装Dify。

更新Dify

当Dify版本更新后,你可以克隆或拉取最新的Dify源代码,并通过命令行更新已经部署的Dify环境。‍‍‍‍‍‍‍‍‍‍‍‍
刚好Dify在2月28日发布了1.0.0版本,那么我们也就直接升级一波!

dify v1.0.0更新内容介绍
我们先来看一下这次dify v1.0.0都有哪些重磅更新

1. 插件机制 (Plugin System)

核心变化:将原有的模型和工具都改造成插件形式

应用场景:想用新的 AI 模型时,直接安装对应插件即可

需要连接 Slack 时,安装 Slack 插件就能实现集成

2. 智能工作流 (Intelligent Workflow)

新增 Agent 节点:作为工作流和聊天流的决策中心

通俗解释:相当于一个智能管家,可以根据需求自动调用合适的流程、工具

应用场景:客服机器人可以自动判断用户意图,选择合适的回复方式

数据分析任务可以自动选择合适的分析工具和展示方式

3. 开放生态系统 (Open Ecosystem)

Dify Marketplace:官方插件市场

已有 120+ 插件,包括:模型:OpenAI 、Gemini 2.0 、DeepSeek-R1 等

工具:Perplexity 、Discord 、Slack 等

应用场景:企业可以在市场中找到所需的专业工具

开发者可以发布自己的插件获得收益

4. 多模态交互 (Multimodal I/O)

支持多种数据类型:文本、图像、视频、语音

应用场景:智能客服可以处理图片问题

教育应用可以结合视频和语音进行互动

5. 核心能力增强

推理能力 (Reasoning):提升问题解决能力

执行能力 (Action):可以操作软件和物联网设备

动态记忆 (Dynamic Memory):优化上下文理解

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

cd dify/docker
关闭服务
docker-compose down
git pull origin main

remote: Enumerating objects: 535, done.
remote: Counting objects: 100% (290/290), done.
remote: Total 535 (delta 290), reused 290 (delta 290), pack-reused 245 (from 1)
Receiving objects: 100% (535/535), 472.65 KiB | 1.10 MiB/s, done.
Resolving deltas: 100% (387/387), completed with 209 local objects.
From https://github.com/langgenius/dify
 * branch                main       -> FETCH_HEAD
   bafa46393..330dc2fd4  main       -> origin/main

docker-compose pull
docker-compose up -d

执行上述命令更新完成后,需按以下操作同步环境变量配置 (重要!)。‍‍‍‍

如果.env.example文件有更新,请务必同步修改您本地的.env文件。
检查.env文件中的所有配置项,确保它们与您的实际运行环境相匹配。
您可能需要将.env.example中的新变量添加到.env文件中,
并更新已更改的任何值。

查看当前ollama的模型

ollama linux部署可参考之前文章

ollama list
NAME          ID              SIZE      MODIFIED
qwen2:1.5b    f6daf2b25194    934 MB    2 months ago

ollama run qwen2:1.5b

ollama ps
NAME          ID              SIZE      PROCESSOR    UNTIL
qwen2:1.5b    f6daf2b25194    1.5 GB    100% CPU     4 minutes from now

拉取deepseek-r1:1.5b模型

ollama pull deepseek-r1:1.5b
pulling manifest
pulling aabd4debf0c8... 100% ▕██████████████████████████▏ 1.1 GB
pulling 369ca498f347... 100% ▕██████████████████████████▏  387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████▏  148 B
pulling a85fe2a2e58e... 100% ▕██████████████████████████▏  487 B
verifying sha256 digest
writing manifest
success

ollama run deepseek-r1:1.5b

 ollama ps
NAME                ID              SIZE      PROCESSOR    UNTIL
deepseek-r1:1.5b    a42b25d8c10a    1.6 GB    100% CPU     4 minutes from now
qwen2:1.5b          f6daf2b25194    1.5 GB    100% CPU     5 seconds from now

创建宿主机到虚拟机的nat

#我使用980,正常使用80端口
#http://localhost:980/install

在virtualbox创建nat转发127.0.0.1:80端口到192.168.244.9:80

使用Dify

按照以上步骤部署好Dify后,首先前往管理员初始化页面设置设置管理员账户:

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

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

通过私有化本地部署Dify,结合Ollama等大模型运行环境,可以打造自己的私有大模型工具链,实现大模型的本地可视化运行。在涉密或敏感数据场合具有极大的应用价值。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

创建管理员

第一次访问需要先设置最高管理权限账号、密码

添加本地Ollama

登录进去后,右上角用户里设置
在 Dify 中接入 Ollama 在 设置 > 模型供应商 > Ollama 中填入
模型名称:qwen2:1.5b

基础 URL:http://127.0.0.1:11434,此处需填写可访问到的 Ollama 服务地址。
若 Dify 为 docker 部署,建议填写局域网 IP 地址,如:http://192.168.244.9:11434 或 docker 宿主机 IP 地址,如: http://host.docker.internal:11434http://10.89.1.1:11434

Docker版本是18.03或更高可以使用 host.docker.internal。
若为本地源码部署,可填写 http://localhost:11434

模型类型:对话

模型上下文长度:4096

模型的最大上下文长度,若不清楚可填写默认值 4096。

最大 token 上限:4096:模型返回内容的最大 token 数量,若模型无特别说明,则可与模型上下文长度保持一致。

是否支持 Vision:是(当模型支持图片理解(多模态)勾选此项,如 llava。)

点击 “保存” 校验无误后即可在应用中使用该模型。

如出现错误可以检查一下ip和端口是否正确,网络是否通畅。

An error occurred during credentials validation: HTTPConnectionPool(host='10.89.1.1', port=80): Max retries exceeded with url: /api/chat (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f6ea7769040>, 'Connection to 10.89.1.1 timed out. (connect timeout=10)'))

如果不想使用本地Ollama,我们也可以使用deepseek 官方API,或硅基流动的。
DeepSeek是目前最好的开源大模型

Dify v1.0.0是目前最好的开源大模型应用平台

DeepSeek + Dify v1.0.0可谓强强联手!

创建聊天助手

创建空白应用->聊天助手
发布后你就有了一个自已的聊天助手。


创建工作流

回到主页,点击创建空白应用,这里的聊天助手和文本生成应用,是功能最为单一的 LLM 应用,都不支持工具和知识库的接入。
Agent 和 工作流的区别:

Agent:智能体,基于大语言模型的推理能力,可以自主选择工具来完成任务,相对简单。
工作流:以工作流的形式编排 LLM 应用,提供更多的定制化能力,适合有经验的用户。

Posted in AI.

Tagged with , , .


No Responses (yet)

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.