Flowise镜像部署教程:适配NVIDIA GPU算力的vLLM高性能配置
1. 引言
想快速搭建一个AI聊天机器人,或者把公司内部文档变成智能问答系统,但一看到复杂的代码和框架就头疼?如果你也有这样的困扰,那么今天介绍的Flowise,可能就是你的“救星”。
Flowise是一个开源的拖拽式LLM工作流平台。简单来说,它把那些复杂的AI开发流程,比如调用大模型、处理文档、连接数据库等,都变成了一个个可视化的“积木块”。你不需要写一行代码,只需要在网页上把这些“积木块”拖来拖去,用线连起来,就能搭建出功能强大的AI应用,比如智能客服、文档问答机器人,并且能一键生成API供其他系统调用。
更棒的是,它原生支持多种模型,包括我们熟悉的OpenAI,以及可以本地部署的Ollama、LocalAI等。而今天这篇教程的重点,是教你如何通过一个预配置的Docker镜像,将Flowise与高性能的vLLM推理引擎结合,并充分利用你本地的NVIDIA GPU算力,实现一个开箱即用、性能强劲的AI应用工作流搭建平台。
学完这篇教程,你将能:
- 在几分钟内,通过Docker一键部署一个功能完整的Flowise服务。
- 理解如何配置使其适配NVIDIA GPU,并利用vLLM后端高效运行本地大模型。
- 亲手搭建一个简单的文档问答(RAG)工作流,体验零代码AI开发的魅力。
无论你是AI初学者、业务开发者,还是想快速验证AI应用场景的团队,这篇教程都将为你提供一条清晰的实践路径。我们这就开始。
2. 核心工具:Flowise与vLLM简介
在开始动手之前,我们先花几分钟了解一下即将用到的两个核心工具:Flowise和vLLM。了解它们能做什么,会让你后面的操作更加心中有数。
2.1 Flowise:你的可视化AI工作流搭建器
你可以把Flowise想象成一个专为AI应用设计的“流程图”软件,或者一个高级版的“乐高”拼装平台。
- 核心价值:零代码/低代码。它把LangChain(一个流行的AI应用开发框架)中复杂的“链”、“工具”、“向量数据库”等概念,封装成了一个个可视化的节点。你不需要理解背后的Python代码,只需要在画布上拖动这些节点,并用连线定义它们的执行顺序,就完成了一个AI工作流的逻辑设计。
- 功能强大:
- 多模型支持:一个下拉框就能在OpenAI、Anthropic、Google Gemini以及Ollama、LocalAI等本地模型间切换。
- 丰富模板:官方市场提供了超过100个现成模板,涵盖文档问答、网页抓取、SQL查询代理、自动化工作流等场景,可以直接复用并微调。
- 生产就绪:设计好的工作流可以一键导出为标准的REST API,方便嵌入到你自己的网站、APP或业务系统中。它也支持使用PostgreSQL进行数据持久化。
- 部署灵活:它本身是一个Node.js应用,可以通过npm全局安装,也可以用Docker运行。这意味着它可以从树莓派到云端服务器,在各种环境中部署。
一句话总结:如果你不想学LangChain的代码,但又想快速把一堆文档变成一个能回答问题的API,docker run flowiseai/flowise可能就是最快的办法。
2.2 vLLM:为GPU而生的高性能推理引擎
当我们选择在本地运行大模型时,推理速度(生成答案的快慢)和吞吐量(同时处理多少请求)是关键。vLLM就是为了解决这个问题而生的。
- 它是什么?vLLM是一个专注于推理(Inference)的高性能库,尤其针对像Llama、Mistral这类Transformer架构的大模型进行了深度优化。
- 它强在哪?
- 极高的吞吐量:通过其创新的PagedAttention注意力算法,它能够更高效地管理GPU内存,显著减少内存浪费,从而在同样的硬件上同时处理更多的用户请求。
- 对GPU友好:它深度绑定CUDA,能够充分发挥NVIDIA GPU的并行计算能力,让模型推理跑得更快。
- 易于集成:它提供了兼容OpenAI API格式的接口。这意味着任何设计用于调用OpenAI的应用程序(比如Flowise),只需修改一下API地址和密钥,就能无缝切换到vLLM服务的高性能本地模型上。
在我们的场景中:我们将部署一个已经集成好vLLM后端的Flowise镜像。这个镜像预先配置好了环境,当你启动它时,它会同时启动两个服务:1) Flowise本身的可视化编辑界面;2) 一个基于vLLM的本地模型服务。这样,你就能在Flowise中直接选择使用这个本地vLLM服务来驱动你的AI工作流,享受GPU加速带来的流畅体验。
3. 环境准备与镜像部署
理论部分已经清晰,现在进入实战环节。我们将通过Docker Compose的方式,一步到位地部署整个环境。请确保你的操作环境已经满足以下前提条件。
3.1 前提条件检查
在开始之前,请确认你的电脑或服务器已经准备好:
- 操作系统:Linux(如Ubuntu 20.04/22.04)、Windows(WSL2)或 macOS。本教程以Linux环境为例。
- Docker与Docker Compose:确保已安装最新版本的Docker Engine和Docker Compose插件。可以通过以下命令检查:
docker --version docker compose version - NVIDIA GPU与驱动(关键):
- 拥有一张NVIDIA GPU(如RTX 3090, 4090, A100等)。
- 安装正确版本的NVIDIA显卡驱动。
- 安装NVIDIA Container Toolkit。这是让Docker容器能够使用GPU的关键。可以参照NVIDIA官方指南进行安装。安装后,运行
nvidia-smi命令应能正常显示GPU信息。
- 网络与存储:保证网络通畅(以下载Docker镜像),并为Docker分配足够的磁盘空间(建议至少20GB可用空间)。
3.2 一键部署:使用Docker Compose
我们将所有配置写在一个docker-compose.yml文件中,实现一键启动。在你选择的项目目录下(例如~/flowise-vllm),创建这个文件。
version: '3.8' services: flowise: # 使用集成了vLLM后端和CUDA环境的特定镜像 image: your-registry/flowise-with-vllm:latest-cuda # 请替换为实际镜像地址 container_name: flowise_app restart: unless-stopped ports: - "3000:3000" # Flowise网页界面端口 - "8000:8000" # vLLM OpenAI兼容API端口(可选暴露,用于其他应用调用) environment: - PORT=3000 - DATABASE_TYPE=sqlite - DATABASE_PATH=/app/flowise.db - APIKEY_PATH=/app/.flowise - SECRETKEY_PATH=/app/.flowise - LOG_PATH=/app/logs - LOG_LEVEL=info # vLLM服务相关环境变量 - VLLM_MODEL=Qwen/Qwen2.5-7B-Instruct # 指定要加载的模型,可从HuggingFace Hub获取 - VLLM_API_KEY=sk-no-key-required # vLLM服务API密钥,本地可简单设置 - VLLM_HOST=0.0.0.0 - VLLM_PORT=8000 volumes: - flowise_data:/app # 持久化Flowise数据(工作流、配置等) - vllm_model_cache:/root/.cache/huggingface/hub # 缓存下载的模型,避免重复下载 deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] # 关键:声明容器需要使用所有GPU资源 networks: - flowise-network # 可选:如果你希望vLLM作为独立服务,也可单独定义,但上述镜像通常已集成 # vllm: # image: vllm/vllm-openai:latest # ... volumes: flowise_data: vllm_model_cache: networks: flowise-network: driver: bridge配置文件关键点解读:
- 镜像 (
image):你需要替换your-registry/flowise-with-vllm:latest-cuda为实际可用的、预集成vLLM的Flowise镜像地址。这通常由镜像提供者给出。 - 端口 (
ports):3000:3000:映射Flowise的Web UI,你将在浏览器通过http://你的服务器IP:3000访问。8000:8000:映射vLLM服务的API端口。这允许你直接从Flowise内部或通过其他工具(如curl、Postman)调用这个本地模型服务。
- 环境变量 (
environment):VLLM_MODEL:这是最重要的配置之一。它指定vLLM服务启动时要加载哪个模型。示例中为Qwen/Qwen2.5-7B-Instruct,表示从HuggingFace Hub自动下载并加载通义千问7B指令微调版。你可以根据你的GPU显存更换为其他模型(如meta-llama/Llama-3.2-3B-Instruct)。VLLM_API_KEY:为vLLM的API设置一个简单的密钥。在Flowise配置模型时需要使用。
- GPU支持 (
deploy.resources):这段配置是让Docker Compose能够将宿主机的GPU资源透传给容器的关键。确保你的Docker版本和NVIDIA Container Toolkit安装正确。 - 数据持久化 (
volumes):将重要数据挂载到宿主机,避免容器删除后数据丢失。flowise_data保存你的所有工作流,vllm_model_cache缓存下载的模型文件(通常很大,缓存后下次启动极快)。
3.3 启动服务与验证
保存好docker-compose.yml文件后,在同一个目录下打开终端,执行以下命令:
# 启动服务(后台运行) docker compose up -d # 查看服务日志,观察启动过程,特别是模型下载和加载进度 docker compose logs -f flowise启动过程可能需要一些时间,尤其是第一次运行,因为需要下载Docker镜像以及从HuggingFace Hub下载指定的大模型(模型大小可能从几GB到几十GB不等,取决于你的选择)。请耐心等待,并观察日志输出。
当你看到类似以下的日志时,说明服务已就绪:
flowise_app | [vLLM] Model loaded successfully. Ready to serve on port 8000. flowise_app | Flowise server is listening on port 3000访问与登录:
- 打开浏览器,访问
http://localhost:3000(如果部署在远程服务器,请替换为服务器IP)。 - 首次访问,系统会提示你创建管理员账号。按照指引设置邮箱和密码即可。
- (注:根据你提供的输入,镜像可能预置了演示账号
kakajiang@kakajiang.com/KKJiang123.,你可以尝试直接登录,但出于安全考虑,建议在首次使用后修改或创建自己的账号。)
- (注:根据你提供的输入,镜像可能预置了演示账号
成功登录后,你将进入Flowise的主界面。至此,一个基于vLLM高性能后端、支持GPU加速的Flowise平台就部署完成了!
4. 快速上手:搭建你的第一个RAG聊天机器人
平台跑起来了,我们来实际感受一下它的威力。我们将用最经典的“检索增强生成”(RAG)场景,快速搭建一个能基于你提供的文档进行问答的聊天机器人。整个过程完全在可视化界面上完成。
4.1 配置vLLM作为模型后端
首先,我们需要告诉Flowise,使用我们刚刚启动的本地vLLM服务。
- 在Flowise左侧边栏,点击
Chatflows,然后点击+ Add New创建一个新的聊天流。 - 在画布空白处右键,选择
Add Node。 - 在节点搜索框中输入
Chat,找到并添加ChatOpenAI节点到画布上。(是的,虽然我们用vLLM,但因为它兼容OpenAI API,所以我们依然使用这个节点来连接。) - 点击画布上的
ChatOpenAI节点进行配置:Model Name: 填写你加载的模型名称,如Qwen2.5-7B-Instruct。这个名称主要起标识作用。OpenAI API Key: 填写我们在docker-compose.yml中设置的VLLM_API_KEY,即sk-no-key-required。Base Path:这是关键!填写我们vLLM服务的内部地址。由于它们在同一个Docker网络中,可以直接通过服务名访问。填写http://localhost:8000/v1。注意末尾的/v1是OpenAI API的版本路径。- 其他参数如温度 (
Temperature)、最大生成长度 (Max Token) 可以根据需要调整。
- 点击
Save保存配置。
4.2 构建RAG工作流
现在,我们构建一个完整的链条:上传文档 -> 切分文本 -> 向量化存储 -> 检索 -> 生成答案。
- 添加文档加载节点:搜索并添加
Text File节点。配置它,允许上传.txt,.md,.pdf等格式的文件。 - 添加文本切分节点:搜索并添加
Recursive Character Text Splitter节点。将它连接到Text File节点的输出。这个节点负责把长文档切成适合处理的小片段。 - 添加向量数据库节点:搜索并添加
In-Memory Vector Store节点。这是一个轻量级的向量数据库,适合演示。将Text Splitter节点连接到它。 - 配置向量化模型:点击
In-Memory Vector Store节点,需要为它配置一个“嵌入模型”(Embedding Model)来将文本转换为向量。在Embedding下拉框中,选择OpenAI Embedding。- 在弹出的配置中,
OpenAI API Key同样填写sk-no-key-required。 Base Path填写http://localhost:8000/v1。(是的,许多vLLM部署也同时提供嵌入模型端点。)
- 在弹出的配置中,
- 添加检索器节点:搜索并添加
Vector Store Retriever节点,连接到In-Memory Vector Store节点。它负责根据用户问题,从向量库中找出最相关的文本片段。 - 组装问答链:
- 添加一个
Prompt Template节点。在里面编写一个简单的提示词模板,例如:请根据以下上下文来回答问题。如果上下文里没有答案,就诚实地回答你不知道。 上下文:{context} 问题:{question} 答案: - 添加一个
LLM Chain节点。将Prompt Template和之前配置好的ChatOpenAI节点都连接到它。
- 添加一个
- 连接检索与生成:将
Vector Store Retriever节点的输出,连接到LLM Chain节点的一个输入(通常对应context变量)。 - 添加聊天输入输出:从左侧添加
Chat Input和Chat Output节点。将Chat Input连接到LLM Chain(对应question变量),再将LLM Chain的输出连接到Chat Output。
最终,你的画布应该看起来像一个有逻辑的数据流管道。下图展示了一个简化的工作流结构:
4.3 测试与对话
- 点击画布右上角的
Save按钮,给你的聊天流起个名字,比如“我的文档助手”。 - 点击右上角的
Play按钮,激活这个聊天流。 - 右侧会弹出聊天窗口。首先,你需要“喂”文档给它:
- 在聊天窗口下方,你应该能看到文件上传区域(来自
Text File节点)。上传一个你的文档(比如一份产品说明书、一篇技术文章)。 - 上传后,系统会自动执行切分和向量化存储流程。
- 在聊天窗口下方,你应该能看到文件上传区域(来自
- 现在,在聊天输入框里,提出一个基于你上传文档内容的问题。例如,如果上传了产品说明书,可以问“这个产品的主要特性是什么?”
- 按下回车,Flowise会自动执行整个工作流:检索相关文本片段 -> 组合成提示词 -> 发送给本地vLLM模型 -> 生成答案并显示在聊天窗口。
恭喜!你已经成功搭建并运行了一个完全本地化的、GPU加速的智能文档问答机器人。整个过程没有编写任何后端代码。
5. 总结
通过本篇教程,我们完成了一次从零开始的高性能AI应用平台部署与实践。我们来回顾一下核心要点:
1. 我们做了什么?我们利用一个预集成了vLLM的Docker镜像,通过Docker Compose一键部署了Flowise可视化AI工作流平台。配置中重点确保了NVIDIA GPU资源的透传,使得Flowise能够利用本地的vLLM服务,高效运行诸如Qwen、Llama等开源大模型。
2. 关键收获是什么?
- 部署简化:Docker化部署屏蔽了复杂的Python环境、CUDA驱动、模型依赖等问题,真正做到开箱即用。
- 性能保障:vLLM后端为本地模型推理提供了接近生产环境的吞吐量和低延迟,尤其适合需要快速响应的交互式应用。
- 开发革命:Flowise的可视化拖拽界面,将AI应用开发的门槛降至极低。你无需成为LangChain专家,也能构建出检索、问答、决策等复杂工作流。
3. 接下来可以探索什么?
- 更换更强模型:根据你的GPU显存,尝试加载更大的模型(如14B、70B参数),以获得更强的推理和能力。
- 使用生产级向量库:将演示中的内存向量库,替换为持久化的
PostgreSQL+pgvector或Chroma、Weaviate等专业向量数据库。 - 探索更多节点和模板:Flowise市场中有大量现成模板,如网站爬虫、SQL查询代理、自动化工具链(Zapier),可以直接拿来改造使用。
- 集成外部API:通过
Tool节点,让你的AI工作流能够调用搜索引擎、计算器、公司内部系统等,扩展其能力边界。
将先进的vLLM推理引擎与极简的Flowise可视化开发相结合,为我们提供了一条快速构建、测试和部署企业级AI应用的捷径。无论是用于内部知识管理、智能客服原型,还是复杂的业务自动化流程,这个组合都值得你深入尝试。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。