dify 源码方式安装部署

前情提要

dify版本:v0.14.2
python管理器:miniconda
系统:Ubuntu 22.04

环境创建

用Conda命令创建dify执行的环境

/~$ conda create -n dify_v0.14.2 python=3.12
# 激活环境
/~$ conda activate dify_v0.14.2

后端部署

dify的Github下载源码

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

在部署环境之前要预部署PostgreSQL\Redis\Weaviate,如果本地没有预先部署,那就参考官方文档执行docker安装↓。
本示例参考官方文档步骤部署。

# 进入下载下来的dify源码目录
/dify-0.14.2$ cd docker
/dify-0.14.2/docker$ cp middleware.env.example middleware.env
/dify-0.14.2$/docker docker compose -f docker-compose.middleware.yaml up -d

执行结果
在这里插入图片描述

服务配置

#1. 进入后端服务目录
/dify-0.14.2$ cd api
#2. 备份配置文件
/dify-0.14.2/api$ cp .env.example .env
#3. 生成随机密钥:
#此条命令会在.env配置文件里的SECRET_KEY配置项后面追加一串随机符
/dify-0.14.2/api$ awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
#4. 修改.env配置文件相关配置:
#例如PostgreSQL\Redis\Weaviate\Celery的相关连接配置,请根据实际的情况对应修改

服务依赖安装

dify的API服务依赖包使用Poerty管理

#安装配置poerty,一般安装pip时会有poetry,可用pip list查看,若没有再行安装,本示例使用1.8.5
/dify-0.14.2/api$ pip install poetry==1.8.5
#安装依赖,注意该命令的执行目录要在包含poetry的相关文件的目录下执行方可生效
/dify-0.14.2/api$ poetry env use 3.12
/dify-0.14.2/api$ poetry install

PS:使用poetry env use 3.12这条命令如果抛出以下异常:
在这里插入图片描述
解决方法

  1. 执行pip list 看下是否有安装,没有的话pip install安装
  2. 执行which poetry 看下poetry安装目录,若是不在/usr/bin下那便带上对应路径去执行
  3. 如果还是报错,比如可能会出现msgpack等依赖包没有找到问题,那就重新安装poetry吧

数据库迁移

/dify-0.14.2/api$ poetry shell
/dify-0.14.2/api$ poetry run python -m flask db upgrade

启动API

 /dify-0.14.2/api$ poetry run python -m flask run --host 0.0.0.0 --port=5001 --debug

启动Worker服务

#Linux/MacOS:
/api $ celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace --loglevel INFO
#Windows:
/api $ celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace --loglevel INFO

前端Web部署

环境:NodeJS 1.8.x(LTS)、NPM8.x+

  • 进入web目录
/dify-0.14.2/$ cd web
  • 备份配置文件
/dify-0.14.2/web$ cp .env.example .env
  • 安装依赖包
/dify-0.14.2/web$ npm install
  • 构建代码
/dify-0.14.2/web$ npm run build
  • 启动web
 /dify-0.14.2/web$ npm run start 

PS:若是npm run start中cp命令出错了,删掉cp命令操作,手动拷贝文件到对应目录下即可。

尽管建议仅在 Docker 环境下启动 Dify 以减少工作量和复杂度[^1],但从源码安装也是可行的选择。以下是关于如何在 CentOS 7.5 上从源码安装和配置 Dify 的说明。 ### 准备环境 #### 更新系统包管理器 为了确保所有依赖项都是最新的,在开始前应该更新系统的软件包列表: ```bash sudo yum update -y ``` #### 安装必要的构建工具和库 编译源代码通常需要一些基础开发工具和支持库。可以通过下面命令一次性安装这些必需品: ```bash sudo yum groupinstall "Development Tools" -y sudo yum install epel-release -y sudo yum install python3-devel openssl-devel libffi-devel gcc make automake autoconf curl git wget unzip bzip2 -y ``` ### 获取并准备Dify源码 #### 克隆官方Git仓库 访问 GitHub 或其他托管平台上的 Dify 开发者页面找到项目的 Git 地址,并执行如下操作获取最新版本的源代码: ```bash git clone https://github.com/dify-ai/dify.git /path/to/your/local/repo cd /path/to/your/local/repo ``` 请注意替换 `/path/to/your/local/repo` 为实际想要保存项目的位置路径。 ### 构建与运行 #### 设置Python虚拟环境(推荐) 创建一个新的 Python 虚拟环境可以帮助隔离不同应用程序之间的依赖关系冲突: ```bash python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip setuptools wheel ``` #### 安装Python依赖项 进入克隆下来的目录内,利用 `requirements.txt` 文件来安装所需的 Python 库: ```bash pip install -r requirements.txt ``` 如果存在多个这样的文件,则可能还需要针对特定功能模块分别处理它们各自的依赖关系。 #### 配置应用参数 根据实际情况编辑配置文件中的各项设置,比如数据库连接字符串、API 密钥等敏感数据应妥善保管而不直接写入代码中;对于生产环境中使用的密钥和其他重要信息应当采用安全的方式存储和传递给程序读取。 #### 编译前端资源 (如果有) 部分 Web 类型的应用可能会涉及到静态资产如 CSS 和 JavaScript 文件的打包过程,这一步骤取决于具体框架的要求而有所不同。一般情况下会涉及 Node.js 及其 npm 工具链来进行此类任务。如果是这种情况,请先确认已经正确设置了相应的开发环境再继续下一步。 #### 启动服务端口监听进程 最后按照文档指示启动后台服务器实例即可完成整个流程。大多数时候会有类似以下方式供开发者选择: ```bash # 使用 gunicorn 运行 WSGI 应用作为守护线程 gunicorn -w 4 -b 0.0.0.0:8000 wsgi:app ``` 以上就是大致步骤概述,具体的细节还是要参照官方提供的指南来做调整优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值