关于 cuopt-server-api-python
用于部署 cuOpt Server 并通过 Python 或 curl 调用其 REST API 的技能。内容包括路径规划示例、路由、LP 和 MILP 的可运行示例,以及请求轮询和载荷校验指导。
主要功能
- 01启动服务与健康检查
- 02Python 和 curl REST 示例
- 03路由请求与解答轮询
- 04VRP、取送、LP 和 MILP 示例
- 05载荷校验与故障排查
适用场景
- 01在本地或 Docker 中启动 cuOpt Server
- 02通过 Python 或 curl 提交路径规划问题
- 03运行 VRP、取送、LP 或 MILP 示例请求
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ promptingcompany/ nv-skills --skill cuopt-server-api-python安装后在 Claude Code 中输入/cuopt-server-api-python确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdskill-card.mdskill.oms.sigassets/README.mdassets/lp_basic/client.pyREADME.mdassets/milp_basic/client.pyREADME.mdassets/pdp_basic/client.pyREADME.mdassets/vrp_basic/client.pyREADME.mdassets/vrp_simple/client.pyREADME.mdevals/evals.json详细介绍
cuOpt 服务端 — 部署与客户端(Python/curl)
本技能介绍启动服务端和客户端示例(curl、Python)。服务端没有单独的 C API(客户端可以使用任何语言)。
启动服务端
# Development
python -m cuopt_server.cuopt_service --ip 0.0.0.0 --port 8000
# Docker
docker run --gpus all -d -p 8000:8000 -e CUOPT_SERVER_PORT=8000 \
nvidia/cuopt:latest-cuda12.9-py3.13
验证
curl http://localhost:8000/cuopt/health
工作流
- 向
/cuopt/request发送 POST 请求 → 获取reqId - 轮询
/cuopt/solution/{reqId},直到解决方案就绪 - 解析响应
Python 客户端(路径规划)
import requests, time
SERVER = "http://localhost:8000"
HEADERS = {"Content-Type": "application/json", "CLIENT-VERSION": "custom"}
payload = {
"cost_matrix_data": {"data": {"0": [[0,10,15],[10,0,12],[15,12,0]]}},
"travel_time_matrix_data": {"data": {"0": [[0,10,15],[10,0,12],[15,12,0]]}},
"task_data": {"task_locations": [1, 2], "demand": [[10, 20]], "task_time_windows": [[0,100],[0,100]], "service_times": [5, 5]},
"fleet_data": {"vehicle_locations": [[0, 0]], "capacities": [[50]], "vehicle_time_windows": [[0, 200]]},
"solver_config": {"time_limit": 5}
}
r = requests.post(f"{SERVER}/cuopt/request", json=payload, headers=HEADERS)
req_id = r.json()["reqId"]
# Poll: GET /cuopt/solution/{req_id}
术语:REST 与 Python API
| Python API | REST |
|---|---|
| order_locations | task_locations |
| set_order_time_windows() | task_time_windows |
| service_times | service_times |
使用 travel_time_matrix_data(而不是 transit_time_matrix_data)。容量应为 [[50, 50]],而不是 [[50], [50]]。
调试(422 / 负载)
验证错误: 对照 OpenAPI(/cuopt.yaml)检查字段名称。常见错误:transit_time_matrix_data → travel_time_matrix_data;按维度指定容量时应为 [[50, 50]],而不是按车辆指定的 [[50], [50]]。对于失败的请求,请记录 reqId 和响应正文。
可运行资源
在每个资源目录中运行(服务端必须正在运行;如果无法连接服务端,脚本会以状态码 0 退出)。所有示例均使用 Python requests:
- assets/vrp_simple/ — 基础 VRP(无时间窗)
- assets/vrp_basic/ — 带时间窗的 VRP
- assets/pdp_basic/ — 取货与配送
- assets/lp_basic/ — 通过 REST 使用 LP(CSR 格式)
- assets/milp_basic/ — 通过 REST 使用 MILP
请参阅 assets/README.md 了解概述。
升级处理
如需贡献或从源代码构建,请参阅开发者技能。
评论
支持 Markdown