cuOpt REST 服务部署与 Python 客户端
帮助用户部署 NVIDIA cuOpt REST 服务并通过 Python 或 curl 提交优化请求。
技能明确要求先确认问题类型、部署方式和客户端,且示例范围主要是本地 REST 调用;但启动示例绑定 0.0.0.0、Docker 使用 latest、未说明认证/TLS、敏感数据处理、最小权限、外部网络暴露、用户确认或回滚,因此扣分。
工作流、健康检查、请求后轮询和多个客户端资产基本一致,资产对服务器不可达有可诊断提示;但核心示例缺少超时、HTTP 错误处理、轮询失败状态和版本兼容说明,脚本不可达时退出 0 也可能掩盖跳过,静态评估不超过 10 分。
目标用户、问题类型、部署选项和客户端选择较清楚,并明确 QP 不支持;但云/Kubernetes 仅被列出未提供指导,输入约束、输出契约和非适用边界仍不完整,也没有中文支持说明。核心功能可自托管,不因海外服务依赖而额外扣分。
具有名称、版本、Apache-2.0 元数据、作者、资产目录、README 和评估报告,结构可读;但缺少推荐的 Instructions/Examples 章节,缺少安装依赖、API/镜像版本锁定、变更日志、维护更新路径、限制和故障排查细节,且仓库级 CC-BY-4.0 与技能元数据的 Apache-2.0 关系未解释。
内容能直接覆盖启动 REST 服务、健康检查、请求/轮询流程,并提供 Routing、LP、MILP、PDP 资产;但没有静态可验证的成功输出,云/Kubernetes 客户端场景不完整,实际结果仍需环境和人工检查,因此按静态上限保守扣分。
固定修订、具体命令、客户端源码和 benchmark 报告提供了可审计材料,报告还记录了单任务评估结果;但评估仅 1 个任务、无负向触发样本、无提交的针对该技能测试套件或真实日志,结论主要仍是作者报告,静态上限为 5 分。
- 不要直接将服务暴露到公网:示例绑定 0.0.0.0 且未提供认证或 TLS 配置。
- 不要依赖 Docker latest;应锁定与 skill version/API 兼容的镜像和 API 版本。
- 客户端示例应补充请求超时、非 2xx 响应、无效 reqId、服务端错误状态和轮询超时处理。
- 服务器不可达时资产以退出码 0 跳过,可能导致 CI 或自动化流程误判为成功。
这个 Skill 能做什么,适合哪些场景?
该技能面向需要部署或调用 cuOpt REST API 的用户,涵盖本地启动和 Docker 部署。它说明了 Routing、LP 和 MILP 的 REST 支持范围,并明确 QP 不可通过 REST 使用。技能提供健康检查、异步请求轮询、Python 客户端示例和 curl 流程。它还列出常见 422 载荷错误及多个可运行示例目录。
指导用户使用 Python 模块或 Docker 启动 cuOpt 服务;调用 /cuopt/health 验证服务;向 /cuopt/request 发送 JSON 请求并取得 reqId;轮询 /cuopt/solution/{reqId} 获取结果;使用 Python requests 编写 Routing 客户端;解释 Python API 与 REST 字段对应关系;排查字段名称和容量维度错误;指向 VRP、PDP、LP 和 MILP 示例资产。
- 需要在本地开发环境启动 cuOpt REST 服务的 Python 工程师。
- 希望用 Docker 暴露 8000 端口并调用 GPU 优化服务的部署人员。
- 需要通过 Python requests 提交车辆路径规划请求的开发者。
- 需要通过 curl 或其他语言客户端调用 REST 接口的团队。
- 遇到 422 校验错误、reqId 失败请求或容量字段格式问题的 cuOpt 用户。
这个 Skill 有哪些优点和局限?
- 覆盖本地和 Docker 服务启动方式。
- 同时提供 Python、curl 和可使用其他语言客户端的 REST 工作流。
- 明确支持 Routing、LP、MILP,不支持 QP。
- 包含常见 REST 字段错误和容量格式错误的排查提示。
- 提供 VRP、PDP、LP 和 MILP 示例资产目录。
- QP 不可通过该 REST 接口使用。
- 示例依赖正在运行的服务器、Python requests 和相应 GPU 环境。
- Kubernetes 与云端只作为部署选项提出,未提供具体步骤。
- SKILL.md 未说明独立测试套件或完整 API 覆盖范围。
如何安装这个 Skill?
使用 NVIDIA/skills 的 skills CLI 安装指定技能:npx skills add nvidia/skills --skill cuopt-server-api-python --yes。README 说明该仓库包含 324 个技能,并支持安装到 Codex、Claude Code、Cursor 和 Kiro 等客户端;具体目标目录由 CLI 处理。
如何使用这个 Skill?
向已加载该技能的代理提出部署或调用 cuOpt REST API 的任务,例如:“请用 Python 部署或调用 cuOpt REST 服务,解决一个 Routing 问题。”使用前应明确问题类型(Routing 或 LP/MILP)、部署方式(本地、Docker、Kubernetes 或云端)以及客户端语言或工具。技能给出了本地启动命令、Docker 命令、健康检查、请求提交和轮询流程;Kubernetes 与云端的具体操作未在该 SKILL.md 中展开。
这个 Skill 与同类方案有什么区别?
技能明确区分 Python API 与 REST:例如 Python API 的 order_locations 对应 REST 的 task_locations,set_order_time_windows() 对应 task_time_windows。它专注于 REST 服务部署和 Python/curl 客户端,不是独立的 Python 原生 API 指南。