vss-deploy-dense-captioning

Deploy the standalone RT-VLM dense-captioning microservice and exercise its REST API endpoints.

2|Updated Aug 20, 2026
One-click install
npx skills add https://github.com/atomicrajat/industry_safety_monitoring_system --skill vss-deploy-dense-captioning-atomicrajat
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vss-deploy-dense-captioning
Source: https://github.com/atomicrajat/industry_safety_monitoring_system/tree/main/.claude/skills/vss-deploy-dense-captioning
Command: npx skills add https://github.com/atomicrajat/industry_safety_monitoring_system --skill vss-deploy-dense-captioning-atomicrajat

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Deploying NVIDIA's RT-VLM dense-captioning microservice standalone involves fragile Docker Compose quirks (dangling depends_on blocks, mandatory profiles, platform-specific image tags), strict credential handling, and a broad REST API surface (uploads, captions, RTSP streams, chat completions, Kafka) that is easy to call incorrectly. ## Core Features & Use Cases - Standalone Deployment Workflow: Copies the RT-VLM compose file into a writable directory, derives the correct image tag per platform (x86, Jetson, SBSA/Spark), strips invalid depends_on references, validates with docker compose config, and waits for health. - Full REST API Coverage: Guides file upload via /v1/files, dense caption generation via /v1/generate_captions with SSE streaming, RTSP stream lifecycle management, OpenAI-compatible chat completions, and health/metrics probes using the live OpenAPI as source of truth. - Kafka Alert Validation: Explains prompt-driven anomaly detection (Anomaly Detected: Yes/No), caption/incident/error topic routing, and consumer commands against brokers such as mdx-kafka. - Use Case: An engineer on an L40S host deploys RT-VLM standalone with a remote OpenAI-compatible VLM backend, registers an RTSP camera stream after an ffprobe precheck, generates dense captions, and verifies incident messages land on the Kafka incident topic. ## Quick Start Ask the agent to deploy standalone RT-VLM dense captioning on this GPU host and verify readiness, models, and the OpenAPI surface on port 8018.

Frequently Asked Questions about vss-deploy-dense-captioning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy RT-VLM dense captioning standalone with Docker Compose?

Copy the rtvi-vlm-docker-compose.yml into a writable directory, strip the dangling depends_on block, create a gitignored rtvi-vlm.env with RTVI_VLM_PORT, HOST_IP, VSS_DATA_DIR, and model settings, then validate with docker compose config before running up with the bp_developer_alerts_2d_vlm profile.

How do I generate dense captions for a video using the RT-VLM API?

Upload the video with POST /v1/files to get a file id, then call POST /v1/generate_captions with that id, a prompt, the exact model id from /v1/models, and stream=true for SSE chunk responses. Delete the file afterward to release storage.

When should I use this skill instead of vss-deploy-profile?

Use this skill for standalone RT-VLM deployment or direct API calls against an existing RT-VLM service. Use vss-deploy-profile when deploying a full VSS profile with multi-service sizing, generated.env, and full-stack teardown.

Why does docker compose pull fail on the standalone RT-VLM compose file?

Recent Docker Compose rejects depends_on references to sibling NIM services not defined in the single-file project, failing validation even with required: false. Use docker pull directly for the image and strip the depends_on block from your local copy before up.

How does RT-VLM publish alerts to Kafka?

The server lower-cases each caption chunk and checks for the tokens yes or true; matches trigger an incident protobuf published to KAFKA_INCIDENT_TOPIC alongside the normal caption on KAFKA_TOPIC. Use a deterministic prompt like Anomaly Detected: Yes/No and confirm topic names from the live container environment.

Why does /v1/completions return HTTP 400 on current RT-VLM builds?

On current 26.05 builds, text-only legacy /v1/completions requests return HTTP 400 by design. Use /v1/chat/completions for text-only and multimodal requests, and check /openapi.json before assuming optional endpoints like /v1/license exist.