基于 Dify + vLLM + Qwen3 构建问答机器人

一、环境准备

  • 操作系统:Ubuntu 20.04/22.04(推荐),也可用其他 Linux
  • Python 3.8 及以上
  • 推荐有 NVIDIA GPU(如 A100, V100, 3090, 4090 等)

二、安装 vLLM 并加载 Qwen3

1.安装依赖

python 复制代码
sudo apt update
sudo apt install python3-pip git -y
pip3 install --upgrade pip
  1. 安装 vLLM
python 复制代码
pip3 install vllm
  1. 下载 Qwen3 模型(以 Qwen1.5-7B-Chat 为例)

资源加速

python 复制代码
export https_proxy=http://turbo.gpushare.com:30000 http_proxy=http://turbo.gpushare.com:30000
export https_proxy=http://turbo2.gpushare.com:30000 http_proxy=http://turbo2.gpushare.com:30000

下载 Qwen3 模型 👈

python 复制代码
pip3 install huggingface_hub
python3 -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='Qwen/Qwen3-8B', local_dir='./Qwen3-8B')"



python3 -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='Qwen/Qwen3-4B', local_dir='./Qwen3-4B')"

关闭资源加速

python 复制代码
unset http_proxy && unset https_proxy
  1. 启动 vLLM OpenAI API 服务
python 复制代码
python3 -m vllm.entrypoints.openai.api_server --model Qwen3-8B --host 0.0.0.0 --port 8000 --dtype half

python3 -m vllm.entrypoints.openai.api_server --model Qwen3-4B --host 0.0.0.0 --port 8000 --dtype half

python3 -m vllm.entrypoints.openai.api_server \
  --model Qwen3-8B \
  --host 0.0.0.0 \
  --port 8000 \
  --dtype half \
  --gpu-memory-utilization 0.8 \
  --max-num-batched-tokens 2048 \
  --trust-remote-code

vLLM OpenAI API 服务已经成功启动了!从日志可以看到:

服务器已经在 http://0.0.0.0:8000 上运行

模型已经成功加载

API 路由都已经正确配置(包括 /v1/chat/completions 等)

先测试一下 vLLM 服务是否正常工作:

python 复制代码
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen3-8B",
    "messages": [{"role": "user", "content": "你好"}]
  }'


curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen3-4B",
    "messages": [{"role": "user", "content": "你好"}]
  }'

连通成功后效果如下:

三、 使用 tmux 来管理多个终端

首先安装 tmux(如果还没安装):

python 复制代码
apt-get install tmux

创建一个新的 tmux 会话:

python 复制代码
tmux

tmux 的基本操作(所有命令都是先按 Ctrl+b,松开后再按其他键):

重要快捷键(先按 Ctrl+b,再按以下键):

  • c:创建新窗口

  • n:切换到下一个窗口

  • p:切换到上一个窗口

  • w:显示所有窗口列表

  • d:暂时断开会话(服务继续运行)

  • :进入复制模式(可以查看历史输出,按 q 退出)

如果不小心退出了:

python 复制代码
# 重新连接到 tmux 会话
tmux attach

完整操作步骤:

python 复制代码
# 1. 启动 tmux
tmux

# 2. 在第一个窗口运行 vLLM 服务
python3 -m vllm.entrypoints.openai.api_server --model Qwen3-8B --host 0.0.0.0 --port 8000 --dtype half

# 3. 按 Ctrl+b,再按 c 创建新窗口

# 4. 在新窗口中测试服务
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen3-8B",
    "messages": [{"role": "user", "content": "你好"}]
  }'

三、安装 Dify

然后按照步骤安装 Dify,但有几点建议:

注意事项:

  • 保持 vLLM 服务在运行状态(不要关闭那个终端)
  • 在新的终端窗口中运行 Dify 的安装步骤
python 复制代码
# 1. 创建新目录(可选,但建议)
mkdir dify_app
cd dify_app

# 2. 克隆代码
git clone https://github.com/langgenius/dify.git
cd dify

# 3. 建议创建虚拟环境(可选,但建议)
python3 -m venv venv
source venv/bin/activate

# 4. 安装依赖
pip3 install -r requirements.txt

# 5. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,添加:
# OPENAI_API_BASE_URL=http://127.0.0.1:8000/v1
# OPENAI_API_KEY=EMPTY
# MODEL_PROVIDER=openai

# 6. 启动 Dify
python3 main.py

安装依赖

python 复制代码
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv git build-essential
sudo apt-get install -y postgresql postgresql-contrib redis-server
sudo apt-get install -y nodejs npm

建议用 nvm 安装 Node.js 18.x(可选)务必在root或tmp下安装:

python 复制代码
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 18
nvm use 18

准备数据库

启动 PostgreSQL 和 Redis

