当前位置: 首页 > news >正文

Dify 推出全新版本!Dify-v1.4.3本地部署教程:开发效率飙升,快速打造 AI 应用!

一、Dify简介

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。

Dify v1.4.3 于 2025 年 6 月 16 日发布,是一个以 稳定性增强、功能完善和体验优化 为核心的迭代版本。此次更新覆盖了 LLM 节点能力修复、插件支持扩展、界面交互调优、系统测试强化等关键领域。

 核心功能优化

  1. LLM 节点结构化输出修复
    解决了之前版本中结构化输出参数丢失的问题,确保 LLM 节点输出内容的完整性和格式准确性,显著提升了复杂任务处理的稳定性与可靠性。

  2. Gemini LLM 插件兼容性扩展
    新增对 Gemini LLM 插件 0.2.x 版本的支持,用户可在 Agent 应用中无缝集成新版 Gemini,拓展模型能力边界并提升任务灵活性。

二、本地部署(非Docker)

环境版本号
Python=3.12
PostgreSQL=14.17
RabbitMQ=3.9.27
Ubtuntu22.4.0

1.安装PostgreSQL

1.1 .更新软件包列表

sudo apt update

1.2.安装 PostgreSQL

  • 默认版本安装 (推荐):
sudo apt install postgresql postgresql-client postgresql-contrib
  • 安装特定版本 (如 PostgreSQL 16):
    • 添加官方源:
      curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null
      echo "deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
      sudo apt update
      
    • 安装指定版本:
      sudo apt install postgresql-16 postgresql-client-16
      

1.3.验证安装

psql --version
# 示例输出:psql (PostgreSQL) 15.3(具体版本取决于安装)

1.4.启动

sudo service postgresql start

1.5.配置与使用

  • 切换到 postgres 用户 :
sudo -i -u postgres
  • 进入 PostgreSQL 交互终端
psql
  • 创建数据库(记住数据库名字)
CREATE DATABASE dify;
  • 设置用户密码(记住密码)
# 1. 使用 psql 工具以超级用户身份登录数据库
sudo -u postgres psql# 2. 执行 SQL 命令设置密码
ALTER USER postgres WITH PASSWORD 'dify';# 3. 退出 psql
\q

2.连接向量数据库

2.1.安装环境

sudo apt-get update
#安装开发文件
sudo apt install --reinstall postgresql-server-dev-14
#安装编译环境
sudo apt install -y build-essential gcc make wget
# 安装向量计算优化库(可选但推荐)
sudo apt install -y libopenblas-dev

2.2下载并编译 PGVector

# 下载最新版PGVector (访问 https://github.com/pgvector/pgvector/releases 获取最新版本)
wget https://github.com/pgvector/pgvector/archive/refs/tags/v0.6.1.tar.gz
tar -xvf v0.6.1.tar.gz
cd pgvector-0.6.1# 编译安装
make
sudo make install

2.3.在 PostgreSQL 中启用扩展

#进入dify数据库
psql -h 127.0.0.1 -p 5432 -U postgres -d dify
#密码
dify# 在命令行中创建扩展
CREATE EXTENSION vector;
exit;

2.4.修改配置文件

cd /
#修改配置文件
vim /dify/api/.env

1750301207848_9ba63082_10553073.png

VECTOR_STORE=pgvector

1750301212045_1fa02ab5_10553073.png

PGVECTOR_HOST=localhost
PGVECTOR_PORT=5432
PGVECTOR_USER=postgres
PGVECTOR_PASSWORD=dify
PGVECTOR_DATABASE=dify
PGVECTOR_MIN_CONNECTION=1
PGVECTOR_MAX_CONNECTION=5

退出配置文件命令:
注意要在英文键盘下进行

先按esc件,然后按住shift+:健,然后输入wq!

3、安装Redis

3.1 更新软件列表

sudo apt update
sudo apt upgrade

3.2 使用 apt 安装 Redis

sudo apt install redis-server

3.3 启动 Redis

redis-server

出现下面的内容即为启动成功

1750301222938_8788ddff_10553073.png

3.4 测试 Redis 是否正常工作

redis-cli --version

4.安装RabbitMQ

4.1.安装Erlang

由于 RabbitMQ需要Erlang语言支持,所以需要安装 Erlang。

#安装Erlang
apt-get install erlang
#验证安装
erl

Erlang安装成功:

1750301228956_171152bc_10553073.png

