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

简述网站开发的三层架构百度爱采购服务商查询

简述网站开发的三层架构,百度爱采购服务商查询,哈尔滨建设信息网,如何为公司做网站目录 背景 一、单机部署机器配置最低要求 二、系统Python环境安装 安装需要的python依赖 使用pyenv官方安装脚本 安装poetry 三、中间件部署 PostgreSQL本地部署 添加PG官方仓库 安装pg 16 检查pg版本 修改密码为dify默认 创建数据库dify 安装pg vector插件 修改…

目录

背景

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

二、系统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)"' >> ~/.bashrcecho 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init - bash)"' >> ~/.profileecho '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.dtcms.com/wzjs/329033.html

相关文章:

  • 爱做片视频网站太原百度seo排名软件
  • 凉州区住房和城乡建设局网站seopeixun com cn
  • 怎么做云购网站吗郑州网络推广平台有哪些
  • 专题网站搭建新手如何找cps推广渠道
  • 查找网站域名淘宝店铺推广
  • 网站增加域名备案专业seo培训学校
  • 七号技师 wordpressseo关键词快速排名
  • 织梦系统网站如何创建网址
  • 怎么做个手机版的网站sem专员
  • 网站建设实训个人总结常州谷歌推广
  • 申报城市维护建设税上哪个网站小红书推广运营
  • wordpress 图片环绕北京关键词优化报价
  • 源码网站取名网站被禁用如何解决
  • css 网站根目录安卓优化大师官方版本下载
  • 建个网站 做ib代理百度自媒体注册入口
  • 新手学做百度联盟网站长尾关键词快速排名软件
  • 网站建设公司上海做网站公司排名百度网盘客服人工电话
  • 中山住房和建设局工程交易网站社群营销策略有哪些
  • wordpress文章页的三大标签seo辅助工具
  • 网络销售型网站有哪些内容图片外链上传网站
  • 网站规划的意义铜仁搜狗推广
  • 怎么选择宜昌网站建设企业推广的渠道有哪些
  • 广州公司网站建设地推怎么做最有效
  • 企业管理培训课程有哪些seo外链专员工作要求
  • 水果配送网站建设新疆今日头条新闻
  • 西安做北郊做网站上海网站seo
  • 网站注册价格网站更新seo
  • 北京住建网站域名注册多少钱
  • 如何知道网站是否被k中国的搜索引擎有哪些
  • 模板网站有利于优化最新国内你新闻