ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

将 Dify 接入 vLLM 后端:用 vLLM 为 Dify 提供高性能 LLM 推理服务的完整部署指南

将 Dify 接入 vLLM 后端:用 vLLM 为 Dify 提供高性能 LLM 推理服务的完整部署指南 将 Dify 接入 vLLM 后端用 vLLM 为 Dify 提供高性能 LLM 推理服务的完整部署指南【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm本文以 vLLM 仓库中的 Dify 部署文档为主线讲解如何以 vLLM 作为后端推理引擎为开源 LLM 应用平台 Dify 提供模型服务从安装 vLLM 环境、启动 OpenAI 兼容的vllm serve服务到用 Docker Compose 拉起 Dify、在 Dify 中配置 vLLM 模型提供方并创建测试聊天机器人。读完本篇你可以独立完成Dify vLLM的端到端部署并理解两者之间基于 OpenAI 兼容接口的对接原理。背景Dify 与 vLLM 的分工Dify 是一个开源的 LLM 应用开发平台它将智能体工作流agentic AI workflow、RAG 流水线、Agent 能力、模型管理与可观测性等功能整合在一个直观的界面中帮助开发者快速从原型走向生产环境。Dify 本身不做推理加速而是把模型推理委托给外部模型提供方——它原生支持将 vLLM 配置为模型提供方Model Provider从而借助 vLLM 的高吞吐、显存高效的推理能力来服务大语言模型。两者之间的连接纽带是OpenAI 兼容的 HTTP API。vLLM 的vllm serve命令启动的 HTTP 服务实现了 OpenAI 的 Completions API 与 Chat API 等接口详见 OpenAI 兼容服务器文档因此 Dify 只需按 OpenAI 客户端的方式填写API Endpoint URL形如http://host:port/v1即可调用。这也是为什么文档强调 vLLM 服务端必须加载支持的 chat completion 模型——Chat Completions API 仅适用于带 chat template 的文本生成模型。前置条件部署前需要完成两件事准备 vLLM 环境以及安装 Docker 与 Docker Compose用于部署 Dify。pip install vllm同时请确保系统已安装 Docker 引擎和 Docker Compose。Dify 侧的所有服务Web、API、Worker、数据库、缓存等都将由 Docker Compose 编排启动。部署步骤以下步骤完整继承自仓库中的 Dify 部署文档按顺序执行即可。第一步启动 vLLM 服务选择一个支持 chat completion 的模型启动 vLLM 服务vllm serve Qwen/Qwen1.5-7B-Chatvllm serve是 vLLM CLI 的serve子命令其入口实现在 serve.py。从源码可以看到该子命令的描述明确定位为 Launch a local OpenAI-compatible API server to serve LLM completions via HTTP并在非 gRPC 模式下经由 launcher 模块 的setup_server/run_server拉起 API 服务器参数解析统一由 cli_args.py 中的make_arg_parser完成可通过--helpModelConfig、--helpFrontend或--helpall按分组查看所有可配置项。服务默认监听8000端口因此示例中 Dify 侧的 Endpoint 通常填http://{vllm_server_host}:8000/v1。第二步用 Docker Compose 启动 Dify按照 Dify 官方的快速启动方式部署git clone https://github.com/langgenius/dify.git cd dify cd docker cp .env.example .env docker compose up -d关键点cp .env.example .env这一步不能跳过——Docker Compose 依赖该.env文件中的环境变量如服务端口、密钥等完成初始化docker compose up -d以守护模式启动全部服务。第三步初始化登录打开浏览器访问http://localhost/install配置基础登录信息管理员账号等并登录 Dify。第四步安装 vLLM 模型提供方登录后点击右上角的用户菜单头像图标下方进入 Settings设置点击Model Provider模型供应商在列表中找到vLLM提供方并点击安装。第五步填写 vLLM 提供方参数安装后需要填写模型提供方详情各项取值如下以第一步的示例模型为例配置项取值Model TypeLLMModel NameQwen/Qwen1.5-7B-ChatAPI Endpoint URLhttp://{vllm_server_host}:{vllm_server_port}/v1Model Name for API EndpointQwen/Qwen1.5-7B-ChatCompletion ModeCompletion两个占位符需要按实际环境替换{vllm_server_host}是运行vllm serve的机器地址{vllm_server_port}是 vLLM 监听端口默认8000。注意Model Name与Model Name for API Endpoint的区别前者是 Dify 界面中展示和选择的逻辑名称后者是真正发送给 vLLM 的/v1/chat/completions请求体中model字段的内容必须与vllm serve加载的模型标识一致。第六步创建测试聊天机器人进入Studio → Chatbot → Create from Blank在类型中选择Chatbot即可创建一个空白聊天应用。第七步开始对话点击刚创建的聊天机器人打开聊天界面发送消息即可与背后的 Qwen/Qwen1.5-7B-Chat 模型交互。至此Dify 的 Web 界面 → Dify 后端 → vLLM OpenAI 兼容 API → 模型的完整链路即被打通。深入理解请求是如何从 Dify 流到 vLLM 的Dify 配置中的API Endpoint URL末尾统一以/v1结尾对应 vLLM 暴露的一组 OpenAI 兼容端点。根据 OpenAI 兼容服务器文档vLLM 至少支持以下 APICompletions API/v1/completions适用于文本生成模型Chat Completions API/v1/chat/completions适用于带 chat template 的文本生成模型——Dify 聊天场景走的就是这条路径此外还有 Chat Completions batch API/v1/chat/completions/batch、Responses API、Embeddings API 以及语音转写/翻译 API 等可在同一 vLLM 实例上复用。由此可以给出两条与 Dify 对接直接相关的结论模型选择约束若在 Dify 中把 vLLM 作为提供方却选择了纯文本非 chat模型/v1/chat/completions请求将无法按预期工作这正是原文档要求supported chat completion model的原因采样参数透传vLLM 支持 OpenAI API 之外的参数如top_k通过 OpenAI Python 客户端的extra_body传入例如extra_body{top_k: 50}。Dify 在编排中对模型行为有细粒度控制需求时可以关注这一通道。另外vLLM 服务默认会应用 Hugging Face 模型仓库中的generation_config.json即模型创建者推荐的采样默认值可能会覆盖接口默认值若希望关闭该行为可在启动服务端时传--generation-config vllm。生产环境的注意事项API Key 的覆盖范围若为vllm serve配置了--api-key或VLLM_API_KEY环境变量需要注意该密钥只保护/v1、/v2、/inference路径前缀下的请求同服务器上的其他端点如/invocations不受保护。因此不要单独依赖--api-key作为安全边界生产部署建议置于反向代理之后完整说明见 API Key 鉴权限制该文档亦在 OpenAI 兼容服务器文档 开头以警告形式提示。网络可达性Dify 运行在容器内API Endpoint URL必须是从 Dify 网络命名空间可达的地址。若 vLLM 与 Dify 不在同一宿主机不要把localhost写死在 Endpoint 里同机部署时还需确认容器网络能路由到宿主机的8000端口。验证服务是否就绪在 Dify 保存提供方配置之前可以先用任意 OpenAI 客户端直接请求http://{host}:8000/v1/chat/completions或直接访问/v1/models确认模型标识与Model Name for API Endpoint填写值一致以缩小排障范围。小结本文完整复刻并扩展了 vLLM 仓库中 Dify 部署文档的实操流程pip install vllm准备环境 →vllm serve启动 OpenAI 兼容推理服务 → Docker Compose 拉起 Dify → 安装并配置 vLLM 模型提供方 → 创建聊天机器人验证链路。核心要点在于 Dify 与 vLLM 之间以/v1下的 OpenAI 兼容接口为契约模型必须支持 chat completionModel Name for API Endpoint必须与 vLLM 侧模型标识严格一致且生产环境应结合反向代理与 API Key 做好端点保护。【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进