cuOpt REST Server Deployment & Python Client
Deploy NVIDIA cuOpt as a REST service and call it with Python, curl, or another client.
The skill asks for confirmation of problem type, deployment mode, and client, and its examples focus mainly on local REST calls; however, the server example binds to 0.0.0.0, Docker uses latest, and there is no guidance for authentication/TLS, sensitive data, least privilege, exposure, user confirmation, or rollback, so points are deducted.
The workflow, health check, request/poll sequence, and several client assets are broadly consistent, with diagnosable messaging when the server is unreachable; however, the core example lacks timeouts, HTTP error handling, polling failure states, and compatibility guidance, while silent skip behavior can mask missing execution. Static calibration caps this at 10.
The audience, problem types, deployment choices, and client selection are reasonably clear, and QP is explicitly unsupported; however, cloud/Kubernetes options are listed without guidance, input/output contracts and non-fit boundaries remain incomplete, and Chinese-language support is not addressed. The core function can be self-hosted, so no extra mainland-China reachability deduction is applied.
The skill has a name, version, Apache-2.0 metadata, author, asset directory, README, and evaluation report, with readable organization; however, the benchmark notes missing recommended Instructions/Examples sections, and the material lacks dependency installation, pinned API/image versions, changelog, maintenance update path, limitation disclosure, and fuller troubleshooting. The relationship between repository-level CC-BY-4.0 and the skill metadata's Apache-2.0 is also unexplained.
The material can directly guide REST-server startup, health verification, request/polling, and includes Routing, LP, MILP, and PDP assets; however, successful outputs are not statically verifiable, cloud/Kubernetes client coverage is incomplete, and results still require an appropriate runtime and review, so points are conservatively deducted under the static cap.
The pinned revision, concrete commands, client source, and benchmark report provide auditable material, including reported single-task results; however, the evaluation has only one task, no negative-trigger sample, no committed test suite covering this skill's key paths, and no execution logs, leaving the conclusion largely author-reported and capped at 5.
- Do not expose the service directly to the public network: the example binds to 0.0.0.0 and provides no authentication or TLS configuration.
- Do not rely on Docker latest; pin an image compatible with the skill version and API contract.
- Add request timeouts, non-2xx handling, invalid reqId handling, server-error states, and explicit polling-timeout behavior.
- Assets exit 0 when the server is unreachable, which can make CI or automation misinterpret a skipped run as success.
What does this skill do, and when should you use it?
This skill is for users deploying or calling the cuOpt REST API. It covers local startup and Docker deployment, supported problem types, health checks, asynchronous request polling, and a Python routing example. It supports Routing, LP, and MILP through REST, while QP is unavailable. It also documents common payload-validation mistakes and runnable example asset directories.
Shows how to start cuOpt with the Python service module or Docker; checks availability through /cuopt/health; submits JSON to /cuopt/request and captures reqId; polls /cuopt/solution/{reqId}; builds a routing client with Python requests; maps Python API names to REST fields; diagnoses common 422 payload errors; and points users to VRP, pickup-and-delivery, LP, and MILP example assets.
- A Python engineer starting cuOpt locally for development.
- An operator deploying the cuOpt REST server in Docker with GPU access.
- A developer submitting vehicle-routing requests with Python requests.
- A team calling cuOpt from curl, another language, or a separate service.
- A cuOpt user troubleshooting 422 validation errors, failed request IDs, or capacity-shape mistakes.
What are this skill's strengths and limitations?
- Covers both local and Docker server startup.
- Provides a REST workflow for Python, curl, and other-language clients.
- Clearly states support for Routing, LP, and MILP and the lack of REST support for QP.
- Calls out common REST field-name and capacity-shape errors.
- Includes example assets for VRP, pickup and delivery, LP, and MILP.
- QP cannot be used through this REST interface.
- Examples depend on a running server, Python requests, and an appropriate GPU environment.
- Kubernetes and cloud are listed as deployment choices without detailed instructions.
- The SKILL.md does not document a standalone test suite or complete API coverage.
How do you install this skill?
Install the individual skill from NVIDIA/skills with the skills CLI: npx skills add nvidia/skills --skill cuopt-server-api-python --yes. The README states that the repository contains 324 skills and supports installation for clients including Codex, Claude Code, Cursor, and Kiro; the CLI manages the destination.
How do you use this skill?
Ask an agent with this skill loaded for a cuOpt REST deployment or API task, for example: “Deploy or call the cuOpt REST service in Python for a routing problem.” Clarify the problem type, deployment target, and client language or tool first. The skill provides local and Docker startup commands, a health check, request submission, and polling workflow. It names Kubernetes and cloud deployment options but does not provide their detailed procedures in this SKILL.md.
How does this skill compare with similar options?
The skill explicitly contrasts the Python API with REST: for example, Python API order_locations maps to REST task_locations, and set_order_time_windows() maps to task_time_windows. Its scope is REST-server deployment and Python/curl clients, rather than a standalone native Python API guide.