mcpField
C
cuopt-server-api-python

cuopt-server-api-python

github.com/promptingcompany云与 DevOps039 次安装17 周前更新
代码仓库

关于 cuopt-server-api-python

用于部署 cuOpt Server 并通过 Python 或 curl 调用其 REST API 的技能。内容包括路径规划示例、路由、LP 和 MILP 的可运行示例,以及请求轮询和载荷校验指导。

主要功能

  1. 01启动服务与健康检查
  2. 02Python 和 curl REST 示例
  3. 03路由请求与解答轮询
  4. 04VRP、取送、LP 和 MILP 示例
  5. 05载荷校验与故障排查

适用场景

  1. 01在本地或 Docker 中启动 cuOpt Server
  2. 02通过 Python 或 curl 提交路径规划问题
  3. 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.md
skill-card.md
skill.oms.sig
assets/
README.md
assets/lp_basic/
client.py
README.md
assets/milp_basic/
client.py
README.md
assets/pdp_basic/
client.py
README.md
assets/vrp_basic/
client.py
README.md
assets/vrp_simple/
client.py
README.md
evals/
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

工作流

  1. 向 /cuopt/request 发送 POST 请求 → 获取 reqId
  2. 轮询 /cuopt/solution/{reqId},直到解决方案就绪
  3. 解析响应

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 APIREST
order_locationstask_locations
set_order_time_windows()task_time_windows
service_timesservice_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/README.md 了解概述。

升级处理

如需贡献或从源代码构建,请参阅开发者技能。

评论

支持 Markdown