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

Dify 0.15.3版本 本地部署指南

目录

背景

一、单机部署机器配置最低要求

二、系统Python环境安装

安装需要的python依赖

使用pyenv官方安装脚本

安装poetry

三、中间件部署

PostgreSQL本地部署

添加PG官方仓库

安装pg 16

检查pg版本

修改密码为dify默认

创建数据库dify

安装pg vector插件

修改支持远程访问

Redis本地部署

Weaviate本地部署

四、配置npm环境

五、运行dify

下载源码,并切换到0.15.3的tag

切换到api目录,配置环境文件以及poetry依赖

运行API服务

运行worker服务

六、运行dify-sandbox

安装go环境

七、Rerank模型安装

安装Xinference

八、总结


Dify 0.15.3版本在Linux上的本地部署指南,涵盖单机部署机器配置、系统Python环境安装、中间件部署、npm环境配置、Dify及相关组件运行、Rerank模型安装等内容。关键要点包括:

  • 单机部署机器配置:不同服务有不同的CPU核心和内存要求 。

  • 系统Python环境安装:服务器需Python 3.12,利用pyenv安装,同时安装poetry并添加环境变量。

  • 中间件部署:在安全内网环境部署PostgreSQL、Redis、Weaviate等中间件,需进行安装、配置密码、允许远程访问等操作。

  • 配置npm环境:用nvm安装nodejs,安装npm并修改源。

  • 运行Dify:下载源码,配置环境文件和依赖,执行数据库迁移,分别运行API、worker、web服务。

  • 运行dify-sandbox:需root账号,安装go环境,克隆仓库,安装依赖,构建并启动服务器。

  • Rerank模型安装:安装Xinference,配置使用bge-reranker-v2-m3模型并启动。

背景

官方推荐的是docker部署,docker部署直接参考官方文档即可

Docker Compose 部署 | Dify

不过私有化有时需要本地部署,由于官网并没有给出本地部署的介绍,所以下面文档给出如何在linux上部署dify的详细指南:

一、单机部署机器配置最低要求

CPU核心

内存

部署服务

2 Core

2 GB

dify-api

2 Core

2 GB

dify-worker

1 Core

512 MB

nginx

1 Core

2 GB

PostgreSQL

1 Core

1GB

Redis

2 Core

2 GB

Weaviate

二、系统Python环境安装

服务器启动需要 Python 3.12

以下是使用debian 系相关系统,利用pyenv按照python 3.12的示例

安装需要的python依赖

sudo apt update && sudo apt upgrade -y
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
    libbz2-dev libreadline-dev libsqlite3-dev curl llvm \
    libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

使用pyenv官方安装脚本

如果遇到代理问题,请开代理下载脚本,或者查看https://github.com/pyenv/pyenv进行安装

curl -fsSL https://pyenv.run | bash

设置pyenv的环境变量

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init - bash)"' >> ~/.profile

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init - bash)"' >> ~/.bash_profile

运行安装命令,指定安装的python版本

pyenv install 3.12.0
pyenv global 3.12.0
python --version

运行结果如下:

安装poetry

使用官网安装脚本安装,如遇到代理问题,请开代理

curl -sSL https://install.python-poetry.org | python3 -

添加环境变量

echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.profile
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bash_profile

验证安装

export PATH=/root/.local/bin:$PATH
poetry --version

三、中间件部署

中间件部署都默认要求是安全的内网环境,端口可以互相访问

PostgreSQL本地部署

pg由于是比较简单常见的中间件,这里简单介绍一下使用官方源安装的方式

添加PG官方仓库

sudo apt update && sudo apt install -y wget gnupg
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/postgresql.asc
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

安装pg 16

sudo apt update
sudo apt install -y postgresql-16 postgresql-contrib

检查pg版本

psql --version

修改密码为dify默认

#切换用户
sudo -i -u postgres
#修改密码
psql -c "ALTER USER postgres PASSWORD 'difyai123456';"

创建数据库dify

#注意当前用户是postgres
psql -c "CREATE DATABASE dify;"

安装pg vector插件

使用pgxn安装插件

sudo apt install -y pgxnclient
pgxn --version
sudo pgxn install vector
#注意当前用户是postgres
psql -d dify -c "CREATE EXTENSION vector;"

修改支持远程访问

编辑postgresql.conf

sudo vi /etc/postgresql/16/main/postgresql.conf

找到#listen_addresses = 'localhost',改为listen_addresses = '*'

编辑 pg_hba.conf

sudo vi /etc/postgresql/16/main/pg_hba.conf

找到

local   all   postgres   peer

改为

local   all  postgres   md5

文件末尾添加

host   all   all   0.0.0.0/0   md5

修改完成后重启

sudo systemctl restart postgresql

远程访问测试

Redis本地部署

redis由于是比较简单常见的中间件,这里就简单介绍一下

通过apt安装的方式

sudo apt install -y redis
redis-server --version

配置允许远程访问

执行下面的命令,修改redis.conf文件,

sudo vi /etc/redis/redis.conf

找到bind 127.0.0.1 ::1,改为bind 0.0.0.0,

找到protected-mode yes,改为protected-mode no,

找到requirepass foobared,改为requirepass difyai123456,修改密码为difyai123456

重启redis

sudo systemctl restart redis

测试

Weaviate本地部署

详细请参考

