Dify+Xinference+简单Rag知识库

46 阅读4分钟

云服务器准备

passport.compshare.cn/register?re…

采用优云智算,目前来说价格比较实惠,大家可以采用我的邀请链接

选择纯净的ubuntu系统+3090*1显卡

image.png

  1. 网络加速

image.png

安装驱动与CUDA

CUDA版本在12.4及以上,新版本xinference支持较好

  1. 删除现有的CUDA包

image.png

sudo apt-get --purge remove "*cuda*"
sudo apt-get --purge remove "*nvidia*"
sudo apt-get autoremove
sudo apt-get autoclean

image.png

  1. 删除之前的CUDA目录
sudo rm /etc/apt/sources.list.d/cuda*
sudo rm /etc/apt/preferences.d/cuda*

3. 清理apt源

初次安装或者没有配置则不管

sudo rm /etc/apt/sources.list.d/cuda*
sudo rm /etc/apt/preferences.d/cuda*

image.png

  1. 重新安装CUDA 12.4
# 下载并设置 pin 文件
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600

image.png

此处一定要开启网络加速,否则下载速度极慢

# 下载并安装 CUDA 仓库包
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb

image.png

sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
# 更新软件包列表
sudo apt-get update

image.png

# 安装 CUDA 12.4
sudo apt-get -y install cuda-12-4

5. 设置环境变量

# 编辑 ~/.bashrc 文件
sudo vim ~/.bashrc
    
# 添加以下行
export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

# 保存并应用更改
source ~/.bashrc



也可以按照以下方式,设置环境变量,将以下内容添加到 ~/.bashrc:
```bash
echo 'export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc

image.png

  1. 重启系统
sudo reboot

7. 验证安装

# 检查 CUDA 版本
nvcc --version

# 检查 NVIDIA 驱动和 CUDA 版本
nvidia-smi

image.png

安装Docker

  1. 更新系统包
sudo apt update
sudo apt upgrade -y

2. 安装必要依赖

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y

3. 创建目录

sudo mkdir -p /etc/apt/sources.list.d

4. 添加Docker GPG密钥(使用阿里云镜像)

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

5. 添加Docker仓库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

6. 更新包索引

sudo apt update

7. 安装docker

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

8. 启动并启用docker

sudo systemctl enable docker

9. 将用户添加到 docker 组

sudo usermod -aG docker $USER

10. 重新登录或刷新组权限

newgrp docker

11. 配置docker 国内镜像源

创建 Docker 配置目录
sudo mkdir -p /etc/docker

12. 配置镜像源

sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
  "registry-mirrors": [
    "https://docker.1panel.live",
    "https://docker.1ms.run",
    "https://docker.mybacc.com",
    "https://dytt.online",
    "https://lispy.org",
    "https://docker.xiaogenban1993.com",
    "https://docker.yomansunter.com",
    "https://aicarbon.xyz",
    "https://666860.xyz",
    "https://a.ussh.net",
    "https://hub.littlediary.cn",
    "https://hub.rat.dev",
    "https://docker.m.daocloud.io"
  ]
}
EOF

13. 重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

14. 验证docker安装

docker --version

15. 检查 Docker Compose 版本

docker compose version

16. 测试 Docker 运行

docker run --rm hello-world

安装其余软件

  1. 安装 Git
sudo apt install git -y

2. 安装 FFmpeg(用于 OpenAI TTS)

sudo apt install ffmpeg -y

3. 安装 Node.js 22

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

image.png 4. 安装 PNPM

该步骤安装可能会报错,由于第三步安装的问题;如上图,我们需要再执行 sudo apt install nsolid -y

sudo npm install -g pnpm

依赖安装

dify后端所需pyenv

  1. git拉取依赖
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

2. 配置环境变量

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

3. 重新加载配置

source ~/.bashrc

4. 设置环境变量使用国内镜像

export PYTHON_BUILD_MIRROR_URL="https://registry.npmmirror.com/binary.html?path=python/"    
export PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM=1  

5. 管理安装python环境

pyenv install 3.12
sudo apt install python3-pip

6. 配置 pip 国内镜像

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

7. 安装 uv

pip install uv

ls -la ~/.local/bin/uv

8. 添加到 PATH

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

9. 重新加载配置

source ~/.bashrc

10. 验证 PATH

echo $PATH

uv --version

安装dify

  1. 克隆仓库
cd ~
git clone https://github.com/langgenius/dify.git

2. 进入项目目录

cd dify

3. 进入 docker 目录

cd docker

4. 复制环境变量文件

cp .env.example .env

5. 启动中间件

docker compose up -d

6. 开放端口

3000,5432,40096,6379,5001

7. 访问 Dify

http://your_server_ip/install

image.png

安装miniconda

  1. 下载 Miniconda 安装脚本
# 对于 Linux x86_64 系统
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh

# 如果 wget 没有安装,先安装 wget
# sudo apt-get update && sudo apt-get install wget -y

image.png

  1. 验证下载文件的完整性:
sha256sum ~/miniconda.sh

3. 运行安装脚本:

bash ~/miniconda.sh -b -p $HOME/miniconda

4. 初始化 conda:

echo 'export PATH="$HOME/miniconda/bin:$PATH"' >> ~/.bashrc


source ~/.bashrc


conda init bash

# 如果没有生效就重新init  再执行 source ~/.bashrc

image.png

  1. 配置国内镜像源(清华源):

cat > ~/.condarc << EOF
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
EOF


  1. 清除缓存并更新 conda:
# 清除缓存
conda clean -i

# 更新 conda
conda update -n base -c defaults conda

7. 验证安装:

# 检查 conda 版本
conda --version

# 检查配置
conda config --show

安装xinference

  1. 创建xinference环境
conda create -n xinference python=3.11

2. 切换环境

conda activate xinference

3. 选择transformers引擎与vllm引擎

安装比较耗时间

pip install "xinference[transformers,vllm]"

Xinference 会使用 <HOME>/.xinference 作为主目录来存储一些必要的信息,比如日志文件和模型文件,其中 <HOME> 就是当前用户的主目录

image.png

使用XINFERENCE_MODEL_SRC="modelscope" 配置使用魔撘社区

XINFERENCE_HOME=/home/ubuntu/muyan/xinference 内容存放到指定目录

XINFERENCE_MODEL_SRC="modelscope" XINFERENCE_HOME=/home/ubuntu/test/xinference xinference-local --host 0.0.0.0 --port 9997

image.png

下载大模型、embedding、reranker模型

  1. 访问xinference
http://ip:9997/

image.png

  1. 安装qwen 0.5b

image.png

image.png

  1. embedding 模型

image.png

后台会报错,缺少包,直接进行安装即可.然后在进行二次部署

pip install sentence-transformers

image.png

  1. reranker 模型

image.png

同样会因为少包报错,pip install FlagEmbedding==1.2.11 然后重新部署

dify设置模型厂商

image.png

image.png

image.png

image.png

  1. 构建rag知识库

image.png

image.png

image.png

image.png

常见问题

File "/app/api/libs/rsa.py", line 58, in get_decrypt_decoding raise PrivkeyNotFoundError(f"Private key not found, tenant_id: {tenant_id}") libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: d4dcdc6e-bba7-40d4-a7c5-defcc14d6636 dify报错

1.由于更换了部署方式,或者 api/storage/privkeys 删除导致,这个文件是用来加密大模型密钥的,因此丢失后不可逆。可以使用如下命令进行重置加密公私钥:

docker exec -it docker-api-1 flask reset-encrypt-key-pair