使用 Docker Compose 部署 vLLM Semantic Router:Envoy AI Gateway 一键搭建指南

发布时间:2026/10/14 15:53:11
使用 Docker Compose 部署 vLLM Semantic Router:Envoy AI Gateway 一键搭建指南 后端API网关模型推理服务AI Agent【免费下载链接】semantic-routerAn open, programmable decision layer for models and compute.项目地址https://gitcode.com/gh_mirrors/sem/semantic-router点击查看免费下载本文是面向 vLLM Semantic Router 的 Docker Compose 部署实战指南带你从零启动一套由「Semantic Router Envoy AI Gateway Prometheus Grafana」组成的最小可运行决策层。读完本文你将掌握模型下载、Compose 服务编排、测试 Profile 切换、端点验证与日常运维的完整流程并能结合仓库源码理解端口、配置与镜像背后的实现原理。部署形态一次拿到什么采用 Docker Compose 部署时你启动的是 vLLM Semantic Router 的「路由器 网关 可观测性」组合Semantic Router 本体负责语义分类Domain / PII / Jailbreak 等与路由决策对外提供 gRPC 分类接口Envoy AI Gateway位于 Router 前面的流量网关提供 HTTP 入口与扩展处理ext_proc链路Prometheus Grafana指标采集与可视化看板Envoy AdminEnvoy 自身的管理与调试接口。整体端口规划如下部署前请确认这些端口在宿主机上未被占用端口服务用途50051Semantic RoutergRPC 分类服务路由器的核心对外接口8801EnvoyHTTP 流量入口AI Gateway 对外服务端口19000Envoy AdminEnvoy 管理/调试面板9090Prometheus指标抓取3000Grafana可视化看板首次登录admin/admin通用前提条件1. Docker Engine需要本机已安装可用的 Docker Engine安装方式与官方 Docker 文档一致本指南不再赘述安装步骤完成后可用docker version自检。2. 克隆仓库git clone https://gitcode.com/gh_mirrors/sem/semantic-router.git cd semantic-router3. 下载分类模型约 1.5GB仅首次运行需要Router 启动后需要加载本地分类模型首次部署前先执行# 提示如果遇到错误 hf: command not found请先运行 pip install huggingface_hub hf_transfer make download-models该命令下载 Router 使用的三个分类模型Category classifierModernBERT-base请求领域/意图分类PII classifierModernBERT-base敏感信息个人身份信息检测Jailbreak classifierModernBERT-base越狱 / 恶意指令检测。从源码佐证看这些模型的落点与仓库的模型资产体系一致Makefile通过 tools/make/models.mk 引入模型下载目标其中download-mmbert-lora、download-mmbert-32k-lora等目标会从 Hugging Face 拉取mmbert-pii-detector-lora、mmbert-jailbreak-detector-lora等 LoRA 适配器到本地models/目录而 config/config.yaml 中的路由配置也展示了classifier.content-risk通过adapter: modernbert绑定本地模型部署的写法——分类模型正是路由信号引擎的输入来源。环境要求Docker Compose v2必须使用 Docker Compose v2docker compose子命令而不是旧版独立的docker-compose二进制。若缺少 Compose 插件按发行版安装# 对于 Debian / Ubuntu sudo apt-get update sudo apt-get install -y docker-compose-plugin # 对于 RHEL / CentOS / Fedora sudo yum update -y sudo yum install -y docker-compose-plugin # 验证 docker compose version端口检查确保8801、50051、19000、3000 和 9090五个端口空闲。若与现有服务冲突需要先调整占用或提前规划端口映射。启动服务在仓库根目录执行以下命令Compose 编排文件为指南约定的deploy/docker-compose/docker-compose.yml# 核心router envoy docker compose -f deploy/docker-compose/docker-compose.yml up --build # 后台运行确认无误后推荐 docker compose -f deploy/docker-compose/docker-compose.yml up -d --build # 包含 mock vLLM testing profile将 Router 指向 mock endpoint CONFIG_FILE/app/config/testing/config.testing.yaml \ docker compose -f deploy/docker-compose/docker-compose.yml --profile testing up --build三种启动方式的区别前台运行日志直接输出到终端便于首次观察启动过程与报错后台运行-d确认一切正常后推荐容器转为守护进程testing Profile通过环境变量CONFIG_FILE覆盖容器内 Router 使用的配置文件并启用testing扩展服务组将 Router 指向mock vLLM 端点无需真实推理引擎即可验证路由链路。关于 testing 配置的仓库佐证本仓库 e2e/config/config.testing.yaml 即是一份测试用配置示例其providers段将模型openai/gpt-oss-20b的后端绑定到mockproviderendpoint: 172.28.0.10:8000并配置了 metadata 路由决策与 recipe体现了「无真实模型也能跑通路由」的测试思路。验证部署服务启动后按下列端点逐一验证gRPClocalhost:50051Router 分类接口Envoy HTTPhttp://localhost:8801AI Gateway 流量入口Envoy Adminhttp://localhost:19000Prometheushttp://localhost:9090Grafanahttp://localhost:3000首次登录admin/admin推荐顺序先看docker compose ps确认各服务Up再分别访问 Prometheus 与 Grafana 确认指标链路最后通过8801发起一次 HTTP 请求验证路由生效。常用运维操作# 查看服务状态 docker compose ps # 跟踪 Router 服务的日志 docker compose logs -f semantic-router # 进入 Router 容器 docker compose exec semantic-router bash # 更改配置后重新创建 docker compose -f deploy/docker-compose/docker-compose.yml up -d --build # 停止并清理容器 docker compose down其中「改配置后up -d --build」是关键操作修改 Router 配置后需要重建容器使配置生效而down会停止并移除 Compose 管理的全部容器。源码级纵深理解这条部署链背后的实现Router 进程的端口与配置入口容器内 Router 的实际启动脚本位于 src/vllm-sr/start-router.sh脚本以/usr/local/bin/router启动进程显式传入-config$CONFIG_FILE、-port50051、-enable-apitrue并通过环境变量VLLM_SR_GATEWAY决定网关模式——standalone时由 Router 自行提供监听器其他值则对外提供ext_proc服务给前方的 Envoy。这正是「gRPC 50051、配置通过CONFIG_FILE注入」两个部署事实的源码依据。Router 镜像的构建方式Router 镜像由 tools/docker/Dockerfile.extproc 构建一个阶段图产出三套镜像由构建参数ACCELERATOR选择运行时的 PyTorch 版本镜像ACCELERATOR平台vllm-srcpu默认amd64、arm64vllm-sr-rocmrocmamd64vllm-sr-cudacudaamd64镜像入口/app/start-router.sh在没有参数或收到 Router 参数时按/app/config/config.yaml运行 Router收到配置文件路径时则启动vllm-sr serve栈的 Router——Compose 部署中CONFIG_FILE/app/config/testing/config.testing.yaml正是走这条路径。镜像内已 COPY 了 config/config.yaml 与config/knowledge_bases/等资产因此「容器内配置路径为/app/config/...」与指南命令完全对应。镜像编排的 Makefile 入口仓库的 tools/make/docker.mk 提供了与 Docker 镜像相关的整套目标make docker-build-vllm-srCPU 路由镜像、make docker-build-vllm-sr-rocm/make docker-build-vllm-sr-cudaGPU 镜像、make docker-pull-release DOCKER_TAGv0.4.0按发行标签拉取等默认镜像仓库为ghcr.io/vllm-project/semantic-routerEnvoy 镜像默认docker.io/envoyproxy/envoy:v1.35.3。Compose 部署与这些 make 目标共用同一套镜像语义可互为替代的镜像获取方式。关于本镜像仓库的部署布局说明需要说明的是本镜像仓库的deploy/目录下包含 helm、kubernetes、kserve、openshift 与 operator 等部署方案但并未包含指南中引用的deploy/docker-compose/docker-compose.yml文件该 Compose 编排文件属于上游发布布局不在本镜像快照内。若你在此镜像中找不到该文件仍可完整套用本指南的端口、配置与操作语义或改用仓库内现成的 Helm Chart、Kubernetes 清单等替代方案完成同样拓扑的部署。常见问题与注意事项hf: command not found模型下载依赖 Hugging Face CLI先执行pip install huggingface_hub hf_transfer再重跑make download-models。模型体积三个分类模型合计约 1.5GB仅首次运行需要下载建议在网络稳定的环境完成后再启动服务。端口冲突若 8801/50051/19000/3000/9090 任一被占用Compose 会启动失败或端口异常先释放端口再启动。Compose 版本务必使用docker composev2旧版独立docker-compose命令与本指南不兼容。配置生效修改 Router 配置后需要执行docker compose -f deploy/docker-compose/docker-compose.yml up -d --build重建容器。赞分享后端API网关模型推理服务AI Agent【免费下载链接】semantic-routerAn open, programmable decision layer for models and compute.项目地址https://gitcode.com/gh_mirrors/sem/semantic-router点击查看免费下载相关推荐vLLM Semantic Router 部署实战用 Docker Compose 快速搭建 Envoy AI Gateway 智能路由栈vLLM Semantic Router 部署实战用 Docker Compose 快速搭建 Envoy AI Gateway 智能路由栈 本文是一份面向开发后端API网关模型推理服务AI Agentsemantic-router 使用 Docker Compose 安装部署指南基于 Envoy AI Gateway 的本地快速启动semantic router 使用 Docker Compose 安装部署指南基于 Envoy AI Gateway 的本地快速启动 本指南完整讲解如何通过后端API网关模型推理服务AI AgentOpenIM Server部署指南Docker Compose一键搭建企业级IM服务OpenIM Server部署指南Docker Compose一键搭建企业级IM服务 痛点直击企业IM服务部署的3大挑战 你是否还在为以下问题困扰即时通讯后端微服务WebSocket创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考