此时进入 Eshell 退出命令:Ctrl + c 一致按到退出为止

4.2.安装RabbitMQ

#更新安装包
sudo apt-get update
#安装最新版本
sudo apt-get install rabbitmq-server
#验证
rabbitmqctl version

4.3.启动RabbitMQ

sudo service rabbitmq-server start

5.Dify本地部署

5.1.Clone Dify 代码(或者从GitHub中本地下载):

git clone https://github.com/langgenius/dify.git

5.2.安装基础环境

  • 安装pyenv
#更新包列表
sudo apt update
#安装curl
sudo apt install curl
#安装pyenv
curl -fsSL https://pyenv.run | bash
#安装Python构建依赖库
sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
#安装Python3.12.0
pyenv install 3.12
#切换到“3.12”Python环境
pyenv global 3.12
  • 安装UV
curl -LsSf https://astral.sh/uv/install.sh | sh
  • 安装libmagic
sudo apt-get install libmagic1

5.3安装Dify Plugin Daemon

Dify Plugin Daemon 是一项管理插件生命周期的服务。它负责 3 种类型的运行时:

  1. 本地运行时:与 Dify 服务器运行在同一台计算机上。
  2. Debug runtime:监听一个端口,等待调试插件连接。
  3. 无服务器运行时:在 AWS Lambda 等无服务器平台上运行。
  • 安装go语言
    在安装Dify Plugin Daemon之前需要先安装go语言

    #先安装software-properties-common
    sudo apt install -y software-properties-common
    #添加Golang 官方 PPA
    sudo add-apt-repository ppa:longsleep/golang-backports
    # 更新软件源索引
    sudo apt update
    # 安装最新版 Go
    sudo apt install -y golang-go
    
  • 下载Dify Plugin Daemon

网址:https://github.com/langgenius/dify-plugin-daemon

使用git下载或者直接从上面的网址本地下载(我是放在了dify项目文件下)

git clone https://github.com/langgenius/dify-plugin-daemon.git
  • 安装Dify Plugin Daemo
#进入目录中
cd /dify/dify-plugin-daemon/.script
#安装dify-plugin-daemon
bash ./install.sh
  • 安装依赖
#进入目录
cd /dify/dify-plugin-daemon
#安装依赖
go mod download
# 清理冗余
go mod tidy
# 编译(在当前目录下进入cmd/server)
cd cmd/server
go build
  • 启动Dify Plugin Daemo(在/dify/dify-plugin-daemon这个目录下运行)
go run cmd/server/main.go

5.4启动API服务

  • 进入 API 目录
cd /dify/api
  • 复制环境变量配置文件
cp .env.example .env
  • 生成随机密钥,并替换 中 的值 .env``SECRET_KEY
awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
  • 安装依赖包

Dify API 服务使用 Poetry 来管理依赖。

poetry env use 3.12
poetry install
  • 执行数据库迁移

将数据库结构迁移至最新版本。

poetry run flask db upgrade
  • 更改后端配置

按照下面的配置文档更改自己的配置

路径:/dify/api/.env

vim /dify/api/.env

1750301245940_091608da_10553073.png

  • 启动 API 服务

注意在启动这个的时候需要启动PostgreSQL、Redis、RabbitMQ这三个服务

poetry run flask run --host 0.0.0.0 --port=5001 --debug

正确输出:

* Debug mode: on
INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.* Running on all addresses (0.0.0.0)* Running on http://127.0.0.1:5001
INFO:werkzeug:Press CTRL+C to quit
INFO:werkzeug: * Restarting with stat
WARNING:werkzeug: * Debugger is active!
INFO:werkzeug: * Debugger PIN: 695-801-919
  • 启动 Worker 服务

注意在启动这个的时候需要启动PostgreSQL、Redis、RabbitMQ这三个服务

用于消费异步队列任务,如知识库文件导入、更新知识库文档等异步操作。Linux / MacOS 启动:

poetry run celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace --loglevel INFO

如果使用 Windows 系统启动,请替换为该命令:

poetry run celery -A app.celery worker -P solo --without-gossip --without-mingle -Q data

正确输出:

