用途:本技能面向 cuOpt REST 服务器的部署与调用,涵盖启动服务、验证可用性,以及用 Python/curl 提交和获取求解结果。服务器没有独立的 C API,客户端可用任意语言。
主要能力:启动开发版服务器与 Docker 容器;通过健康检查端点验证服务;以 POST 提交请求、轮询获取解;提供路由、LP、MILP 等可运行示例。
启动服务器: python -m cuopt_server.cuopt_service --ip 0.0.0.0 --port 8000
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
工作流程:POST 到 /cuopt/request 获得 reqId,再轮询 /cuopt/solution/{reqId} 直到解就绪,然后解析响应。
Python 客户端要点:使用 requests,设置 Content-Type: application/json 与 CLIENT-VERSION 头,提交 cost_matrix_data、travel_time_matrix_data、task_data、fleet_data 和 solver_config 等字段。
术语注意:REST 用 task_locations(对应 Python API 的 order_locations)、task_time_windows;使用 travel_time_matrix_data(不是 transit_time_matrix_data);capacities 按维度写作 [[50, 50]],而非按车辆 [[50], [50]]。
调试 422:对照 OpenAPI(/cuopt.yaml)检查字段名,记录 reqId 与响应体。
可运行示例目录:assets/vrp_simple(基础 VRP)、assets/vrp_basic(含时间窗)、assets/pdp_basic(取送)、assets/lp_basic(LP,CSR 格式)、assets/milp_basic(MILP)。需先启动服务器;脚本在服务器不可达时以 0 退出。贡献或源码构建见开发者技能。