用途:把用户意图快速落地为可用的 Dynamo recipe 端点。在现有 recipes/ 目录上工作,只对清单做最小必要补丁,有集群访问权限时执行部署,并用 OpenAI 兼容冒烟请求验证成功。
主要能力:按模型、框架(vllm、sglang、trtllm、tokenspeed)、部署模式和 GPU 类型/数量选择已有配方;用 recipe_tool.py 枚举与校验;修补 storageClassName、镜像仓库/标签、模型路径或缓存挂载、GPU 资源请求/限制、前端 DYN_ROUTER_MODE 等少量配方专属值;部署后端口转发并检查 /v1/models 与一次 chat completion。
使用方式:前置要求为操作机 Python 3.10+、kubectl 已配置可用集群上下文、集群有默认存储类供模型缓存 PVC、HF token 存于目标命名空间的 hf-token-secret(或等效)Secret、可读 ai-dynamo/dynamo 的 recipes/ 树。先做只读预检(git status --short、python3 scripts/recipe_tool.py list --format table、kubectl config current-context、kubectl get storageclass、kubectl get nodes -o wide、kubectl get namespace "${NAMESPACE}"、kubectl get secret hf-token-secret -n "${NAMESPACE}")。选择配方:python3 scripts/recipe_tool.py list --query qwen --framework vllm --mode disagg --format table。校验:python3 scripts/recipe_tool.py validate recipes/<model>/<framework>/<mode>。默认部署序列:kubectl apply -f recipes/<model>/model-cache/ -n "${NAMESPACE}";kubectl wait --for=condition=Complete job/model-download -n "${NAMESPACE}" --timeout=6000s;kubectl apply -f recipes/<model>/<framework>/<mode>/deploy.yaml -n "${NAMESPACE}";kubectl get dynamographdeployment -n "${NAMESPACE}";kubectl get pods -n "${NAMESPACE}" -o wide。冒烟测试:kubectl port-forward svc/<deployment-name>-frontend 8000:8000 -n "${NAMESPACE}",再 curl http://127.0.0.1:8000/v1/models。也可通过 run_script("scripts/recipe_tool.py", args=["list", "--framework", "sglang", "--format", "table"]) 调用。若同时安装 dynamo-router-starter,优先用其 scripts/check_router_health.py 做完整冒烟。
适用场景:已有配方下的模型/后端/GPU/部署模式 bring-up。
限制:仅在现有 recipes/ 树上操作,不编写新清单;apply 需要目标命名空间 kubectl 权限;冒烟测试深度刻意最小;多节点 disagg 传输正确性不在范围内;集群不可达时只返回确切命令而非假装已部署。疑难排查可转 dynamo-troubleshoot,部署后多节点互连可转 dynamo-interconnect-check。