-------------- celery@TAKATOST.lan v5.2.7 (dawn-chorus)
--- ***** ----- 
-- ******* ---- macOS-10.16-x86_64-i386-64bit 2023-07-31 12:58:08
- *** --- * --- 
- ** ---------- [config]
- ** ---------- .> app:         app:0x7fb568572a10
- ** ---------- .> transport:   redis://:**@localhost:6379/1
- ** ---------- .> results:     postgresql://postgres:**@localhost:5432/dify
- *** --- * --- .> concurrency: 1 (gevent)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ----- -------------- [queues].> dataset          exchange=dataset(direct) key=dataset.> generation       exchange=generation(direct) key=generation.> mail             exchange=mail(direct) key=mail[tasks]. tasks.add_document_to_index_task.add_document_to_index_task. tasks.clean_dataset_task.clean_dataset_task. tasks.clean_document_task.clean_document_task. tasks.clean_notion_document_task.clean_notion_document_task. tasks.create_segment_to_index_task.create_segment_to_index_task. tasks.deal_dataset_vector_index_task.deal_dataset_vector_index_task. tasks.document_indexing_sync_task.document_indexing_sync_task. tasks.document_indexing_task.document_indexing_task. tasks.document_indexing_update_task.document_indexing_update_task. tasks.enable_segment_to_index_task.enable_segment_to_index_task. tasks.generate_conversation_summary_task.generate_conversation_summary_task. tasks.mail_invite_member_task.send_invite_member_mail_task. tasks.remove_document_from_index_task.remove_document_from_index_task. tasks.remove_segment_from_index_task.remove_segment_from_index_task. tasks.update_segment_index_task.update_segment_index_task. tasks.update_segment_keyword_index_task.update_segment_keyword_index_task[2023-07-31 12:58:08,831: INFO/MainProcess] Connected to redis://:**@localhost:6379/1
[2023-07-31 12:58:08,840: INFO/MainProcess] mingle: searching for neighbors
[2023-07-31 12:58:09,873: INFO/MainProcess] mingle: all alone
[2023-07-31 12:58:09,886: INFO/MainProcess] pidbox: Connected to redis://:**@localhost:6379/1.
[2023-07-31 12:58:09,890: INFO/MainProcess] celery@TAKATOST.lan ready.

5.5前端页面部署

  • 安装基础环境

安装 NodeJS + NPM

# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 22
# Verify the Node.js version:
node -v # Should print "v22.14.0".
nvm current # Should print "v22.14.0".
# Verify npm version:
npm -v # Should print "10.9.2".
  • 进入web目录
cd /dify/web
  • 安装依赖包
npm i -g pnpm
pnpm install
  • 配置环境变量
  • 构建代码
pnpm run build
  • 启动web服务

注意在启动web服务前,后端API以及前面的所有服务都需要启动

npm run start
# or
yarn start
# or
pnpm start

正常启动后,终端会输出如下信息

ready - started server on 0.0.0.0:3000, url: http://localhost:3000
warn  - You have enabled experimental feature (appDir) in next.config.js.
warn  - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
info  - Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback

结果:

1750301260820_835a85b6_10553073.png

相关文章:

  • Mysql5.7 自动备份恢复示例
  • 《Kubernetes》Pod详解+Pod控制器
  • 用“Gemini 2.0 Flash Preview Image Generation”模型修改图片,有哪些常用的提示词和方法
  • 计算机网络零基础完全指南
  • 九尾狐编程语言新算法“超维时空演算体”
  • 加密货币:什么是稳定币?
  • 《Go语言圣经》结构体
  • 宽度优先遍历(bfs)(3)——最小路径问题
  • RTSP播放器低延迟实践:一次对毫秒级响应的技术探索
  • SpringBoot扩展——发送邮件!
  • flink的多种部署模式
  • Kaggle-Plant Seedlings Classification-(多分类+CNN+图形处理)
  • 解决“在EFI系统上,Windows只能安装到GPT磁盘“错误
  • DINO-R1:激励推理能力的视觉基础模型
  • 最简单的方式突破远程桌面封锁
  • 算法导论第十九章 并行算法:解锁计算新维度
  • Matplotlib 绘图库使用技巧介绍
  • Python 数据分析与可视化 Day 1 - Pandas 数据分析基础入门
  • day037-openssh服务与http协议
  • 视频相似度检测算法(带课设报告)
  • 新开传奇网站曾劲松/杭州互联网公司排名榜
  • 公司网站设计意见收集/seo怎么优化效果更好
  • wix怎样做网站/短视频seo推广隐迅推专业
  • 专业提供网站建设服务公司/广州百度竞价开户
  • 益阳营销型网站建设/市场推广策略 包括哪些
  • 甜水园网站建设/网站seo快速排名优化的软件