python 复制代码
   sudo service postgresql start
   sudo service redis-server start

创建数据库和用户(以 dify/dify 为例):

python 复制代码
 sudo -u postgres psql

现在的状态

  • PostgreSQL 和 Redis 服务都已启动,正常。
  • 你还在 PostgreSQL 的命令行界面(psql),但没有创建数据库和用户。

正确操作方法

我们需要在 postgres=# 提示符下依次输入(每条命令后回车):

sql 复制代码
CREATE DATABASE dify;
CREATE USER dify WITH PASSWORD 'dify';
GRANT ALL PRIVILEGES ON DATABASE dify TO dify;
\q
  • \q 用于退出 psql 命令行。

如果你已经退出 psql,可以重新进入:

python 复制代码
sudo -u postgres psql

克隆 Dify 源码并安装后端(请逐条执行)

python 复制代码
git clone https://github.com/langgenius/dify.git
cd dify
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

Dify 项目结构近期有变化导致 requirements.txt被替代为~/dify/api 目录下 pyproject.toml 文件,这说明 Dify 后端现在采用了新的 Python 包管理方式(PEP 517/518 标准),通常用 pip 或 poetry、uv、pipx 等工具来安装依赖。

因此我们使用 pip 安装依赖

python 复制代码
pip install .

这会根据 pyproject.toml 自动安装所有依赖。

如遇到报错:

Apply to .bash_histor...

× Cannot uninstall blinker 1.4

╰─> It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

可以用 --ignore-installed 参数强制安装:

python 复制代码
pip install . --ignore-installed blinker

五、配置环境变量

在 ~/dify 目录下手动创建 .env 文件,内容如下(根据你的数据库和 Redis 配置调整):

python 复制代码
# PostgreSQL
DATABASE_URL=postgresql://dify:dify@localhost:5432/dify

# Redis
REDIS_URL=redis://localhost:6379/0

# 端口
PORT=5000

# 其他可选配置
# OPENAI_API_KEY=sk-xxx
# 参考官方文档补充更多配置项

六、初始化数据库

进入 api 目录

python 复制代码
cd ~/dify/api
安装 uv(如果还没装)
python 复制代码
pip install uv
安装依赖

在 ~/dify/api 目录下执行:

python 复制代码
uv sync --dev
复制并编辑 .env 文件

如果 api 目录下没有 .env.example,你可以手动创建 .env 文件,内容参考前述建议(数据库、Redis、SECRET_KEY 等)。

生成 SECRET_KEY:

python 复制代码
echo "SECRET_KEY=$(openssl rand -base64 42)" >> .env

数据库迁移(初始化)

在 ~/dify/api 目录下执行:

python 复制代码
uv run flask db upgrade

这一步会自动根据你的 .env 配置连接数据库并初始化表结构。

查看 api 目录下的 README 或官方文档

Dify 近期有较大结构调整,数据库迁移命令可能有变化。

如果 flask db upgrade 依然不可用,可以尝试:

python 复制代码
flask db upgrade

七、启动后端服务

python 复制代码
python3 main.py

默认监听 5000 端口。

八、安装并构建前端

python 复制代码
cd web
npm install
npm run build

构建完成后,静态文件会在 web/dist 目录。

九、启动前端服务

你可以用 nginx 或 serve 工具托管 web/dist 静态文件。例如:

python 复制代码
npm install -g serve
serve -s dist -l 3000

现在前端服务在 3000 端口。

十、访问和配置

  • 注册账号,后台配置你的 vLLM+Qwen3 服务
相关推荐
LitchiCheng5 小时前
复刻低成本机械臂 SO-ARM100 舵机配置篇(WSL)
人工智能·机器人
OJAC近屿智能7 小时前
宇树科技开启“人形机器人格斗盛宴”
人工智能·科技·ui·机器人·aigc·llama·近屿智能
望获linux11 小时前
北京亦庄机器人马拉松:人机共跑背后的技术突破与产业启示
linux·人工智能·机器人·操作系统·开源软件·rtos·具身智能
szxinmai主板定制专家11 小时前
AGV、AMR机器人控制器x86/RK3588/NV各有什么优劣势?
机器人
万俟淋曦1 天前
【论文速递】2025年09周 (Robotics/Embodied AI/LLM)
人工智能·ai·机器人·大模型·llm·论文·具身智能
寻丶幽风1 天前
论文阅读笔记——TesserAct: Learning 4D Embodied World Models
论文阅读·笔记·机器人·具身智能·世界模型
猿饵块1 天前
机器人--主机--控制系统
机器人
LIUDAN'S WORLD1 天前
自主机器人模拟系统
人工智能·python·目标检测·计算机视觉·目标跟踪·机器人
猿饵块1 天前
机器人--底盘
机器人