Weaviate 1.19(向量数据库)安装配置

四、配置npm环境

使用nvm安装nodejsh

curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash

配置环境变量后安装最新版本

#配置环境变量
source ~/.bashrc
#安装最新版本
nvm install --lts
# 安装npm
npm install -g yarn
# 修改源
npm config set registry https://registry.npmmirror.com
yarn config set registry https://registry.npmmirror.com

五、运行dify

下载源码,并切换到0.15.3的tag

git clone https://github.com/langgenius/dify.git
cd dify
git checkout tags/0.15.3 -b v0.15.3
git branch

切换到api目录,配置环境文件以及poetry依赖

复制环境变量配置文件

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

由于有些代码逻辑,前端是取后端返回的URL进行请求的,例如图标地址是后端给的地址,因此需要修改一下.env文件里面的各种http地址为具体的ip或者域名,如下图,根据自己部署的域名或者IP,将原来的127.0.0.1改成对应的地址,生产建议全域名。

在pyproject.toml文件末尾追加如下内容,使用国内poetry的依赖源

[[tool.poetry.source]]

name = "tuna"

url = "https://pypi.tuna.tsinghua.edu.cn/simple"

priority = "supplemental"

[[tool.poetry.source]]

name = "douban"

url = "https://pypi.doubanio.com/simple/"

priority = "primary"

通过poetry安装python依赖

poetry env use 3.12
poetry lock
poetry install

有时候需要重复执行一下poetry install ,确保所有依赖都安装完毕

执行数据库迁移

poetry run bash
flask db upgrade

运行API服务

poetry run bash
# 生产运行时,不加--debug参数
flask run --host 0.0.0.0 --port=5001 --debug

运行worker服务

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

运行web服务

进入到web目录,使用npm安装前端需要的依赖,然后修改环境文件

cd web
npm install

配置环境文件,在当前目录下创建文件 .env.local,并复制.env.example中的内容。根据需求修改这些环境变量的值

cp .env.example .env.local

同时需要修改.env.local文件内如下的两个地址的URL为机器IP或者对应域名

编译并运行

#构建代码
npm run build
#运行
npm run start

六、运行dify-sandbox

运行需要使用root账号,因为dify-sandbox启动时,会自动判断一些系统文件夹目录是否创建,不存在会自动创建。

安装go环境

需要安装1.22.x以上版本

sudo apt instlal golang

使用以下命令克隆仓库并进入项目目录:

git clone https://github.com/langgenius/dify-sandbox  
cd dify-sandbox  

运行以下命令安装必要的依赖:

./install.sh  

运行以下命令构建沙箱二进制文件(根据架构选择 amd64 或 arm64):

./build/build_[amd64|arm64].sh  

运行以下命令启动服务器:

./main 

七、Rerank模型安装

安装Xinference

  • 配置使用bge-reranker-v2-m3模型

https://zhuanlan.zhihu.com/p/691190576

Xinference 本地部署 Rerank 模型,提高检索结果准确性 - 专栏家

  • 启动Xinference
conda activate xinference 
export  HF_ENDPOINT=https://hf-mirror.com
export XINFERENCE_MODEL_SRC=modelscope
xinference-local -H 0.0.0.0
  • 启动模型
conda activate xinference 
xinference launch --model-name bge-reranker-v2-m3 --model-type rerank

八、总结

Dify 0.15.3版本本地部署指南详细列出了在Linux上部署Dify所需的最低机器配置、Python环境安装、中间件部署(如PostgreSQL、Redis、Weaviate)、npm环境配置以及运行Dify服务的具体步骤。通过遵循这份指南,用户可以轻松地在本地环境中搭建起Dify,享受到其强大的文本处理和分析能力。

Dify作为一款先进的文本处理和分析工具,能够为企业和个人用户提供精准、高效的文本处理服务。通过本地部署,用户可以更灵活地定制和扩展Dify的功能,满足多样化的需求。因此,强烈推荐大家尝试按照这份指南部署Dify,探索并发挥其在文本处理和分析方面的卓越能力。


作者:道一云低代码

作者想说:喜欢本文请点点关注~


http://www.kler.cn/a/613679.html

相关文章:

  • 【Spiffo】光速项目:LVGL v9框架下的MIPI简易相机_Part1
  • Unity中的MaterialPropertyBlock的作用和 Material 的区别
  • 【蓝桥杯】每日练习 Day14 递归
  • 项目复盘:websocket不受跨域限制的原理
  • 原型模式为什么可以解决构建复杂对象的资源消耗问题
  • 如何将Spring Boot项目与DeepSeek AI集成并优化为AI系统
  • 为什么要将项目部署到外部tomcat
  • Tracking Area Code(跟踪区码)
  • 【NLP 46、大模型技术发展】
  • 对于后端已经实现逻辑了,而前端还没有设置显示的改造
  • 抽象代数:群论
  • Apache HttpClient使用
  • SpringMVC——数据传递的多种方式
  • 数据库三级填空+应用(2)
  • 开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(四)
  • 记一次线上环境JAR冲突导致程序报错org.springframework.web.util.NestedServletException
  • 【学Rust写CAD】13 图像结构体(Image.rs)
  • 卷积神经网络在图像分割中的应用:原理、方法与进展介绍
  • OpenHarmony子系统开发 - init启动引导组件(三)
  • vue3使用video.js播放m3u8格式视频