[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-vss-deploy-video-embedding":3,"mdc--fszq22-key":37,"related-org-nvidia-vss-deploy-video-embedding":4069,"related-repo-nvidia-vss-deploy-video-embedding":4228},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"vss-deploy-video-embedding","deploy and operate VSS video embedding services","Use this skill when deploying, operating, or integrating the VSS 3.2 GA RT-Embed Video Embedding microservice. Covers Docker Compose bring-up, GPU and storage prerequisites, the `\u002Fv1` REST API (file uploads, text and video embeddings, live RTSP streams, health and metrics), Redis\u002FKafka\u002FOTel integration, common failure modes, and teardown.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,20,23],{"name":13,"slug":14,"type":15},"Deployment","deployment","tag",{"name":17,"slug":18,"type":15},"REST API","rest-api",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Docker","docker",{"name":24,"slug":25,"type":15},"Video","video",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-17T05:29:10.11926","Apache-2.0",281,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fvss-deploy-video-embedding","---\nname: vss-deploy-video-embedding\ndescription: >\n  Use this skill when deploying, operating, or integrating the VSS 3.2 GA\n  RT-Embed Video Embedding microservice. Covers Docker Compose bring-up,\n  GPU and storage prerequisites, the `\u002Fv1` REST API (file uploads,\n  text and video embeddings, live RTSP streams, health and metrics),\n  Redis\u002FKafka\u002FOTel integration, common failure modes, and teardown.\nlicense: Apache-2.0\nmetadata:\n  version: \"3.2.1\"\n  github-url: \"https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization\"\n  tags: \"nvidia blueprint operational deployment\"\n---\n\n# VSS Video Embedding (RT-Embed)\n\nUse this skill when you need to:\n\n- Deploy the VSS Video Embedding microservice from a Docker Compose file.\n- Generate text or video embeddings against the Cosmos-Embed1-448p model.\n- Embed an uploaded file, an HTTP\u002FS3\u002Ffile\u002Fdata URL, or a live RTSP stream.\n- Wire the service into a VSS deployment alongside Redis, Kafka, and OpenTelemetry.\n- Triage readiness, model-download, GPU, or stream-reconnection failures.\n\n**Trigger phrases:** `vss-deploy-video-embedding`, `RT-Embed`, `rtvi-embed`, `video embedding service`, `Cosmos-Embed1`, `embed live stream`, `embed video file`, `generate video embeddings`, `text embedding for video search`.\n\n## Service Snapshot\n\n- **VSS 3.2 GA skill:** `vss-deploy-video-embedding`.\n- **Legacy 3.1 name:** RT-Embed.\n- **Compose service:** `rtvi-embed`.\n- **Container name:** `vss-rtvi-embed`.\n- **Image:** `nvcr.io\u002Fnvidia\u002Fvss-core\u002Fvss-rt-embed` (override with `RTVI_EMBED_IMAGE`).\n- **Default tag:** `3.2.1` (override with `RTVI_EMBED_TAG`).\n- **Profile:** `bp_developer_search_2d`.\n- **Container port:** `8000` (host-side `${RTVI_EMBED_PORT}`).\n- **Default model:** `cosmos-embed1-448p` from `nvidia\u002FCosmos-Embed1-448p`.\n- **Health endpoint:** `GET \u002Fv1\u002Fready`.\n- **Healthcheck startup grace:** `1200s` (20 minutes) on first boot.\n\n## Prerequisites\n\nBefore bringing the service up:\n\n1. NVIDIA driver + NVIDIA Container Toolkit installed; default runtime set to `nvidia`.\n2. Docker Engine and Docker Compose plugin recent enough to support `${VAR:+value}` conditional volume substitution.\n3. `docker login nvcr.io` completed with `$oauthtoken` and a valid NGC API key.\n4. Host environment provides at minimum: `RTVI_EMBED_PORT`, `VSS_DATA_DIR`, `NGC_API_KEY`, and optionally `HF_TOKEN` to avoid Hugging Face 429 rate-limit errors during the Cosmos-Embed1 weights download.\n5. Free disk space for persistent caches: `rtvi-hf-cache`, `rtvi-ngc-model-cache`, `rtvi-triton-model-repo` (multi-GB).\n\nSee `references\u002Fdeploy-vss-deploy-video-embedding.md` for the full prerequisite list and `references\u002Fenvironment.md` for the variable matrix.\n\n## Deploy\n\nFor **standalone RT-Embed**, work from the service directory:\n\n```bash\ncd \"{{repo_root}}\u002Fdeploy\u002Fdocker\u002Fservices\u002Frtvi\u002Frtvi-embed\"\n```\n\nDo **not** use `\u002Fvss-deploy-profile` or `scripts\u002Fdev-profile.sh` for this standalone deployment.\n\nFor agent-driven validation, never let `sudo` prompt interactively. Before any\nprivileged ownership or Docker operation, use the non-interactive guard in\n[`references\u002Fdeploy-vss-deploy-video-embedding.md`](references\u002Fdeploy-vss-deploy-video-embedding.md)\nand [`references\u002Ftroubleshooting.md`](references\u002Ftroubleshooting.md): prefer plain\n`docker`; otherwise use `sudo -n docker`; if `sudo -n` fails, stop with the exact\nmanual command for the host owner instead of retrying with interactive sudo or\nweakening permissions.\n\nSet a minimal standalone environment before `docker compose up`. If `sudo -n chown`\nfails, stop before `docker compose up` and ask the host owner to run the printed\ncommand.\n\n```bash\nexport RTVI_EMBED_PORT=8017\nexport VSS_DATA_DIR=\"${VSS_DATA_DIR:-$(pwd)\u002F.standalone-data}\"\nexport NGC_API_KEY=\"\u003Cyour-ngc-api-key>\"\nexport HOST_IP=\"$(hostname -I | awk '{print $1}')\"\nexport HF_TOKEN=\"${HF_TOKEN:-}\"  # optional, but recommended to avoid HF 429s\nexport RTVI_EMBED_KAFKA_ENABLED=false\nexport ENABLE_REDIS_ERROR_MESSAGES=false\n# Prepare VST clip-storage host dir; use `sudo -n` for ownership fixes.\nCLIP_STORAGE_DIR=\"${VSS_DATA_DIR}\u002Fdata_log\u002Fvst\u002Fclip_storage\"\nmkdir -p \"$CLIP_STORAGE_DIR\"\nif ! sudo -n chown -R 1001:1001 \"$CLIP_STORAGE_DIR\"; then\n  echo \"ERROR: passwordless sudo is unavailable for host-path ownership.\" >&2\n  echo \"Ask the host owner to run: sudo chown -R 1001:1001 \\\"$CLIP_STORAGE_DIR\\\"\" >&2\n  echo \"Do not work around this with chmod 777 or world-writable permissions.\" >&2\n  return 1 2>\u002Fdev\u002Fnull || exit 1\nfi\n```\n\nThis avoids mounting `\u002Fdata_log\u002Fvst\u002Fclip_storage` from filesystem root when `VSS_DATA_DIR` is unset, and prevents startup stalls from missing Kafka\u002FRedis peers in standalone mode.\n\n```bash\n# Bring up the service under the required Compose profile.\ndocker compose -f rtvi-embed-docker-compose.yml \\\n  --profile bp_developer_search_2d up -d rtvi-embed\n```\n\nIf Docker requires elevated privileges, use `sudo -n docker compose ...` and fail\nfast if `sudo -n` reports that a password is required.\n\n```bash\n# Watch logs while the model downloads and Triton repo builds.\ndocker compose -f rtvi-embed-docker-compose.yml logs -f rtvi-embed\n```\n\nFirst-boot startup may take 20 minutes for the Cosmos-Embed1 download and Triton model repository build. Do not shorten the `start_period: 1200s` healthcheck during the first boot or the container will be marked unhealthy while still warming up.\n\n### Verify\n\n```bash\nBASE_URL=\"http:\u002F\u002Flocalhost:${RTVI_EMBED_PORT}\"\n\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fready\"               # 200 when warm.\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fready?detailed=true\" # Component-level status.\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fversion\"\nMODELS_JSON=$(curl -fsS \"$BASE_URL\u002Fv1\u002Fmodels\")\necho \"$MODELS_JSON\"                          # Confirms cosmos-embed1-448p is loaded.\n\nMODEL_ID=\"$(echo \"$MODELS_JSON\" | jq -r '.data[0].id \u002F\u002F empty')\"\ntest -n \"$MODEL_ID\" || { echo \"ERROR: \u002Fv1\u002Fmodels has no model id — wait until \u002Fv1\u002Fready is 200\" >&2; exit 1; }\n```\n\nThe sections below that call the API reuse `$BASE_URL` and `$MODEL_ID` from this block.\n\n## Common Operations\n\n### Generate video embeddings from an uploaded file\n\n```bash\nFILE_ID=$(curl -fsS -X POST \"$BASE_URL\u002Fv1\u002Ffiles\" \\\n  -F purpose=vision \\\n  -F media_type=video \\\n  -F file=@\u002Fpath\u002Fto\u002Fclip.mp4 | jq -r .id)\n\ncurl -fsS -X POST \"$BASE_URL\u002Fv1\u002Fgenerate_video_embeddings\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d \"{\n    \\\"id\\\": \\\"$FILE_ID\\\",\n    \\\"model\\\": \\\"$MODEL_ID\\\",\n    \\\"chunk_duration\\\": 60,\n    \\\"chunk_overlap_duration\\\": 10\n  }\"\n```\n\n### Generate text embeddings (for text-to-video search)\n\n```bash\ncurl -fsS -X POST \"$BASE_URL\u002Fv1\u002Fgenerate_text_embeddings\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d \"{\\\"text_input\\\":\\\"a forklift moving pallets\\\",\\\"model\\\":\\\"${MODEL_ID}\\\"}\"\n```\n\n### Embed a live RTSP stream\n\nLive streams **require** `stream: true` and `chunk_duration > 0`. A synchronous call returns `400 BadParameters: \"Only streaming output is supported for live-streams\"`, and the `chunk_duration: 0` returned by `streams\u002Fadd` is a placeholder — it must be overridden on the embed request or you get `400 BadParameter: \"chunk_duration must be greater than 0\"`.\n\n`POST \u002Fv1\u002Fstreams\u002Fadd` does **not** deduplicate by `liveStreamUrl` — submitting the same URL twice mints two distinct `stream_id`s. Before adding, call `GET \u002Fv1\u002Fstreams\u002Fget-stream-info` and reuse any existing registration for that URL to avoid orphaned entries.\n\n```bash\nSTREAM_ID=$(curl -fsS -X POST \"$BASE_URL\u002Fv1\u002Fstreams\u002Fadd\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"streams\":[{\"liveStreamUrl\":\"rtsp:\u002F\u002Fhost:port\u002Flive\u002Fvideo\",\"description\":\"camera-001\"}]}' \\\n  | jq -r '.results[0].id')\n\ncurl -N -X POST \"$BASE_URL\u002Fv1\u002Fgenerate_video_embeddings\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Accept: text\u002Fevent-stream\" \\\n  -d \"{\n    \\\"id\\\": \\\"$STREAM_ID\\\",\n    \\\"model\\\": \\\"$MODEL_ID\\\",\n    \\\"stream\\\": true,\n    \\\"chunk_duration\\\": 10,\n    \\\"chunk_overlap_duration\\\": 2\n  }\"\n\n# List registered live streams (use this to recover stream_ids across sessions).\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fstreams\u002Fget-stream-info\"\n\n# Stop embedding for the stream when done (terminates SSE with data: [DONE]).\ncurl -fsS -X DELETE \"$BASE_URL\u002Fv1\u002Fgenerate_video_embeddings\u002F$STREAM_ID\"\n```\n\nSee `references\u002Frest-api.md` for the full endpoint catalog, SSE streaming, and single-stream control-plane patterns.\n\n## Logs, Metrics, And Status\n\n```bash\ndocker compose -f rtvi-embed-docker-compose.yml ps\ndocker compose -f rtvi-embed-docker-compose.yml logs -f rtvi-embed\ndocker stats vss-rtvi-embed\n\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fmetrics\"          # Prometheus.\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fassets\u002Fstats\"     # Asset storage counts and TTL.\n```\n\nIf `RTVI_EMBED_LOG_DIR` is bound to a host directory, log files are also available at `\u002Fopt\u002Fnvidia\u002Frtvi\u002Flog\u002Frtvi\u002F` on the host.\n\n## Integration Surface\n\n- **Inputs:** REST API on `:${RTVI_EMBED_PORT}` (`POST \u002Fv1\u002Ffiles`, `POST \u002Fv1\u002Fgenerate_text_embeddings`, `POST \u002Fv1\u002Fgenerate_video_embeddings`, live-stream control endpoints).\n- **Outputs:** Synchronous REST responses, optional SSE for chunked video embeddings, optional Kafka messages on the topics named by `RTVI_EMBED_KAFKA_TOPIC` (container `KAFKA_TOPIC`) and `RTVI_EMBED_ERROR_MESSAGE_TOPIC` (container `ERROR_MESSAGE_TOPIC`) when Kafka is enabled (host: `RTVI_EMBED_KAFKA_ENABLED=true`, which Compose maps to container `KAFKA_ENABLED`).\n- **Optional peers:** Redis (`ENABLE_REDIS_ERROR_MESSAGES=true`), Kafka (host: `RTVI_EMBED_KAFKA_ENABLED=true` → container `KAFKA_ENABLED`), OpenTelemetry collector (host: `RTVI_EMBED_ENABLE_OTEL_MONITORING=true` → container `ENABLE_OTEL_MONITORING`).\n\n`references\u002Fintegrate-vss-deploy-video-embedding.md` documents the full integration contract.\n\n## Error Handling\n\nAPI failures return JSON with `code` and `message` fields:\n\n```json\n{\n  \"code\": \"BadParameter\",\n  \"message\": \"chunk_duration must be greater than 0\"\n}\n```\n\nPydantic \u002F OpenAPI validation failures use HTTP `422` with `code: \"InvalidParameters\"` and a field-level `message`.\n\n| Code | Meaning | Common Cause |\n|------|---------|--------------|\n| 400 | Bad Request | Missing `text_input`; unknown `file_id` \u002F `stream_id` \u002F `model`; live stream called without `stream: true`; `chunk_duration: 0` on a live-stream embed request; `chunk_overlap_duration >= chunk_duration` |\n| 401 | Unauthorized | Missing or invalid `Authorization: Bearer \u003Ctoken>` when the deployment enforces auth |\n| 403 | Forbidden | `file:\u002F\u002F` URLs disabled (`FILE_URL_ALLOWED_DIRS` unset) or resolved path outside the allow-list (`code: \"Forbidden\"`) |\n| 409 | Conflict | `DELETE \u002Fv1\u002Ffiles\u002F{file_id}` while the file is in use (`ResourceInUse`); another client already connected to the same live stream (`Conflict`) |\n| 413 | Payload Too Large | Uploaded file or decoded `data:` URI exceeds server size limits |\n| 422 | Unprocessable Entity | Schema validation failure — malformed UUID, wrong multipart field types, invalid enum values; invalid URL format for supported schemes |\n| 429 | Rate Limited | Request rate exceeded — retry with exponential backoff |\n| 500 | Internal Server Error | Unexpected inference or I\u002FO failure — inspect `docker compose -f rtvi-embed-docker-compose.yml logs -f rtvi-embed` |\n| 503 | Service Unavailable | `\u002Fv1\u002Fready` still warming up (model download \u002F Triton repo build); embedding endpoint busy with another file or text query; max live streams reached; CUDA OOM during inference |\n\n**503 on `\u002Fv1\u002Fready` during first boot is expected** until Cosmos-Embed1 finishes downloading and the Triton model repo is built (up to ~20 minutes). Do not treat it as an application error until after the healthcheck `start_period: 1200s` elapses.\n\n**503 on embedding endpoints** with message `\"Server is busy processing another file or text\"` or `\"Server is busy processing another file \u002F live-stream.\"` means the service handles one synchronous embed job at a time — retry with backoff or shard work across instances.\n\nFor endpoint-specific constraints (live-stream SSE requirements, URL schemes, response schemas), see [`references\u002Frest-api.md`](references\u002Frest-api.md). For Compose startup, cache, and permission failures, see [`references\u002Ftroubleshooting.md`](references\u002Ftroubleshooting.md).\n\n## Troubleshooting\n\nFor common failure patterns and resolutions, see `references\u002Ftroubleshooting.md`. Frequent issues:\n\n- `\u002Fv1\u002Fready` stuck at 503 → check for missing `NGC_API_KEY`, Hugging Face 429 rate-limit failures during the first-boot model download (set `HF_TOKEN` to avoid), or unreachable Redis\u002FKafka peers when those flags are enabled.\n- Healthcheck flipping unhealthy in the first 20 minutes → restore `start_period: 1200s`.\n- Permission errors on bind-mounted cache directories → `sudo -n chown -R 1001:1001` on the host paths; if passwordless sudo is unavailable, ask the host owner to run the printed command (do not use `chmod 777`).\n- `sudo` prompts for a password during deploy → use `sudo -n` and fail fast; see `references\u002Ftroubleshooting.md`; never retry with interactive sudo in an agent session.\n\n## Upgrade And Rollback\n\nPin `RTVI_EMBED_IMAGE` \u002F `RTVI_EMBED_TAG`, pull, recreate with `--profile bp_developer_search_2d`, and wait for `\u002Fv1\u002Fready` before cutover. Named volumes persist across image swaps.\n\nFull steps: [Upgrade & Rollback](references\u002Fdeploy-vss-deploy-video-embedding.md#upgrade--rollback).\n\n## Tear Down\n\nStop the standalone stack with `docker compose -f rtvi-embed-docker-compose.yml down`. Use `down -v` only when you intend to destroy named model caches.\n\nFull steps and cache warnings: [Tear Down](references\u002Fdeploy-vss-deploy-video-embedding.md#tear-down).\n\n## References\n\n| File | When to read |\n|---|---|\n| [references\u002FREADME.md](references\u002FREADME.md) | Table of contents for all reference files. |\n| [references\u002Fdeploy-vss-deploy-video-embedding.md](references\u002Fdeploy-vss-deploy-video-embedding.md) | Build Vision Agent deployment reference: image, GPU, storage, startup, prerequisites, known issues. |\n| [references\u002Fintegrate-vss-deploy-video-embedding.md](references\u002Fintegrate-vss-deploy-video-embedding.md) | Build Vision Agent integration reference: peers, inputs\u002Foutputs, env vars, network, example Compose snippet. |\n| [references\u002Frest-api.md](references\u002Frest-api.md) | Full REST endpoint catalog with worked `curl` examples for file uploads, video\u002Ftext embeddings, live streams, and health\u002Fmetrics. |\n| [references\u002Fenvironment.md](references\u002Fenvironment.md) | Complete environment-variable matrix, including host-to-container renames and secret-sensitive variables. |\n| [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md) | Operational diagnostics for startup, model\u002Fcache, runtime, and observability issues. |\n\n",{"data":38,"body":43},{"name":4,"description":6,"license":29,"metadata":39},{"version":40,"github-url":41,"tags":42},"3.2.1","https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization","nvidia blueprint operational deployment",{"type":44,"children":45},"root",[46,55,61,91,167,174,377,383,388,497,518,524,536,576,604,662,690,1219,1238,1308,1328,1375,1388,1395,1753,1772,1778,1784,2114,2120,2286,2292,2349,2390,2867,2879,2885,3037,3058,3064,3209,3220,3226,3245,3338,3365,3675,3699,3724,3748,3754,3766,3848,3854,3887,3899,3905,3926,3937,3943,4063],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"vss-video-embedding-rt-embed",[52],{"type":53,"value":54},"text","VSS Video Embedding (RT-Embed)",{"type":47,"tag":56,"props":57,"children":58},"p",{},[59],{"type":53,"value":60},"Use this skill when you need to:",{"type":47,"tag":62,"props":63,"children":64},"ul",{},[65,71,76,81,86],{"type":47,"tag":66,"props":67,"children":68},"li",{},[69],{"type":53,"value":70},"Deploy the VSS Video Embedding microservice from a Docker Compose file.",{"type":47,"tag":66,"props":72,"children":73},{},[74],{"type":53,"value":75},"Generate text or video embeddings against the Cosmos-Embed1-448p model.",{"type":47,"tag":66,"props":77,"children":78},{},[79],{"type":53,"value":80},"Embed an uploaded file, an HTTP\u002FS3\u002Ffile\u002Fdata URL, or a live RTSP stream.",{"type":47,"tag":66,"props":82,"children":83},{},[84],{"type":53,"value":85},"Wire the service into a VSS deployment alongside Redis, Kafka, and OpenTelemetry.",{"type":47,"tag":66,"props":87,"children":88},{},[89],{"type":53,"value":90},"Triage readiness, model-download, GPU, or stream-reconnection failures.",{"type":47,"tag":56,"props":92,"children":93},{},[94,100,102,108,110,116,117,123,124,130,131,137,138,144,145,151,152,158,159,165],{"type":47,"tag":95,"props":96,"children":97},"strong",{},[98],{"type":53,"value":99},"Trigger phrases:",{"type":53,"value":101}," ",{"type":47,"tag":103,"props":104,"children":106},"code",{"className":105},[],[107],{"type":53,"value":4},{"type":53,"value":109},", ",{"type":47,"tag":103,"props":111,"children":113},{"className":112},[],[114],{"type":53,"value":115},"RT-Embed",{"type":53,"value":109},{"type":47,"tag":103,"props":118,"children":120},{"className":119},[],[121],{"type":53,"value":122},"rtvi-embed",{"type":53,"value":109},{"type":47,"tag":103,"props":125,"children":127},{"className":126},[],[128],{"type":53,"value":129},"video embedding service",{"type":53,"value":109},{"type":47,"tag":103,"props":132,"children":134},{"className":133},[],[135],{"type":53,"value":136},"Cosmos-Embed1",{"type":53,"value":109},{"type":47,"tag":103,"props":139,"children":141},{"className":140},[],[142],{"type":53,"value":143},"embed live stream",{"type":53,"value":109},{"type":47,"tag":103,"props":146,"children":148},{"className":147},[],[149],{"type":53,"value":150},"embed video file",{"type":53,"value":109},{"type":47,"tag":103,"props":153,"children":155},{"className":154},[],[156],{"type":53,"value":157},"generate video embeddings",{"type":53,"value":109},{"type":47,"tag":103,"props":160,"children":162},{"className":161},[],[163],{"type":53,"value":164},"text embedding for video search",{"type":53,"value":166},".",{"type":47,"tag":168,"props":169,"children":171},"h2",{"id":170},"service-snapshot",[172],{"type":53,"value":173},"Service Snapshot",{"type":47,"tag":62,"props":175,"children":176},{},[177,192,202,217,233,258,280,296,320,344,360],{"type":47,"tag":66,"props":178,"children":179},{},[180,185,186,191],{"type":47,"tag":95,"props":181,"children":182},{},[183],{"type":53,"value":184},"VSS 3.2 GA skill:",{"type":53,"value":101},{"type":47,"tag":103,"props":187,"children":189},{"className":188},[],[190],{"type":53,"value":4},{"type":53,"value":166},{"type":47,"tag":66,"props":193,"children":194},{},[195,200],{"type":47,"tag":95,"props":196,"children":197},{},[198],{"type":53,"value":199},"Legacy 3.1 name:",{"type":53,"value":201}," RT-Embed.",{"type":47,"tag":66,"props":203,"children":204},{},[205,210,211,216],{"type":47,"tag":95,"props":206,"children":207},{},[208],{"type":53,"value":209},"Compose service:",{"type":53,"value":101},{"type":47,"tag":103,"props":212,"children":214},{"className":213},[],[215],{"type":53,"value":122},{"type":53,"value":166},{"type":47,"tag":66,"props":218,"children":219},{},[220,225,226,232],{"type":47,"tag":95,"props":221,"children":222},{},[223],{"type":53,"value":224},"Container name:",{"type":53,"value":101},{"type":47,"tag":103,"props":227,"children":229},{"className":228},[],[230],{"type":53,"value":231},"vss-rtvi-embed",{"type":53,"value":166},{"type":47,"tag":66,"props":234,"children":235},{},[236,241,242,248,250,256],{"type":47,"tag":95,"props":237,"children":238},{},[239],{"type":53,"value":240},"Image:",{"type":53,"value":101},{"type":47,"tag":103,"props":243,"children":245},{"className":244},[],[246],{"type":53,"value":247},"nvcr.io\u002Fnvidia\u002Fvss-core\u002Fvss-rt-embed",{"type":53,"value":249}," (override with ",{"type":47,"tag":103,"props":251,"children":253},{"className":252},[],[254],{"type":53,"value":255},"RTVI_EMBED_IMAGE",{"type":53,"value":257},").",{"type":47,"tag":66,"props":259,"children":260},{},[261,266,267,272,273,279],{"type":47,"tag":95,"props":262,"children":263},{},[264],{"type":53,"value":265},"Default tag:",{"type":53,"value":101},{"type":47,"tag":103,"props":268,"children":270},{"className":269},[],[271],{"type":53,"value":40},{"type":53,"value":249},{"type":47,"tag":103,"props":274,"children":276},{"className":275},[],[277],{"type":53,"value":278},"RTVI_EMBED_TAG",{"type":53,"value":257},{"type":47,"tag":66,"props":281,"children":282},{},[283,288,289,295],{"type":47,"tag":95,"props":284,"children":285},{},[286],{"type":53,"value":287},"Profile:",{"type":53,"value":101},{"type":47,"tag":103,"props":290,"children":292},{"className":291},[],[293],{"type":53,"value":294},"bp_developer_search_2d",{"type":53,"value":166},{"type":47,"tag":66,"props":297,"children":298},{},[299,304,305,311,313,319],{"type":47,"tag":95,"props":300,"children":301},{},[302],{"type":53,"value":303},"Container port:",{"type":53,"value":101},{"type":47,"tag":103,"props":306,"children":308},{"className":307},[],[309],{"type":53,"value":310},"8000",{"type":53,"value":312}," (host-side ",{"type":47,"tag":103,"props":314,"children":316},{"className":315},[],[317],{"type":53,"value":318},"${RTVI_EMBED_PORT}",{"type":53,"value":257},{"type":47,"tag":66,"props":321,"children":322},{},[323,328,329,335,337,343],{"type":47,"tag":95,"props":324,"children":325},{},[326],{"type":53,"value":327},"Default model:",{"type":53,"value":101},{"type":47,"tag":103,"props":330,"children":332},{"className":331},[],[333],{"type":53,"value":334},"cosmos-embed1-448p",{"type":53,"value":336}," from ",{"type":47,"tag":103,"props":338,"children":340},{"className":339},[],[341],{"type":53,"value":342},"nvidia\u002FCosmos-Embed1-448p",{"type":53,"value":166},{"type":47,"tag":66,"props":345,"children":346},{},[347,352,353,359],{"type":47,"tag":95,"props":348,"children":349},{},[350],{"type":53,"value":351},"Health endpoint:",{"type":53,"value":101},{"type":47,"tag":103,"props":354,"children":356},{"className":355},[],[357],{"type":53,"value":358},"GET \u002Fv1\u002Fready",{"type":53,"value":166},{"type":47,"tag":66,"props":361,"children":362},{},[363,368,369,375],{"type":47,"tag":95,"props":364,"children":365},{},[366],{"type":53,"value":367},"Healthcheck startup grace:",{"type":53,"value":101},{"type":47,"tag":103,"props":370,"children":372},{"className":371},[],[373],{"type":53,"value":374},"1200s",{"type":53,"value":376}," (20 minutes) on first boot.",{"type":47,"tag":168,"props":378,"children":380},{"id":379},"prerequisites",[381],{"type":53,"value":382},"Prerequisites",{"type":47,"tag":56,"props":384,"children":385},{},[386],{"type":53,"value":387},"Before bringing the service up:",{"type":47,"tag":389,"props":390,"children":391},"ol",{},[392,403,416,435,470],{"type":47,"tag":66,"props":393,"children":394},{},[395,397,402],{"type":53,"value":396},"NVIDIA driver + NVIDIA Container Toolkit installed; default runtime set to ",{"type":47,"tag":103,"props":398,"children":400},{"className":399},[],[401],{"type":53,"value":8},{"type":53,"value":166},{"type":47,"tag":66,"props":404,"children":405},{},[406,408,414],{"type":53,"value":407},"Docker Engine and Docker Compose plugin recent enough to support ",{"type":47,"tag":103,"props":409,"children":411},{"className":410},[],[412],{"type":53,"value":413},"${VAR:+value}",{"type":53,"value":415}," conditional volume substitution.",{"type":47,"tag":66,"props":417,"children":418},{},[419,425,427,433],{"type":47,"tag":103,"props":420,"children":422},{"className":421},[],[423],{"type":53,"value":424},"docker login nvcr.io",{"type":53,"value":426}," completed with ",{"type":47,"tag":103,"props":428,"children":430},{"className":429},[],[431],{"type":53,"value":432},"$oauthtoken",{"type":53,"value":434}," and a valid NGC API key.",{"type":47,"tag":66,"props":436,"children":437},{},[438,440,446,447,453,454,460,462,468],{"type":53,"value":439},"Host environment provides at minimum: ",{"type":47,"tag":103,"props":441,"children":443},{"className":442},[],[444],{"type":53,"value":445},"RTVI_EMBED_PORT",{"type":53,"value":109},{"type":47,"tag":103,"props":448,"children":450},{"className":449},[],[451],{"type":53,"value":452},"VSS_DATA_DIR",{"type":53,"value":109},{"type":47,"tag":103,"props":455,"children":457},{"className":456},[],[458],{"type":53,"value":459},"NGC_API_KEY",{"type":53,"value":461},", and optionally ",{"type":47,"tag":103,"props":463,"children":465},{"className":464},[],[466],{"type":53,"value":467},"HF_TOKEN",{"type":53,"value":469}," to avoid Hugging Face 429 rate-limit errors during the Cosmos-Embed1 weights download.",{"type":47,"tag":66,"props":471,"children":472},{},[473,475,481,482,488,489,495],{"type":53,"value":474},"Free disk space for persistent caches: ",{"type":47,"tag":103,"props":476,"children":478},{"className":477},[],[479],{"type":53,"value":480},"rtvi-hf-cache",{"type":53,"value":109},{"type":47,"tag":103,"props":483,"children":485},{"className":484},[],[486],{"type":53,"value":487},"rtvi-ngc-model-cache",{"type":53,"value":109},{"type":47,"tag":103,"props":490,"children":492},{"className":491},[],[493],{"type":53,"value":494},"rtvi-triton-model-repo",{"type":53,"value":496}," (multi-GB).",{"type":47,"tag":56,"props":498,"children":499},{},[500,502,508,510,516],{"type":53,"value":501},"See ",{"type":47,"tag":103,"props":503,"children":505},{"className":504},[],[506],{"type":53,"value":507},"references\u002Fdeploy-vss-deploy-video-embedding.md",{"type":53,"value":509}," for the full prerequisite list and ",{"type":47,"tag":103,"props":511,"children":513},{"className":512},[],[514],{"type":53,"value":515},"references\u002Fenvironment.md",{"type":53,"value":517}," for the variable matrix.",{"type":47,"tag":168,"props":519,"children":521},{"id":520},"deploy",[522],{"type":53,"value":523},"Deploy",{"type":47,"tag":56,"props":525,"children":526},{},[527,529,534],{"type":53,"value":528},"For ",{"type":47,"tag":95,"props":530,"children":531},{},[532],{"type":53,"value":533},"standalone RT-Embed",{"type":53,"value":535},", work from the service directory:",{"type":47,"tag":537,"props":538,"children":543},"pre",{"className":539,"code":540,"language":541,"meta":542,"style":542},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cd \"{{repo_root}}\u002Fdeploy\u002Fdocker\u002Fservices\u002Frtvi\u002Frtvi-embed\"\n","bash","",[544],{"type":47,"tag":103,"props":545,"children":546},{"__ignoreMap":542},[547],{"type":47,"tag":548,"props":549,"children":552},"span",{"class":550,"line":551},"line",1,[553,559,565,571],{"type":47,"tag":548,"props":554,"children":556},{"style":555},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[557],{"type":53,"value":558},"cd",{"type":47,"tag":548,"props":560,"children":562},{"style":561},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[563],{"type":53,"value":564}," \"",{"type":47,"tag":548,"props":566,"children":568},{"style":567},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[569],{"type":53,"value":570},"{{repo_root}}\u002Fdeploy\u002Fdocker\u002Fservices\u002Frtvi\u002Frtvi-embed",{"type":47,"tag":548,"props":572,"children":573},{"style":561},[574],{"type":53,"value":575},"\"\n",{"type":47,"tag":56,"props":577,"children":578},{},[579,581,586,588,594,596,602],{"type":53,"value":580},"Do ",{"type":47,"tag":95,"props":582,"children":583},{},[584],{"type":53,"value":585},"not",{"type":53,"value":587}," use ",{"type":47,"tag":103,"props":589,"children":591},{"className":590},[],[592],{"type":53,"value":593},"\u002Fvss-deploy-profile",{"type":53,"value":595}," or ",{"type":47,"tag":103,"props":597,"children":599},{"className":598},[],[600],{"type":53,"value":601},"scripts\u002Fdev-profile.sh",{"type":53,"value":603}," for this standalone deployment.",{"type":47,"tag":56,"props":605,"children":606},{},[607,609,615,617,626,628,637,639,644,646,652,654,660],{"type":53,"value":608},"For agent-driven validation, never let ",{"type":47,"tag":103,"props":610,"children":612},{"className":611},[],[613],{"type":53,"value":614},"sudo",{"type":53,"value":616}," prompt interactively. Before any\nprivileged ownership or Docker operation, use the non-interactive guard in\n",{"type":47,"tag":618,"props":619,"children":620},"a",{"href":507},[621],{"type":47,"tag":103,"props":622,"children":624},{"className":623},[],[625],{"type":53,"value":507},{"type":53,"value":627},"\nand ",{"type":47,"tag":618,"props":629,"children":631},{"href":630},"references\u002Ftroubleshooting.md",[632],{"type":47,"tag":103,"props":633,"children":635},{"className":634},[],[636],{"type":53,"value":630},{"type":53,"value":638},": prefer plain\n",{"type":47,"tag":103,"props":640,"children":642},{"className":641},[],[643],{"type":53,"value":22},{"type":53,"value":645},"; otherwise use ",{"type":47,"tag":103,"props":647,"children":649},{"className":648},[],[650],{"type":53,"value":651},"sudo -n docker",{"type":53,"value":653},"; if ",{"type":47,"tag":103,"props":655,"children":657},{"className":656},[],[658],{"type":53,"value":659},"sudo -n",{"type":53,"value":661}," fails, stop with the exact\nmanual command for the host owner instead of retrying with interactive sudo or\nweakening permissions.",{"type":47,"tag":56,"props":663,"children":664},{},[665,667,673,675,681,683,688],{"type":53,"value":666},"Set a minimal standalone environment before ",{"type":47,"tag":103,"props":668,"children":670},{"className":669},[],[671],{"type":53,"value":672},"docker compose up",{"type":53,"value":674},". If ",{"type":47,"tag":103,"props":676,"children":678},{"className":677},[],[679],{"type":53,"value":680},"sudo -n chown",{"type":53,"value":682},"\nfails, stop before ",{"type":47,"tag":103,"props":684,"children":686},{"className":685},[],[687],{"type":53,"value":672},{"type":53,"value":689}," and ask the host owner to run the printed\ncommand.",{"type":47,"tag":537,"props":691,"children":693},{"className":539,"code":692,"language":541,"meta":542,"style":542},"export RTVI_EMBED_PORT=8017\nexport VSS_DATA_DIR=\"${VSS_DATA_DIR:-$(pwd)\u002F.standalone-data}\"\nexport NGC_API_KEY=\"\u003Cyour-ngc-api-key>\"\nexport HOST_IP=\"$(hostname -I | awk '{print $1}')\"\nexport HF_TOKEN=\"${HF_TOKEN:-}\"  # optional, but recommended to avoid HF 429s\nexport RTVI_EMBED_KAFKA_ENABLED=false\nexport ENABLE_REDIS_ERROR_MESSAGES=false\n# Prepare VST clip-storage host dir; use `sudo -n` for ownership fixes.\nCLIP_STORAGE_DIR=\"${VSS_DATA_DIR}\u002Fdata_log\u002Fvst\u002Fclip_storage\"\nmkdir -p \"$CLIP_STORAGE_DIR\"\nif ! sudo -n chown -R 1001:1001 \"$CLIP_STORAGE_DIR\"; then\n  echo \"ERROR: passwordless sudo is unavailable for host-path ownership.\" >&2\n  echo \"Ask the host owner to run: sudo chown -R 1001:1001 \\\"$CLIP_STORAGE_DIR\\\"\" >&2\n  echo \"Do not work around this with chmod 777 or world-writable permissions.\" >&2\n  return 1 2>\u002Fdev\u002Fnull || exit 1\nfi\n",[694],{"type":47,"tag":103,"props":695,"children":696},{"__ignoreMap":542},[697,723,788,819,877,913,935,956,965,1000,1027,1089,1116,1146,1171,1210],{"type":47,"tag":548,"props":698,"children":699},{"class":550,"line":551},[700,706,712,717],{"type":47,"tag":548,"props":701,"children":703},{"style":702},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[704],{"type":53,"value":705},"export",{"type":47,"tag":548,"props":707,"children":709},{"style":708},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[710],{"type":53,"value":711}," RTVI_EMBED_PORT",{"type":47,"tag":548,"props":713,"children":714},{"style":561},[715],{"type":53,"value":716},"=",{"type":47,"tag":548,"props":718,"children":720},{"style":719},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[721],{"type":53,"value":722},"8017\n",{"type":47,"tag":548,"props":724,"children":726},{"class":550,"line":725},2,[727,731,736,740,745,749,754,759,764,769,774,778,783],{"type":47,"tag":548,"props":728,"children":729},{"style":702},[730],{"type":53,"value":705},{"type":47,"tag":548,"props":732,"children":733},{"style":708},[734],{"type":53,"value":735}," VSS_DATA_DIR",{"type":47,"tag":548,"props":737,"children":738},{"style":561},[739],{"type":53,"value":716},{"type":47,"tag":548,"props":741,"children":742},{"style":561},[743],{"type":53,"value":744},"\"${",{"type":47,"tag":548,"props":746,"children":747},{"style":708},[748],{"type":53,"value":452},{"type":47,"tag":548,"props":750,"children":751},{"style":561},[752],{"type":53,"value":753},":-",{"type":47,"tag":548,"props":755,"children":756},{"style":567},[757],{"type":53,"value":758},"$(",{"type":47,"tag":548,"props":760,"children":761},{"style":708},[762],{"type":53,"value":763},"pwd",{"type":47,"tag":548,"props":765,"children":766},{"style":567},[767],{"type":53,"value":768},")",{"type":47,"tag":548,"props":770,"children":771},{"style":561},[772],{"type":53,"value":773},"\u002F",{"type":47,"tag":548,"props":775,"children":776},{"style":567},[777],{"type":53,"value":166},{"type":47,"tag":548,"props":779,"children":780},{"style":708},[781],{"type":53,"value":782},"standalone-data",{"type":47,"tag":548,"props":784,"children":785},{"style":561},[786],{"type":53,"value":787},"}\"\n",{"type":47,"tag":548,"props":789,"children":791},{"class":550,"line":790},3,[792,796,801,805,810,815],{"type":47,"tag":548,"props":793,"children":794},{"style":702},[795],{"type":53,"value":705},{"type":47,"tag":548,"props":797,"children":798},{"style":708},[799],{"type":53,"value":800}," NGC_API_KEY",{"type":47,"tag":548,"props":802,"children":803},{"style":561},[804],{"type":53,"value":716},{"type":47,"tag":548,"props":806,"children":807},{"style":561},[808],{"type":53,"value":809},"\"",{"type":47,"tag":548,"props":811,"children":812},{"style":567},[813],{"type":53,"value":814},"\u003Cyour-ngc-api-key>",{"type":47,"tag":548,"props":816,"children":817},{"style":561},[818],{"type":53,"value":575},{"type":47,"tag":548,"props":820,"children":822},{"class":550,"line":821},4,[823,827,832,836,841,847,852,857,862,867,872],{"type":47,"tag":548,"props":824,"children":825},{"style":702},[826],{"type":53,"value":705},{"type":47,"tag":548,"props":828,"children":829},{"style":708},[830],{"type":53,"value":831}," HOST_IP",{"type":47,"tag":548,"props":833,"children":834},{"style":561},[835],{"type":53,"value":716},{"type":47,"tag":548,"props":837,"children":838},{"style":561},[839],{"type":53,"value":840},"\"$(",{"type":47,"tag":548,"props":842,"children":844},{"style":843},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[845],{"type":53,"value":846},"hostname",{"type":47,"tag":548,"props":848,"children":849},{"style":567},[850],{"type":53,"value":851}," -I ",{"type":47,"tag":548,"props":853,"children":854},{"style":561},[855],{"type":53,"value":856},"|",{"type":47,"tag":548,"props":858,"children":859},{"style":843},[860],{"type":53,"value":861}," awk",{"type":47,"tag":548,"props":863,"children":864},{"style":561},[865],{"type":53,"value":866}," '",{"type":47,"tag":548,"props":868,"children":869},{"style":567},[870],{"type":53,"value":871},"{print $1}",{"type":47,"tag":548,"props":873,"children":874},{"style":561},[875],{"type":53,"value":876},"')\"\n",{"type":47,"tag":548,"props":878,"children":880},{"class":550,"line":879},5,[881,885,890,894,898,902,907],{"type":47,"tag":548,"props":882,"children":883},{"style":702},[884],{"type":53,"value":705},{"type":47,"tag":548,"props":886,"children":887},{"style":708},[888],{"type":53,"value":889}," HF_TOKEN",{"type":47,"tag":548,"props":891,"children":892},{"style":561},[893],{"type":53,"value":716},{"type":47,"tag":548,"props":895,"children":896},{"style":561},[897],{"type":53,"value":744},{"type":47,"tag":548,"props":899,"children":900},{"style":708},[901],{"type":53,"value":467},{"type":47,"tag":548,"props":903,"children":904},{"style":561},[905],{"type":53,"value":906},":-}\"",{"type":47,"tag":548,"props":908,"children":910},{"style":909},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[911],{"type":53,"value":912},"  # optional, but recommended to avoid HF 429s\n",{"type":47,"tag":548,"props":914,"children":916},{"class":550,"line":915},6,[917,921,926,930],{"type":47,"tag":548,"props":918,"children":919},{"style":702},[920],{"type":53,"value":705},{"type":47,"tag":548,"props":922,"children":923},{"style":708},[924],{"type":53,"value":925}," RTVI_EMBED_KAFKA_ENABLED",{"type":47,"tag":548,"props":927,"children":928},{"style":561},[929],{"type":53,"value":716},{"type":47,"tag":548,"props":931,"children":932},{"style":708},[933],{"type":53,"value":934},"false\n",{"type":47,"tag":548,"props":936,"children":938},{"class":550,"line":937},7,[939,943,948,952],{"type":47,"tag":548,"props":940,"children":941},{"style":702},[942],{"type":53,"value":705},{"type":47,"tag":548,"props":944,"children":945},{"style":708},[946],{"type":53,"value":947}," ENABLE_REDIS_ERROR_MESSAGES",{"type":47,"tag":548,"props":949,"children":950},{"style":561},[951],{"type":53,"value":716},{"type":47,"tag":548,"props":953,"children":954},{"style":708},[955],{"type":53,"value":934},{"type":47,"tag":548,"props":957,"children":959},{"class":550,"line":958},8,[960],{"type":47,"tag":548,"props":961,"children":962},{"style":909},[963],{"type":53,"value":964},"# Prepare VST clip-storage host dir; use `sudo -n` for ownership fixes.\n",{"type":47,"tag":548,"props":966,"children":968},{"class":550,"line":967},9,[969,974,978,982,986,991,996],{"type":47,"tag":548,"props":970,"children":971},{"style":708},[972],{"type":53,"value":973},"CLIP_STORAGE_DIR",{"type":47,"tag":548,"props":975,"children":976},{"style":561},[977],{"type":53,"value":716},{"type":47,"tag":548,"props":979,"children":980},{"style":561},[981],{"type":53,"value":744},{"type":47,"tag":548,"props":983,"children":984},{"style":708},[985],{"type":53,"value":452},{"type":47,"tag":548,"props":987,"children":988},{"style":561},[989],{"type":53,"value":990},"}",{"type":47,"tag":548,"props":992,"children":993},{"style":567},[994],{"type":53,"value":995},"\u002Fdata_log\u002Fvst\u002Fclip_storage",{"type":47,"tag":548,"props":997,"children":998},{"style":561},[999],{"type":53,"value":575},{"type":47,"tag":548,"props":1001,"children":1003},{"class":550,"line":1002},10,[1004,1009,1014,1018,1023],{"type":47,"tag":548,"props":1005,"children":1006},{"style":843},[1007],{"type":53,"value":1008},"mkdir",{"type":47,"tag":548,"props":1010,"children":1011},{"style":567},[1012],{"type":53,"value":1013}," -p",{"type":47,"tag":548,"props":1015,"children":1016},{"style":561},[1017],{"type":53,"value":564},{"type":47,"tag":548,"props":1019,"children":1020},{"style":708},[1021],{"type":53,"value":1022},"$CLIP_STORAGE_DIR",{"type":47,"tag":548,"props":1024,"children":1025},{"style":561},[1026],{"type":53,"value":575},{"type":47,"tag":548,"props":1028,"children":1030},{"class":550,"line":1029},11,[1031,1037,1042,1047,1052,1057,1062,1067,1071,1075,1079,1084],{"type":47,"tag":548,"props":1032,"children":1034},{"style":1033},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1035],{"type":53,"value":1036},"if",{"type":47,"tag":548,"props":1038,"children":1039},{"style":561},[1040],{"type":53,"value":1041}," !",{"type":47,"tag":548,"props":1043,"children":1044},{"style":843},[1045],{"type":53,"value":1046}," sudo",{"type":47,"tag":548,"props":1048,"children":1049},{"style":567},[1050],{"type":53,"value":1051}," -n",{"type":47,"tag":548,"props":1053,"children":1054},{"style":567},[1055],{"type":53,"value":1056}," chown",{"type":47,"tag":548,"props":1058,"children":1059},{"style":567},[1060],{"type":53,"value":1061}," -R",{"type":47,"tag":548,"props":1063,"children":1064},{"style":567},[1065],{"type":53,"value":1066}," 1001:1001",{"type":47,"tag":548,"props":1068,"children":1069},{"style":561},[1070],{"type":53,"value":564},{"type":47,"tag":548,"props":1072,"children":1073},{"style":708},[1074],{"type":53,"value":1022},{"type":47,"tag":548,"props":1076,"children":1077},{"style":561},[1078],{"type":53,"value":809},{"type":47,"tag":548,"props":1080,"children":1081},{"style":561},[1082],{"type":53,"value":1083},";",{"type":47,"tag":548,"props":1085,"children":1086},{"style":1033},[1087],{"type":53,"value":1088}," then\n",{"type":47,"tag":548,"props":1090,"children":1092},{"class":550,"line":1091},12,[1093,1098,1102,1107,1111],{"type":47,"tag":548,"props":1094,"children":1095},{"style":555},[1096],{"type":53,"value":1097},"  echo",{"type":47,"tag":548,"props":1099,"children":1100},{"style":561},[1101],{"type":53,"value":564},{"type":47,"tag":548,"props":1103,"children":1104},{"style":567},[1105],{"type":53,"value":1106},"ERROR: passwordless sudo is unavailable for host-path ownership.",{"type":47,"tag":548,"props":1108,"children":1109},{"style":561},[1110],{"type":53,"value":809},{"type":47,"tag":548,"props":1112,"children":1113},{"style":561},[1114],{"type":53,"value":1115}," >&2\n",{"type":47,"tag":548,"props":1117,"children":1119},{"class":550,"line":1118},13,[1120,1124,1128,1133,1138,1142],{"type":47,"tag":548,"props":1121,"children":1122},{"style":555},[1123],{"type":53,"value":1097},{"type":47,"tag":548,"props":1125,"children":1126},{"style":561},[1127],{"type":53,"value":564},{"type":47,"tag":548,"props":1129,"children":1130},{"style":567},[1131],{"type":53,"value":1132},"Ask the host owner to run: sudo chown -R 1001:1001 ",{"type":47,"tag":548,"props":1134,"children":1135},{"style":708},[1136],{"type":53,"value":1137},"\\\"$CLIP_STORAGE_DIR\\\"",{"type":47,"tag":548,"props":1139,"children":1140},{"style":561},[1141],{"type":53,"value":809},{"type":47,"tag":548,"props":1143,"children":1144},{"style":561},[1145],{"type":53,"value":1115},{"type":47,"tag":548,"props":1147,"children":1149},{"class":550,"line":1148},14,[1150,1154,1158,1163,1167],{"type":47,"tag":548,"props":1151,"children":1152},{"style":555},[1153],{"type":53,"value":1097},{"type":47,"tag":548,"props":1155,"children":1156},{"style":561},[1157],{"type":53,"value":564},{"type":47,"tag":548,"props":1159,"children":1160},{"style":567},[1161],{"type":53,"value":1162},"Do not work around this with chmod 777 or world-writable permissions.",{"type":47,"tag":548,"props":1164,"children":1165},{"style":561},[1166],{"type":53,"value":809},{"type":47,"tag":548,"props":1168,"children":1169},{"style":561},[1170],{"type":53,"value":1115},{"type":47,"tag":548,"props":1172,"children":1174},{"class":550,"line":1173},15,[1175,1180,1185,1190,1195,1200,1205],{"type":47,"tag":548,"props":1176,"children":1177},{"style":1033},[1178],{"type":53,"value":1179},"  return",{"type":47,"tag":548,"props":1181,"children":1182},{"style":719},[1183],{"type":53,"value":1184}," 1",{"type":47,"tag":548,"props":1186,"children":1187},{"style":561},[1188],{"type":53,"value":1189}," 2>",{"type":47,"tag":548,"props":1191,"children":1192},{"style":567},[1193],{"type":53,"value":1194},"\u002Fdev\u002Fnull",{"type":47,"tag":548,"props":1196,"children":1197},{"style":561},[1198],{"type":53,"value":1199}," ||",{"type":47,"tag":548,"props":1201,"children":1202},{"style":555},[1203],{"type":53,"value":1204}," exit",{"type":47,"tag":548,"props":1206,"children":1207},{"style":719},[1208],{"type":53,"value":1209}," 1\n",{"type":47,"tag":548,"props":1211,"children":1213},{"class":550,"line":1212},16,[1214],{"type":47,"tag":548,"props":1215,"children":1216},{"style":1033},[1217],{"type":53,"value":1218},"fi\n",{"type":47,"tag":56,"props":1220,"children":1221},{},[1222,1224,1229,1231,1236],{"type":53,"value":1223},"This avoids mounting ",{"type":47,"tag":103,"props":1225,"children":1227},{"className":1226},[],[1228],{"type":53,"value":995},{"type":53,"value":1230}," from filesystem root when ",{"type":47,"tag":103,"props":1232,"children":1234},{"className":1233},[],[1235],{"type":53,"value":452},{"type":53,"value":1237}," is unset, and prevents startup stalls from missing Kafka\u002FRedis peers in standalone mode.",{"type":47,"tag":537,"props":1239,"children":1241},{"className":539,"code":1240,"language":541,"meta":542,"style":542},"# Bring up the service under the required Compose profile.\ndocker compose -f rtvi-embed-docker-compose.yml \\\n  --profile bp_developer_search_2d up -d rtvi-embed\n",[1242],{"type":47,"tag":103,"props":1243,"children":1244},{"__ignoreMap":542},[1245,1253,1280],{"type":47,"tag":548,"props":1246,"children":1247},{"class":550,"line":551},[1248],{"type":47,"tag":548,"props":1249,"children":1250},{"style":909},[1251],{"type":53,"value":1252},"# Bring up the service under the required Compose profile.\n",{"type":47,"tag":548,"props":1254,"children":1255},{"class":550,"line":725},[1256,1260,1265,1270,1275],{"type":47,"tag":548,"props":1257,"children":1258},{"style":843},[1259],{"type":53,"value":22},{"type":47,"tag":548,"props":1261,"children":1262},{"style":567},[1263],{"type":53,"value":1264}," compose",{"type":47,"tag":548,"props":1266,"children":1267},{"style":567},[1268],{"type":53,"value":1269}," -f",{"type":47,"tag":548,"props":1271,"children":1272},{"style":567},[1273],{"type":53,"value":1274}," rtvi-embed-docker-compose.yml",{"type":47,"tag":548,"props":1276,"children":1277},{"style":708},[1278],{"type":53,"value":1279}," \\\n",{"type":47,"tag":548,"props":1281,"children":1282},{"class":550,"line":790},[1283,1288,1293,1298,1303],{"type":47,"tag":548,"props":1284,"children":1285},{"style":567},[1286],{"type":53,"value":1287},"  --profile",{"type":47,"tag":548,"props":1289,"children":1290},{"style":567},[1291],{"type":53,"value":1292}," bp_developer_search_2d",{"type":47,"tag":548,"props":1294,"children":1295},{"style":567},[1296],{"type":53,"value":1297}," up",{"type":47,"tag":548,"props":1299,"children":1300},{"style":567},[1301],{"type":53,"value":1302}," -d",{"type":47,"tag":548,"props":1304,"children":1305},{"style":567},[1306],{"type":53,"value":1307}," rtvi-embed\n",{"type":47,"tag":56,"props":1309,"children":1310},{},[1311,1313,1319,1321,1326],{"type":53,"value":1312},"If Docker requires elevated privileges, use ",{"type":47,"tag":103,"props":1314,"children":1316},{"className":1315},[],[1317],{"type":53,"value":1318},"sudo -n docker compose ...",{"type":53,"value":1320}," and fail\nfast if ",{"type":47,"tag":103,"props":1322,"children":1324},{"className":1323},[],[1325],{"type":53,"value":659},{"type":53,"value":1327}," reports that a password is required.",{"type":47,"tag":537,"props":1329,"children":1331},{"className":539,"code":1330,"language":541,"meta":542,"style":542},"# Watch logs while the model downloads and Triton repo builds.\ndocker compose -f rtvi-embed-docker-compose.yml logs -f rtvi-embed\n",[1332],{"type":47,"tag":103,"props":1333,"children":1334},{"__ignoreMap":542},[1335,1343],{"type":47,"tag":548,"props":1336,"children":1337},{"class":550,"line":551},[1338],{"type":47,"tag":548,"props":1339,"children":1340},{"style":909},[1341],{"type":53,"value":1342},"# Watch logs while the model downloads and Triton repo builds.\n",{"type":47,"tag":548,"props":1344,"children":1345},{"class":550,"line":725},[1346,1350,1354,1358,1362,1367,1371],{"type":47,"tag":548,"props":1347,"children":1348},{"style":843},[1349],{"type":53,"value":22},{"type":47,"tag":548,"props":1351,"children":1352},{"style":567},[1353],{"type":53,"value":1264},{"type":47,"tag":548,"props":1355,"children":1356},{"style":567},[1357],{"type":53,"value":1269},{"type":47,"tag":548,"props":1359,"children":1360},{"style":567},[1361],{"type":53,"value":1274},{"type":47,"tag":548,"props":1363,"children":1364},{"style":567},[1365],{"type":53,"value":1366}," logs",{"type":47,"tag":548,"props":1368,"children":1369},{"style":567},[1370],{"type":53,"value":1269},{"type":47,"tag":548,"props":1372,"children":1373},{"style":567},[1374],{"type":53,"value":1307},{"type":47,"tag":56,"props":1376,"children":1377},{},[1378,1380,1386],{"type":53,"value":1379},"First-boot startup may take 20 minutes for the Cosmos-Embed1 download and Triton model repository build. Do not shorten the ",{"type":47,"tag":103,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":53,"value":1385},"start_period: 1200s",{"type":53,"value":1387}," healthcheck during the first boot or the container will be marked unhealthy while still warming up.",{"type":47,"tag":1389,"props":1390,"children":1392},"h3",{"id":1391},"verify",[1393],{"type":53,"value":1394},"Verify",{"type":47,"tag":537,"props":1396,"children":1398},{"className":539,"code":1397,"language":541,"meta":542,"style":542},"BASE_URL=\"http:\u002F\u002Flocalhost:${RTVI_EMBED_PORT}\"\n\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fready\"               # 200 when warm.\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fready?detailed=true\" # Component-level status.\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fversion\"\nMODELS_JSON=$(curl -fsS \"$BASE_URL\u002Fv1\u002Fmodels\")\necho \"$MODELS_JSON\"                          # Confirms cosmos-embed1-448p is loaded.\n\nMODEL_ID=\"$(echo \"$MODELS_JSON\" | jq -r '.data[0].id \u002F\u002F empty')\"\ntest -n \"$MODEL_ID\" || { echo \"ERROR: \u002Fv1\u002Fmodels has no model id — wait until \u002Fv1\u002Fready is 200\" >&2; exit 1; }\n",[1399],{"type":47,"tag":103,"props":1400,"children":1401},{"__ignoreMap":542},[1402,1436,1445,1481,1514,1542,1585,1611,1618,1679],{"type":47,"tag":548,"props":1403,"children":1404},{"class":550,"line":551},[1405,1410,1414,1418,1423,1428,1432],{"type":47,"tag":548,"props":1406,"children":1407},{"style":708},[1408],{"type":53,"value":1409},"BASE_URL",{"type":47,"tag":548,"props":1411,"children":1412},{"style":561},[1413],{"type":53,"value":716},{"type":47,"tag":548,"props":1415,"children":1416},{"style":561},[1417],{"type":53,"value":809},{"type":47,"tag":548,"props":1419,"children":1420},{"style":567},[1421],{"type":53,"value":1422},"http:\u002F\u002Flocalhost:",{"type":47,"tag":548,"props":1424,"children":1425},{"style":561},[1426],{"type":53,"value":1427},"${",{"type":47,"tag":548,"props":1429,"children":1430},{"style":708},[1431],{"type":53,"value":445},{"type":47,"tag":548,"props":1433,"children":1434},{"style":561},[1435],{"type":53,"value":787},{"type":47,"tag":548,"props":1437,"children":1438},{"class":550,"line":725},[1439],{"type":47,"tag":548,"props":1440,"children":1442},{"emptyLinePlaceholder":1441},true,[1443],{"type":53,"value":1444},"\n",{"type":47,"tag":548,"props":1446,"children":1447},{"class":550,"line":790},[1448,1453,1458,1462,1467,1472,1476],{"type":47,"tag":548,"props":1449,"children":1450},{"style":843},[1451],{"type":53,"value":1452},"curl",{"type":47,"tag":548,"props":1454,"children":1455},{"style":567},[1456],{"type":53,"value":1457}," -fsS",{"type":47,"tag":548,"props":1459,"children":1460},{"style":561},[1461],{"type":53,"value":564},{"type":47,"tag":548,"props":1463,"children":1464},{"style":708},[1465],{"type":53,"value":1466},"$BASE_URL",{"type":47,"tag":548,"props":1468,"children":1469},{"style":567},[1470],{"type":53,"value":1471},"\u002Fv1\u002Fready",{"type":47,"tag":548,"props":1473,"children":1474},{"style":561},[1475],{"type":53,"value":809},{"type":47,"tag":548,"props":1477,"children":1478},{"style":909},[1479],{"type":53,"value":1480},"               # 200 when warm.\n",{"type":47,"tag":548,"props":1482,"children":1483},{"class":550,"line":821},[1484,1488,1492,1496,1500,1505,1509],{"type":47,"tag":548,"props":1485,"children":1486},{"style":843},[1487],{"type":53,"value":1452},{"type":47,"tag":548,"props":1489,"children":1490},{"style":567},[1491],{"type":53,"value":1457},{"type":47,"tag":548,"props":1493,"children":1494},{"style":561},[1495],{"type":53,"value":564},{"type":47,"tag":548,"props":1497,"children":1498},{"style":708},[1499],{"type":53,"value":1466},{"type":47,"tag":548,"props":1501,"children":1502},{"style":567},[1503],{"type":53,"value":1504},"\u002Fv1\u002Fready?detailed=true",{"type":47,"tag":548,"props":1506,"children":1507},{"style":561},[1508],{"type":53,"value":809},{"type":47,"tag":548,"props":1510,"children":1511},{"style":909},[1512],{"type":53,"value":1513}," # Component-level status.\n",{"type":47,"tag":548,"props":1515,"children":1516},{"class":550,"line":879},[1517,1521,1525,1529,1533,1538],{"type":47,"tag":548,"props":1518,"children":1519},{"style":843},[1520],{"type":53,"value":1452},{"type":47,"tag":548,"props":1522,"children":1523},{"style":567},[1524],{"type":53,"value":1457},{"type":47,"tag":548,"props":1526,"children":1527},{"style":561},[1528],{"type":53,"value":564},{"type":47,"tag":548,"props":1530,"children":1531},{"style":708},[1532],{"type":53,"value":1466},{"type":47,"tag":548,"props":1534,"children":1535},{"style":567},[1536],{"type":53,"value":1537},"\u002Fv1\u002Fversion",{"type":47,"tag":548,"props":1539,"children":1540},{"style":561},[1541],{"type":53,"value":575},{"type":47,"tag":548,"props":1543,"children":1544},{"class":550,"line":915},[1545,1550,1555,1559,1563,1567,1571,1576,1580],{"type":47,"tag":548,"props":1546,"children":1547},{"style":708},[1548],{"type":53,"value":1549},"MODELS_JSON",{"type":47,"tag":548,"props":1551,"children":1552},{"style":561},[1553],{"type":53,"value":1554},"=$(",{"type":47,"tag":548,"props":1556,"children":1557},{"style":843},[1558],{"type":53,"value":1452},{"type":47,"tag":548,"props":1560,"children":1561},{"style":567},[1562],{"type":53,"value":1457},{"type":47,"tag":548,"props":1564,"children":1565},{"style":561},[1566],{"type":53,"value":564},{"type":47,"tag":548,"props":1568,"children":1569},{"style":708},[1570],{"type":53,"value":1466},{"type":47,"tag":548,"props":1572,"children":1573},{"style":567},[1574],{"type":53,"value":1575},"\u002Fv1\u002Fmodels",{"type":47,"tag":548,"props":1577,"children":1578},{"style":561},[1579],{"type":53,"value":809},{"type":47,"tag":548,"props":1581,"children":1582},{"style":561},[1583],{"type":53,"value":1584},")\n",{"type":47,"tag":548,"props":1586,"children":1587},{"class":550,"line":937},[1588,1593,1597,1602,1606],{"type":47,"tag":548,"props":1589,"children":1590},{"style":555},[1591],{"type":53,"value":1592},"echo",{"type":47,"tag":548,"props":1594,"children":1595},{"style":561},[1596],{"type":53,"value":564},{"type":47,"tag":548,"props":1598,"children":1599},{"style":708},[1600],{"type":53,"value":1601},"$MODELS_JSON",{"type":47,"tag":548,"props":1603,"children":1604},{"style":561},[1605],{"type":53,"value":809},{"type":47,"tag":548,"props":1607,"children":1608},{"style":909},[1609],{"type":53,"value":1610},"                          # Confirms cosmos-embed1-448p is loaded.\n",{"type":47,"tag":548,"props":1612,"children":1613},{"class":550,"line":958},[1614],{"type":47,"tag":548,"props":1615,"children":1616},{"emptyLinePlaceholder":1441},[1617],{"type":53,"value":1444},{"type":47,"tag":548,"props":1619,"children":1620},{"class":550,"line":967},[1621,1626,1630,1634,1638,1642,1646,1650,1655,1660,1665,1670,1675],{"type":47,"tag":548,"props":1622,"children":1623},{"style":708},[1624],{"type":53,"value":1625},"MODEL_ID",{"type":47,"tag":548,"props":1627,"children":1628},{"style":561},[1629],{"type":53,"value":716},{"type":47,"tag":548,"props":1631,"children":1632},{"style":561},[1633],{"type":53,"value":840},{"type":47,"tag":548,"props":1635,"children":1636},{"style":555},[1637],{"type":53,"value":1592},{"type":47,"tag":548,"props":1639,"children":1640},{"style":561},[1641],{"type":53,"value":564},{"type":47,"tag":548,"props":1643,"children":1644},{"style":708},[1645],{"type":53,"value":1601},{"type":47,"tag":548,"props":1647,"children":1648},{"style":561},[1649],{"type":53,"value":809},{"type":47,"tag":548,"props":1651,"children":1652},{"style":561},[1653],{"type":53,"value":1654}," |",{"type":47,"tag":548,"props":1656,"children":1657},{"style":843},[1658],{"type":53,"value":1659}," jq",{"type":47,"tag":548,"props":1661,"children":1662},{"style":567},[1663],{"type":53,"value":1664}," -r ",{"type":47,"tag":548,"props":1666,"children":1667},{"style":561},[1668],{"type":53,"value":1669},"'",{"type":47,"tag":548,"props":1671,"children":1672},{"style":567},[1673],{"type":53,"value":1674},".data[0].id \u002F\u002F empty",{"type":47,"tag":548,"props":1676,"children":1677},{"style":561},[1678],{"type":53,"value":876},{"type":47,"tag":548,"props":1680,"children":1681},{"class":550,"line":1002},[1682,1687,1691,1695,1700,1704,1708,1713,1718,1722,1727,1731,1736,1740,1744,1748],{"type":47,"tag":548,"props":1683,"children":1684},{"style":555},[1685],{"type":53,"value":1686},"test",{"type":47,"tag":548,"props":1688,"children":1689},{"style":567},[1690],{"type":53,"value":1051},{"type":47,"tag":548,"props":1692,"children":1693},{"style":561},[1694],{"type":53,"value":564},{"type":47,"tag":548,"props":1696,"children":1697},{"style":708},[1698],{"type":53,"value":1699},"$MODEL_ID",{"type":47,"tag":548,"props":1701,"children":1702},{"style":561},[1703],{"type":53,"value":809},{"type":47,"tag":548,"props":1705,"children":1706},{"style":561},[1707],{"type":53,"value":1199},{"type":47,"tag":548,"props":1709,"children":1710},{"style":561},[1711],{"type":53,"value":1712}," {",{"type":47,"tag":548,"props":1714,"children":1715},{"style":555},[1716],{"type":53,"value":1717}," echo",{"type":47,"tag":548,"props":1719,"children":1720},{"style":561},[1721],{"type":53,"value":564},{"type":47,"tag":548,"props":1723,"children":1724},{"style":567},[1725],{"type":53,"value":1726},"ERROR: \u002Fv1\u002Fmodels has no model id — wait until \u002Fv1\u002Fready is 200",{"type":47,"tag":548,"props":1728,"children":1729},{"style":561},[1730],{"type":53,"value":809},{"type":47,"tag":548,"props":1732,"children":1733},{"style":561},[1734],{"type":53,"value":1735}," >&2;",{"type":47,"tag":548,"props":1737,"children":1738},{"style":555},[1739],{"type":53,"value":1204},{"type":47,"tag":548,"props":1741,"children":1742},{"style":719},[1743],{"type":53,"value":1184},{"type":47,"tag":548,"props":1745,"children":1746},{"style":561},[1747],{"type":53,"value":1083},{"type":47,"tag":548,"props":1749,"children":1750},{"style":561},[1751],{"type":53,"value":1752}," }\n",{"type":47,"tag":56,"props":1754,"children":1755},{},[1756,1758,1763,1765,1770],{"type":53,"value":1757},"The sections below that call the API reuse ",{"type":47,"tag":103,"props":1759,"children":1761},{"className":1760},[],[1762],{"type":53,"value":1466},{"type":53,"value":1764}," and ",{"type":47,"tag":103,"props":1766,"children":1768},{"className":1767},[],[1769],{"type":53,"value":1699},{"type":53,"value":1771}," from this block.",{"type":47,"tag":168,"props":1773,"children":1775},{"id":1774},"common-operations",[1776],{"type":53,"value":1777},"Common Operations",{"type":47,"tag":1389,"props":1779,"children":1781},{"id":1780},"generate-video-embeddings-from-an-uploaded-file",[1782],{"type":53,"value":1783},"Generate video embeddings from an uploaded file",{"type":47,"tag":537,"props":1785,"children":1787},{"className":539,"code":1786,"language":541,"meta":542,"style":542},"FILE_ID=$(curl -fsS -X POST \"$BASE_URL\u002Fv1\u002Ffiles\" \\\n  -F purpose=vision \\\n  -F media_type=video \\\n  -F file=@\u002Fpath\u002Fto\u002Fclip.mp4 | jq -r .id)\n\ncurl -fsS -X POST \"$BASE_URL\u002Fv1\u002Fgenerate_video_embeddings\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d \"{\n    \\\"id\\\": \\\"$FILE_ID\\\",\n    \\\"model\\\": \\\"$MODEL_ID\\\",\n    \\\"chunk_duration\\\": 60,\n    \\\"chunk_overlap_duration\\\": 10\n  }\"\n",[1788],{"type":47,"tag":103,"props":1789,"children":1790},{"__ignoreMap":542},[1791,1842,1859,1875,1909,1916,1956,1981,1998,2031,2060,2081,2102],{"type":47,"tag":548,"props":1792,"children":1793},{"class":550,"line":551},[1794,1799,1803,1807,1811,1816,1821,1825,1829,1834,1838],{"type":47,"tag":548,"props":1795,"children":1796},{"style":708},[1797],{"type":53,"value":1798},"FILE_ID",{"type":47,"tag":548,"props":1800,"children":1801},{"style":561},[1802],{"type":53,"value":1554},{"type":47,"tag":548,"props":1804,"children":1805},{"style":843},[1806],{"type":53,"value":1452},{"type":47,"tag":548,"props":1808,"children":1809},{"style":567},[1810],{"type":53,"value":1457},{"type":47,"tag":548,"props":1812,"children":1813},{"style":567},[1814],{"type":53,"value":1815}," -X",{"type":47,"tag":548,"props":1817,"children":1818},{"style":567},[1819],{"type":53,"value":1820}," POST",{"type":47,"tag":548,"props":1822,"children":1823},{"style":561},[1824],{"type":53,"value":564},{"type":47,"tag":548,"props":1826,"children":1827},{"style":708},[1828],{"type":53,"value":1466},{"type":47,"tag":548,"props":1830,"children":1831},{"style":567},[1832],{"type":53,"value":1833},"\u002Fv1\u002Ffiles",{"type":47,"tag":548,"props":1835,"children":1836},{"style":561},[1837],{"type":53,"value":809},{"type":47,"tag":548,"props":1839,"children":1840},{"style":708},[1841],{"type":53,"value":1279},{"type":47,"tag":548,"props":1843,"children":1844},{"class":550,"line":725},[1845,1850,1855],{"type":47,"tag":548,"props":1846,"children":1847},{"style":567},[1848],{"type":53,"value":1849},"  -F",{"type":47,"tag":548,"props":1851,"children":1852},{"style":567},[1853],{"type":53,"value":1854}," purpose=vision",{"type":47,"tag":548,"props":1856,"children":1857},{"style":708},[1858],{"type":53,"value":1279},{"type":47,"tag":548,"props":1860,"children":1861},{"class":550,"line":790},[1862,1866,1871],{"type":47,"tag":548,"props":1863,"children":1864},{"style":567},[1865],{"type":53,"value":1849},{"type":47,"tag":548,"props":1867,"children":1868},{"style":567},[1869],{"type":53,"value":1870}," media_type=video",{"type":47,"tag":548,"props":1872,"children":1873},{"style":708},[1874],{"type":53,"value":1279},{"type":47,"tag":548,"props":1876,"children":1877},{"class":550,"line":821},[1878,1882,1887,1891,1895,1900,1905],{"type":47,"tag":548,"props":1879,"children":1880},{"style":567},[1881],{"type":53,"value":1849},{"type":47,"tag":548,"props":1883,"children":1884},{"style":567},[1885],{"type":53,"value":1886}," file=@\u002Fpath\u002Fto\u002Fclip.mp4",{"type":47,"tag":548,"props":1888,"children":1889},{"style":561},[1890],{"type":53,"value":1654},{"type":47,"tag":548,"props":1892,"children":1893},{"style":843},[1894],{"type":53,"value":1659},{"type":47,"tag":548,"props":1896,"children":1897},{"style":567},[1898],{"type":53,"value":1899}," -r",{"type":47,"tag":548,"props":1901,"children":1902},{"style":567},[1903],{"type":53,"value":1904}," .id",{"type":47,"tag":548,"props":1906,"children":1907},{"style":561},[1908],{"type":53,"value":1584},{"type":47,"tag":548,"props":1910,"children":1911},{"class":550,"line":879},[1912],{"type":47,"tag":548,"props":1913,"children":1914},{"emptyLinePlaceholder":1441},[1915],{"type":53,"value":1444},{"type":47,"tag":548,"props":1917,"children":1918},{"class":550,"line":915},[1919,1923,1927,1931,1935,1939,1943,1948,1952],{"type":47,"tag":548,"props":1920,"children":1921},{"style":843},[1922],{"type":53,"value":1452},{"type":47,"tag":548,"props":1924,"children":1925},{"style":567},[1926],{"type":53,"value":1457},{"type":47,"tag":548,"props":1928,"children":1929},{"style":567},[1930],{"type":53,"value":1815},{"type":47,"tag":548,"props":1932,"children":1933},{"style":567},[1934],{"type":53,"value":1820},{"type":47,"tag":548,"props":1936,"children":1937},{"style":561},[1938],{"type":53,"value":564},{"type":47,"tag":548,"props":1940,"children":1941},{"style":708},[1942],{"type":53,"value":1466},{"type":47,"tag":548,"props":1944,"children":1945},{"style":567},[1946],{"type":53,"value":1947},"\u002Fv1\u002Fgenerate_video_embeddings",{"type":47,"tag":548,"props":1949,"children":1950},{"style":561},[1951],{"type":53,"value":809},{"type":47,"tag":548,"props":1953,"children":1954},{"style":708},[1955],{"type":53,"value":1279},{"type":47,"tag":548,"props":1957,"children":1958},{"class":550,"line":937},[1959,1964,1968,1973,1977],{"type":47,"tag":548,"props":1960,"children":1961},{"style":567},[1962],{"type":53,"value":1963},"  -H",{"type":47,"tag":548,"props":1965,"children":1966},{"style":561},[1967],{"type":53,"value":564},{"type":47,"tag":548,"props":1969,"children":1970},{"style":567},[1971],{"type":53,"value":1972},"Content-Type: application\u002Fjson",{"type":47,"tag":548,"props":1974,"children":1975},{"style":561},[1976],{"type":53,"value":809},{"type":47,"tag":548,"props":1978,"children":1979},{"style":708},[1980],{"type":53,"value":1279},{"type":47,"tag":548,"props":1982,"children":1983},{"class":550,"line":958},[1984,1989,1993],{"type":47,"tag":548,"props":1985,"children":1986},{"style":567},[1987],{"type":53,"value":1988},"  -d",{"type":47,"tag":548,"props":1990,"children":1991},{"style":561},[1992],{"type":53,"value":564},{"type":47,"tag":548,"props":1994,"children":1995},{"style":567},[1996],{"type":53,"value":1997},"{\n",{"type":47,"tag":548,"props":1999,"children":2000},{"class":550,"line":967},[2001,2006,2011,2016,2021,2026],{"type":47,"tag":548,"props":2002,"children":2003},{"style":708},[2004],{"type":53,"value":2005},"    \\\"",{"type":47,"tag":548,"props":2007,"children":2008},{"style":567},[2009],{"type":53,"value":2010},"id",{"type":47,"tag":548,"props":2012,"children":2013},{"style":708},[2014],{"type":53,"value":2015},"\\\"",{"type":47,"tag":548,"props":2017,"children":2018},{"style":567},[2019],{"type":53,"value":2020},": ",{"type":47,"tag":548,"props":2022,"children":2023},{"style":708},[2024],{"type":53,"value":2025},"\\\"$FILE_ID\\\"",{"type":47,"tag":548,"props":2027,"children":2028},{"style":567},[2029],{"type":53,"value":2030},",\n",{"type":47,"tag":548,"props":2032,"children":2033},{"class":550,"line":1002},[2034,2038,2043,2047,2051,2056],{"type":47,"tag":548,"props":2035,"children":2036},{"style":708},[2037],{"type":53,"value":2005},{"type":47,"tag":548,"props":2039,"children":2040},{"style":567},[2041],{"type":53,"value":2042},"model",{"type":47,"tag":548,"props":2044,"children":2045},{"style":708},[2046],{"type":53,"value":2015},{"type":47,"tag":548,"props":2048,"children":2049},{"style":567},[2050],{"type":53,"value":2020},{"type":47,"tag":548,"props":2052,"children":2053},{"style":708},[2054],{"type":53,"value":2055},"\\\"$MODEL_ID\\\"",{"type":47,"tag":548,"props":2057,"children":2058},{"style":567},[2059],{"type":53,"value":2030},{"type":47,"tag":548,"props":2061,"children":2062},{"class":550,"line":1029},[2063,2067,2072,2076],{"type":47,"tag":548,"props":2064,"children":2065},{"style":708},[2066],{"type":53,"value":2005},{"type":47,"tag":548,"props":2068,"children":2069},{"style":567},[2070],{"type":53,"value":2071},"chunk_duration",{"type":47,"tag":548,"props":2073,"children":2074},{"style":708},[2075],{"type":53,"value":2015},{"type":47,"tag":548,"props":2077,"children":2078},{"style":567},[2079],{"type":53,"value":2080},": 60,\n",{"type":47,"tag":548,"props":2082,"children":2083},{"class":550,"line":1091},[2084,2088,2093,2097],{"type":47,"tag":548,"props":2085,"children":2086},{"style":708},[2087],{"type":53,"value":2005},{"type":47,"tag":548,"props":2089,"children":2090},{"style":567},[2091],{"type":53,"value":2092},"chunk_overlap_duration",{"type":47,"tag":548,"props":2094,"children":2095},{"style":708},[2096],{"type":53,"value":2015},{"type":47,"tag":548,"props":2098,"children":2099},{"style":567},[2100],{"type":53,"value":2101},": 10\n",{"type":47,"tag":548,"props":2103,"children":2104},{"class":550,"line":1118},[2105,2110],{"type":47,"tag":548,"props":2106,"children":2107},{"style":567},[2108],{"type":53,"value":2109},"  }",{"type":47,"tag":548,"props":2111,"children":2112},{"style":561},[2113],{"type":53,"value":575},{"type":47,"tag":1389,"props":2115,"children":2117},{"id":2116},"generate-text-embeddings-for-text-to-video-search",[2118],{"type":53,"value":2119},"Generate text embeddings (for text-to-video search)",{"type":47,"tag":537,"props":2121,"children":2123},{"className":539,"code":2122,"language":541,"meta":542,"style":542},"curl -fsS -X POST \"$BASE_URL\u002Fv1\u002Fgenerate_text_embeddings\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d \"{\\\"text_input\\\":\\\"a forklift moving pallets\\\",\\\"model\\\":\\\"${MODEL_ID}\\\"}\"\n",[2124],{"type":47,"tag":103,"props":2125,"children":2126},{"__ignoreMap":542},[2127,2167,2190],{"type":47,"tag":548,"props":2128,"children":2129},{"class":550,"line":551},[2130,2134,2138,2142,2146,2150,2154,2159,2163],{"type":47,"tag":548,"props":2131,"children":2132},{"style":843},[2133],{"type":53,"value":1452},{"type":47,"tag":548,"props":2135,"children":2136},{"style":567},[2137],{"type":53,"value":1457},{"type":47,"tag":548,"props":2139,"children":2140},{"style":567},[2141],{"type":53,"value":1815},{"type":47,"tag":548,"props":2143,"children":2144},{"style":567},[2145],{"type":53,"value":1820},{"type":47,"tag":548,"props":2147,"children":2148},{"style":561},[2149],{"type":53,"value":564},{"type":47,"tag":548,"props":2151,"children":2152},{"style":708},[2153],{"type":53,"value":1466},{"type":47,"tag":548,"props":2155,"children":2156},{"style":567},[2157],{"type":53,"value":2158},"\u002Fv1\u002Fgenerate_text_embeddings",{"type":47,"tag":548,"props":2160,"children":2161},{"style":561},[2162],{"type":53,"value":809},{"type":47,"tag":548,"props":2164,"children":2165},{"style":708},[2166],{"type":53,"value":1279},{"type":47,"tag":548,"props":2168,"children":2169},{"class":550,"line":725},[2170,2174,2178,2182,2186],{"type":47,"tag":548,"props":2171,"children":2172},{"style":567},[2173],{"type":53,"value":1963},{"type":47,"tag":548,"props":2175,"children":2176},{"style":561},[2177],{"type":53,"value":564},{"type":47,"tag":548,"props":2179,"children":2180},{"style":567},[2181],{"type":53,"value":1972},{"type":47,"tag":548,"props":2183,"children":2184},{"style":561},[2185],{"type":53,"value":809},{"type":47,"tag":548,"props":2187,"children":2188},{"style":708},[2189],{"type":53,"value":1279},{"type":47,"tag":548,"props":2191,"children":2192},{"class":550,"line":790},[2193,2197,2201,2206,2210,2215,2219,2224,2228,2233,2237,2242,2246,2250,2254,2258,2262,2266,2270,2274,2278,2282],{"type":47,"tag":548,"props":2194,"children":2195},{"style":567},[2196],{"type":53,"value":1988},{"type":47,"tag":548,"props":2198,"children":2199},{"style":561},[2200],{"type":53,"value":564},{"type":47,"tag":548,"props":2202,"children":2203},{"style":567},[2204],{"type":53,"value":2205},"{",{"type":47,"tag":548,"props":2207,"children":2208},{"style":708},[2209],{"type":53,"value":2015},{"type":47,"tag":548,"props":2211,"children":2212},{"style":567},[2213],{"type":53,"value":2214},"text_input",{"type":47,"tag":548,"props":2216,"children":2217},{"style":708},[2218],{"type":53,"value":2015},{"type":47,"tag":548,"props":2220,"children":2221},{"style":567},[2222],{"type":53,"value":2223},":",{"type":47,"tag":548,"props":2225,"children":2226},{"style":708},[2227],{"type":53,"value":2015},{"type":47,"tag":548,"props":2229,"children":2230},{"style":567},[2231],{"type":53,"value":2232},"a forklift moving pallets",{"type":47,"tag":548,"props":2234,"children":2235},{"style":708},[2236],{"type":53,"value":2015},{"type":47,"tag":548,"props":2238,"children":2239},{"style":567},[2240],{"type":53,"value":2241},",",{"type":47,"tag":548,"props":2243,"children":2244},{"style":708},[2245],{"type":53,"value":2015},{"type":47,"tag":548,"props":2247,"children":2248},{"style":567},[2249],{"type":53,"value":2042},{"type":47,"tag":548,"props":2251,"children":2252},{"style":708},[2253],{"type":53,"value":2015},{"type":47,"tag":548,"props":2255,"children":2256},{"style":567},[2257],{"type":53,"value":2223},{"type":47,"tag":548,"props":2259,"children":2260},{"style":708},[2261],{"type":53,"value":2015},{"type":47,"tag":548,"props":2263,"children":2264},{"style":561},[2265],{"type":53,"value":1427},{"type":47,"tag":548,"props":2267,"children":2268},{"style":708},[2269],{"type":53,"value":1625},{"type":47,"tag":548,"props":2271,"children":2272},{"style":561},[2273],{"type":53,"value":990},{"type":47,"tag":548,"props":2275,"children":2276},{"style":708},[2277],{"type":53,"value":2015},{"type":47,"tag":548,"props":2279,"children":2280},{"style":567},[2281],{"type":53,"value":990},{"type":47,"tag":548,"props":2283,"children":2284},{"style":561},[2285],{"type":53,"value":575},{"type":47,"tag":1389,"props":2287,"children":2289},{"id":2288},"embed-a-live-rtsp-stream",[2290],{"type":53,"value":2291},"Embed a live RTSP stream",{"type":47,"tag":56,"props":2293,"children":2294},{},[2295,2297,2302,2303,2309,2310,2316,2318,2324,2326,2332,2334,2340,2342,2348],{"type":53,"value":2296},"Live streams ",{"type":47,"tag":95,"props":2298,"children":2299},{},[2300],{"type":53,"value":2301},"require",{"type":53,"value":101},{"type":47,"tag":103,"props":2304,"children":2306},{"className":2305},[],[2307],{"type":53,"value":2308},"stream: true",{"type":53,"value":1764},{"type":47,"tag":103,"props":2311,"children":2313},{"className":2312},[],[2314],{"type":53,"value":2315},"chunk_duration > 0",{"type":53,"value":2317},". A synchronous call returns ",{"type":47,"tag":103,"props":2319,"children":2321},{"className":2320},[],[2322],{"type":53,"value":2323},"400 BadParameters: \"Only streaming output is supported for live-streams\"",{"type":53,"value":2325},", and the ",{"type":47,"tag":103,"props":2327,"children":2329},{"className":2328},[],[2330],{"type":53,"value":2331},"chunk_duration: 0",{"type":53,"value":2333}," returned by ",{"type":47,"tag":103,"props":2335,"children":2337},{"className":2336},[],[2338],{"type":53,"value":2339},"streams\u002Fadd",{"type":53,"value":2341}," is a placeholder — it must be overridden on the embed request or you get ",{"type":47,"tag":103,"props":2343,"children":2345},{"className":2344},[],[2346],{"type":53,"value":2347},"400 BadParameter: \"chunk_duration must be greater than 0\"",{"type":53,"value":166},{"type":47,"tag":56,"props":2350,"children":2351},{},[2352,2358,2360,2364,2366,2372,2374,2380,2382,2388],{"type":47,"tag":103,"props":2353,"children":2355},{"className":2354},[],[2356],{"type":53,"value":2357},"POST \u002Fv1\u002Fstreams\u002Fadd",{"type":53,"value":2359}," does ",{"type":47,"tag":95,"props":2361,"children":2362},{},[2363],{"type":53,"value":585},{"type":53,"value":2365}," deduplicate by ",{"type":47,"tag":103,"props":2367,"children":2369},{"className":2368},[],[2370],{"type":53,"value":2371},"liveStreamUrl",{"type":53,"value":2373}," — submitting the same URL twice mints two distinct ",{"type":47,"tag":103,"props":2375,"children":2377},{"className":2376},[],[2378],{"type":53,"value":2379},"stream_id",{"type":53,"value":2381},"s. Before adding, call ",{"type":47,"tag":103,"props":2383,"children":2385},{"className":2384},[],[2386],{"type":53,"value":2387},"GET \u002Fv1\u002Fstreams\u002Fget-stream-info",{"type":53,"value":2389}," and reuse any existing registration for that URL to avoid orphaned entries.",{"type":47,"tag":537,"props":2391,"children":2393},{"className":539,"code":2392,"language":541,"meta":542,"style":542},"STREAM_ID=$(curl -fsS -X POST \"$BASE_URL\u002Fv1\u002Fstreams\u002Fadd\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"streams\":[{\"liveStreamUrl\":\"rtsp:\u002F\u002Fhost:port\u002Flive\u002Fvideo\",\"description\":\"camera-001\"}]}' \\\n  | jq -r '.results[0].id')\n\ncurl -N -X POST \"$BASE_URL\u002Fv1\u002Fgenerate_video_embeddings\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Accept: text\u002Fevent-stream\" \\\n  -d \"{\n    \\\"id\\\": \\\"$STREAM_ID\\\",\n    \\\"model\\\": \\\"$MODEL_ID\\\",\n    \\\"stream\\\": true,\n    \\\"chunk_duration\\\": 10,\n    \\\"chunk_overlap_duration\\\": 2\n  }\"\n\n# List registered live streams (use this to recover stream_ids across sessions).\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fstreams\u002Fget-stream-info\"\n\n# Stop embedding for the stream when done (terminates SSE with data: [DONE]).\ncurl -fsS -X DELETE \"$BASE_URL\u002Fv1\u002Fgenerate_video_embeddings\u002F$STREAM_ID\"\n",[2394],{"type":47,"tag":103,"props":2395,"children":2396},{"__ignoreMap":542},[2397,2446,2469,2493,2526,2533,2573,2596,2620,2635,2663,2690,2711,2731,2751,2762,2769,2778,2807,2815,2824],{"type":47,"tag":548,"props":2398,"children":2399},{"class":550,"line":551},[2400,2405,2409,2413,2417,2421,2425,2429,2433,2438,2442],{"type":47,"tag":548,"props":2401,"children":2402},{"style":708},[2403],{"type":53,"value":2404},"STREAM_ID",{"type":47,"tag":548,"props":2406,"children":2407},{"style":561},[2408],{"type":53,"value":1554},{"type":47,"tag":548,"props":2410,"children":2411},{"style":843},[2412],{"type":53,"value":1452},{"type":47,"tag":548,"props":2414,"children":2415},{"style":567},[2416],{"type":53,"value":1457},{"type":47,"tag":548,"props":2418,"children":2419},{"style":567},[2420],{"type":53,"value":1815},{"type":47,"tag":548,"props":2422,"children":2423},{"style":567},[2424],{"type":53,"value":1820},{"type":47,"tag":548,"props":2426,"children":2427},{"style":561},[2428],{"type":53,"value":564},{"type":47,"tag":548,"props":2430,"children":2431},{"style":708},[2432],{"type":53,"value":1466},{"type":47,"tag":548,"props":2434,"children":2435},{"style":567},[2436],{"type":53,"value":2437},"\u002Fv1\u002Fstreams\u002Fadd",{"type":47,"tag":548,"props":2439,"children":2440},{"style":561},[2441],{"type":53,"value":809},{"type":47,"tag":548,"props":2443,"children":2444},{"style":708},[2445],{"type":53,"value":1279},{"type":47,"tag":548,"props":2447,"children":2448},{"class":550,"line":725},[2449,2453,2457,2461,2465],{"type":47,"tag":548,"props":2450,"children":2451},{"style":567},[2452],{"type":53,"value":1963},{"type":47,"tag":548,"props":2454,"children":2455},{"style":561},[2456],{"type":53,"value":564},{"type":47,"tag":548,"props":2458,"children":2459},{"style":567},[2460],{"type":53,"value":1972},{"type":47,"tag":548,"props":2462,"children":2463},{"style":561},[2464],{"type":53,"value":809},{"type":47,"tag":548,"props":2466,"children":2467},{"style":708},[2468],{"type":53,"value":1279},{"type":47,"tag":548,"props":2470,"children":2471},{"class":550,"line":790},[2472,2476,2480,2485,2489],{"type":47,"tag":548,"props":2473,"children":2474},{"style":567},[2475],{"type":53,"value":1988},{"type":47,"tag":548,"props":2477,"children":2478},{"style":561},[2479],{"type":53,"value":866},{"type":47,"tag":548,"props":2481,"children":2482},{"style":567},[2483],{"type":53,"value":2484},"{\"streams\":[{\"liveStreamUrl\":\"rtsp:\u002F\u002Fhost:port\u002Flive\u002Fvideo\",\"description\":\"camera-001\"}]}",{"type":47,"tag":548,"props":2486,"children":2487},{"style":561},[2488],{"type":53,"value":1669},{"type":47,"tag":548,"props":2490,"children":2491},{"style":708},[2492],{"type":53,"value":1279},{"type":47,"tag":548,"props":2494,"children":2495},{"class":550,"line":821},[2496,2501,2505,2509,2513,2518,2522],{"type":47,"tag":548,"props":2497,"children":2498},{"style":561},[2499],{"type":53,"value":2500},"  |",{"type":47,"tag":548,"props":2502,"children":2503},{"style":843},[2504],{"type":53,"value":1659},{"type":47,"tag":548,"props":2506,"children":2507},{"style":567},[2508],{"type":53,"value":1899},{"type":47,"tag":548,"props":2510,"children":2511},{"style":561},[2512],{"type":53,"value":866},{"type":47,"tag":548,"props":2514,"children":2515},{"style":567},[2516],{"type":53,"value":2517},".results[0].id",{"type":47,"tag":548,"props":2519,"children":2520},{"style":561},[2521],{"type":53,"value":1669},{"type":47,"tag":548,"props":2523,"children":2524},{"style":561},[2525],{"type":53,"value":1584},{"type":47,"tag":548,"props":2527,"children":2528},{"class":550,"line":879},[2529],{"type":47,"tag":548,"props":2530,"children":2531},{"emptyLinePlaceholder":1441},[2532],{"type":53,"value":1444},{"type":47,"tag":548,"props":2534,"children":2535},{"class":550,"line":915},[2536,2540,2545,2549,2553,2557,2561,2565,2569],{"type":47,"tag":548,"props":2537,"children":2538},{"style":843},[2539],{"type":53,"value":1452},{"type":47,"tag":548,"props":2541,"children":2542},{"style":567},[2543],{"type":53,"value":2544}," -N",{"type":47,"tag":548,"props":2546,"children":2547},{"style":567},[2548],{"type":53,"value":1815},{"type":47,"tag":548,"props":2550,"children":2551},{"style":567},[2552],{"type":53,"value":1820},{"type":47,"tag":548,"props":2554,"children":2555},{"style":561},[2556],{"type":53,"value":564},{"type":47,"tag":548,"props":2558,"children":2559},{"style":708},[2560],{"type":53,"value":1466},{"type":47,"tag":548,"props":2562,"children":2563},{"style":567},[2564],{"type":53,"value":1947},{"type":47,"tag":548,"props":2566,"children":2567},{"style":561},[2568],{"type":53,"value":809},{"type":47,"tag":548,"props":2570,"children":2571},{"style":708},[2572],{"type":53,"value":1279},{"type":47,"tag":548,"props":2574,"children":2575},{"class":550,"line":937},[2576,2580,2584,2588,2592],{"type":47,"tag":548,"props":2577,"children":2578},{"style":567},[2579],{"type":53,"value":1963},{"type":47,"tag":548,"props":2581,"children":2582},{"style":561},[2583],{"type":53,"value":564},{"type":47,"tag":548,"props":2585,"children":2586},{"style":567},[2587],{"type":53,"value":1972},{"type":47,"tag":548,"props":2589,"children":2590},{"style":561},[2591],{"type":53,"value":809},{"type":47,"tag":548,"props":2593,"children":2594},{"style":708},[2595],{"type":53,"value":1279},{"type":47,"tag":548,"props":2597,"children":2598},{"class":550,"line":958},[2599,2603,2607,2612,2616],{"type":47,"tag":548,"props":2600,"children":2601},{"style":567},[2602],{"type":53,"value":1963},{"type":47,"tag":548,"props":2604,"children":2605},{"style":561},[2606],{"type":53,"value":564},{"type":47,"tag":548,"props":2608,"children":2609},{"style":567},[2610],{"type":53,"value":2611},"Accept: text\u002Fevent-stream",{"type":47,"tag":548,"props":2613,"children":2614},{"style":561},[2615],{"type":53,"value":809},{"type":47,"tag":548,"props":2617,"children":2618},{"style":708},[2619],{"type":53,"value":1279},{"type":47,"tag":548,"props":2621,"children":2622},{"class":550,"line":967},[2623,2627,2631],{"type":47,"tag":548,"props":2624,"children":2625},{"style":567},[2626],{"type":53,"value":1988},{"type":47,"tag":548,"props":2628,"children":2629},{"style":561},[2630],{"type":53,"value":564},{"type":47,"tag":548,"props":2632,"children":2633},{"style":567},[2634],{"type":53,"value":1997},{"type":47,"tag":548,"props":2636,"children":2637},{"class":550,"line":1002},[2638,2642,2646,2650,2654,2659],{"type":47,"tag":548,"props":2639,"children":2640},{"style":708},[2641],{"type":53,"value":2005},{"type":47,"tag":548,"props":2643,"children":2644},{"style":567},[2645],{"type":53,"value":2010},{"type":47,"tag":548,"props":2647,"children":2648},{"style":708},[2649],{"type":53,"value":2015},{"type":47,"tag":548,"props":2651,"children":2652},{"style":567},[2653],{"type":53,"value":2020},{"type":47,"tag":548,"props":2655,"children":2656},{"style":708},[2657],{"type":53,"value":2658},"\\\"$STREAM_ID\\\"",{"type":47,"tag":548,"props":2660,"children":2661},{"style":567},[2662],{"type":53,"value":2030},{"type":47,"tag":548,"props":2664,"children":2665},{"class":550,"line":1029},[2666,2670,2674,2678,2682,2686],{"type":47,"tag":548,"props":2667,"children":2668},{"style":708},[2669],{"type":53,"value":2005},{"type":47,"tag":548,"props":2671,"children":2672},{"style":567},[2673],{"type":53,"value":2042},{"type":47,"tag":548,"props":2675,"children":2676},{"style":708},[2677],{"type":53,"value":2015},{"type":47,"tag":548,"props":2679,"children":2680},{"style":567},[2681],{"type":53,"value":2020},{"type":47,"tag":548,"props":2683,"children":2684},{"style":708},[2685],{"type":53,"value":2055},{"type":47,"tag":548,"props":2687,"children":2688},{"style":567},[2689],{"type":53,"value":2030},{"type":47,"tag":548,"props":2691,"children":2692},{"class":550,"line":1091},[2693,2697,2702,2706],{"type":47,"tag":548,"props":2694,"children":2695},{"style":708},[2696],{"type":53,"value":2005},{"type":47,"tag":548,"props":2698,"children":2699},{"style":567},[2700],{"type":53,"value":2701},"stream",{"type":47,"tag":548,"props":2703,"children":2704},{"style":708},[2705],{"type":53,"value":2015},{"type":47,"tag":548,"props":2707,"children":2708},{"style":567},[2709],{"type":53,"value":2710},": true,\n",{"type":47,"tag":548,"props":2712,"children":2713},{"class":550,"line":1118},[2714,2718,2722,2726],{"type":47,"tag":548,"props":2715,"children":2716},{"style":708},[2717],{"type":53,"value":2005},{"type":47,"tag":548,"props":2719,"children":2720},{"style":567},[2721],{"type":53,"value":2071},{"type":47,"tag":548,"props":2723,"children":2724},{"style":708},[2725],{"type":53,"value":2015},{"type":47,"tag":548,"props":2727,"children":2728},{"style":567},[2729],{"type":53,"value":2730},": 10,\n",{"type":47,"tag":548,"props":2732,"children":2733},{"class":550,"line":1148},[2734,2738,2742,2746],{"type":47,"tag":548,"props":2735,"children":2736},{"style":708},[2737],{"type":53,"value":2005},{"type":47,"tag":548,"props":2739,"children":2740},{"style":567},[2741],{"type":53,"value":2092},{"type":47,"tag":548,"props":2743,"children":2744},{"style":708},[2745],{"type":53,"value":2015},{"type":47,"tag":548,"props":2747,"children":2748},{"style":567},[2749],{"type":53,"value":2750},": 2\n",{"type":47,"tag":548,"props":2752,"children":2753},{"class":550,"line":1173},[2754,2758],{"type":47,"tag":548,"props":2755,"children":2756},{"style":567},[2757],{"type":53,"value":2109},{"type":47,"tag":548,"props":2759,"children":2760},{"style":561},[2761],{"type":53,"value":575},{"type":47,"tag":548,"props":2763,"children":2764},{"class":550,"line":1212},[2765],{"type":47,"tag":548,"props":2766,"children":2767},{"emptyLinePlaceholder":1441},[2768],{"type":53,"value":1444},{"type":47,"tag":548,"props":2770,"children":2772},{"class":550,"line":2771},17,[2773],{"type":47,"tag":548,"props":2774,"children":2775},{"style":909},[2776],{"type":53,"value":2777},"# List registered live streams (use this to recover stream_ids across sessions).\n",{"type":47,"tag":548,"props":2779,"children":2781},{"class":550,"line":2780},18,[2782,2786,2790,2794,2798,2803],{"type":47,"tag":548,"props":2783,"children":2784},{"style":843},[2785],{"type":53,"value":1452},{"type":47,"tag":548,"props":2787,"children":2788},{"style":567},[2789],{"type":53,"value":1457},{"type":47,"tag":548,"props":2791,"children":2792},{"style":561},[2793],{"type":53,"value":564},{"type":47,"tag":548,"props":2795,"children":2796},{"style":708},[2797],{"type":53,"value":1466},{"type":47,"tag":548,"props":2799,"children":2800},{"style":567},[2801],{"type":53,"value":2802},"\u002Fv1\u002Fstreams\u002Fget-stream-info",{"type":47,"tag":548,"props":2804,"children":2805},{"style":561},[2806],{"type":53,"value":575},{"type":47,"tag":548,"props":2808,"children":2810},{"class":550,"line":2809},19,[2811],{"type":47,"tag":548,"props":2812,"children":2813},{"emptyLinePlaceholder":1441},[2814],{"type":53,"value":1444},{"type":47,"tag":548,"props":2816,"children":2818},{"class":550,"line":2817},20,[2819],{"type":47,"tag":548,"props":2820,"children":2821},{"style":909},[2822],{"type":53,"value":2823},"# Stop embedding for the stream when done (terminates SSE with data: [DONE]).\n",{"type":47,"tag":548,"props":2825,"children":2827},{"class":550,"line":2826},21,[2828,2832,2836,2840,2845,2849,2853,2858,2863],{"type":47,"tag":548,"props":2829,"children":2830},{"style":843},[2831],{"type":53,"value":1452},{"type":47,"tag":548,"props":2833,"children":2834},{"style":567},[2835],{"type":53,"value":1457},{"type":47,"tag":548,"props":2837,"children":2838},{"style":567},[2839],{"type":53,"value":1815},{"type":47,"tag":548,"props":2841,"children":2842},{"style":567},[2843],{"type":53,"value":2844}," DELETE",{"type":47,"tag":548,"props":2846,"children":2847},{"style":561},[2848],{"type":53,"value":564},{"type":47,"tag":548,"props":2850,"children":2851},{"style":708},[2852],{"type":53,"value":1466},{"type":47,"tag":548,"props":2854,"children":2855},{"style":567},[2856],{"type":53,"value":2857},"\u002Fv1\u002Fgenerate_video_embeddings\u002F",{"type":47,"tag":548,"props":2859,"children":2860},{"style":708},[2861],{"type":53,"value":2862},"$STREAM_ID",{"type":47,"tag":548,"props":2864,"children":2865},{"style":561},[2866],{"type":53,"value":575},{"type":47,"tag":56,"props":2868,"children":2869},{},[2870,2871,2877],{"type":53,"value":501},{"type":47,"tag":103,"props":2872,"children":2874},{"className":2873},[],[2875],{"type":53,"value":2876},"references\u002Frest-api.md",{"type":53,"value":2878}," for the full endpoint catalog, SSE streaming, and single-stream control-plane patterns.",{"type":47,"tag":168,"props":2880,"children":2882},{"id":2881},"logs-metrics-and-status",[2883],{"type":53,"value":2884},"Logs, Metrics, And Status",{"type":47,"tag":537,"props":2886,"children":2888},{"className":539,"code":2887,"language":541,"meta":542,"style":542},"docker compose -f rtvi-embed-docker-compose.yml ps\ndocker compose -f rtvi-embed-docker-compose.yml logs -f rtvi-embed\ndocker stats vss-rtvi-embed\n\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fmetrics\"          # Prometheus.\ncurl -fsS \"$BASE_URL\u002Fv1\u002Fassets\u002Fstats\"     # Asset storage counts and TTL.\n",[2889],{"type":47,"tag":103,"props":2890,"children":2891},{"__ignoreMap":542},[2892,2916,2947,2964,2971,3004],{"type":47,"tag":548,"props":2893,"children":2894},{"class":550,"line":551},[2895,2899,2903,2907,2911],{"type":47,"tag":548,"props":2896,"children":2897},{"style":843},[2898],{"type":53,"value":22},{"type":47,"tag":548,"props":2900,"children":2901},{"style":567},[2902],{"type":53,"value":1264},{"type":47,"tag":548,"props":2904,"children":2905},{"style":567},[2906],{"type":53,"value":1269},{"type":47,"tag":548,"props":2908,"children":2909},{"style":567},[2910],{"type":53,"value":1274},{"type":47,"tag":548,"props":2912,"children":2913},{"style":567},[2914],{"type":53,"value":2915}," ps\n",{"type":47,"tag":548,"props":2917,"children":2918},{"class":550,"line":725},[2919,2923,2927,2931,2935,2939,2943],{"type":47,"tag":548,"props":2920,"children":2921},{"style":843},[2922],{"type":53,"value":22},{"type":47,"tag":548,"props":2924,"children":2925},{"style":567},[2926],{"type":53,"value":1264},{"type":47,"tag":548,"props":2928,"children":2929},{"style":567},[2930],{"type":53,"value":1269},{"type":47,"tag":548,"props":2932,"children":2933},{"style":567},[2934],{"type":53,"value":1274},{"type":47,"tag":548,"props":2936,"children":2937},{"style":567},[2938],{"type":53,"value":1366},{"type":47,"tag":548,"props":2940,"children":2941},{"style":567},[2942],{"type":53,"value":1269},{"type":47,"tag":548,"props":2944,"children":2945},{"style":567},[2946],{"type":53,"value":1307},{"type":47,"tag":548,"props":2948,"children":2949},{"class":550,"line":790},[2950,2954,2959],{"type":47,"tag":548,"props":2951,"children":2952},{"style":843},[2953],{"type":53,"value":22},{"type":47,"tag":548,"props":2955,"children":2956},{"style":567},[2957],{"type":53,"value":2958}," stats",{"type":47,"tag":548,"props":2960,"children":2961},{"style":567},[2962],{"type":53,"value":2963}," vss-rtvi-embed\n",{"type":47,"tag":548,"props":2965,"children":2966},{"class":550,"line":821},[2967],{"type":47,"tag":548,"props":2968,"children":2969},{"emptyLinePlaceholder":1441},[2970],{"type":53,"value":1444},{"type":47,"tag":548,"props":2972,"children":2973},{"class":550,"line":879},[2974,2978,2982,2986,2990,2995,2999],{"type":47,"tag":548,"props":2975,"children":2976},{"style":843},[2977],{"type":53,"value":1452},{"type":47,"tag":548,"props":2979,"children":2980},{"style":567},[2981],{"type":53,"value":1457},{"type":47,"tag":548,"props":2983,"children":2984},{"style":561},[2985],{"type":53,"value":564},{"type":47,"tag":548,"props":2987,"children":2988},{"style":708},[2989],{"type":53,"value":1466},{"type":47,"tag":548,"props":2991,"children":2992},{"style":567},[2993],{"type":53,"value":2994},"\u002Fv1\u002Fmetrics",{"type":47,"tag":548,"props":2996,"children":2997},{"style":561},[2998],{"type":53,"value":809},{"type":47,"tag":548,"props":3000,"children":3001},{"style":909},[3002],{"type":53,"value":3003},"          # Prometheus.\n",{"type":47,"tag":548,"props":3005,"children":3006},{"class":550,"line":915},[3007,3011,3015,3019,3023,3028,3032],{"type":47,"tag":548,"props":3008,"children":3009},{"style":843},[3010],{"type":53,"value":1452},{"type":47,"tag":548,"props":3012,"children":3013},{"style":567},[3014],{"type":53,"value":1457},{"type":47,"tag":548,"props":3016,"children":3017},{"style":561},[3018],{"type":53,"value":564},{"type":47,"tag":548,"props":3020,"children":3021},{"style":708},[3022],{"type":53,"value":1466},{"type":47,"tag":548,"props":3024,"children":3025},{"style":567},[3026],{"type":53,"value":3027},"\u002Fv1\u002Fassets\u002Fstats",{"type":47,"tag":548,"props":3029,"children":3030},{"style":561},[3031],{"type":53,"value":809},{"type":47,"tag":548,"props":3033,"children":3034},{"style":909},[3035],{"type":53,"value":3036},"     # Asset storage counts and TTL.\n",{"type":47,"tag":56,"props":3038,"children":3039},{},[3040,3042,3048,3050,3056],{"type":53,"value":3041},"If ",{"type":47,"tag":103,"props":3043,"children":3045},{"className":3044},[],[3046],{"type":53,"value":3047},"RTVI_EMBED_LOG_DIR",{"type":53,"value":3049}," is bound to a host directory, log files are also available at ",{"type":47,"tag":103,"props":3051,"children":3053},{"className":3052},[],[3054],{"type":53,"value":3055},"\u002Fopt\u002Fnvidia\u002Frtvi\u002Flog\u002Frtvi\u002F",{"type":53,"value":3057}," on the host.",{"type":47,"tag":168,"props":3059,"children":3061},{"id":3060},"integration-surface",[3062],{"type":53,"value":3063},"Integration Surface",{"type":47,"tag":62,"props":3065,"children":3066},{},[3067,3107,3163],{"type":47,"tag":66,"props":3068,"children":3069},{},[3070,3075,3077,3083,3085,3091,3092,3098,3099,3105],{"type":47,"tag":95,"props":3071,"children":3072},{},[3073],{"type":53,"value":3074},"Inputs:",{"type":53,"value":3076}," REST API on ",{"type":47,"tag":103,"props":3078,"children":3080},{"className":3079},[],[3081],{"type":53,"value":3082},":${RTVI_EMBED_PORT}",{"type":53,"value":3084}," (",{"type":47,"tag":103,"props":3086,"children":3088},{"className":3087},[],[3089],{"type":53,"value":3090},"POST \u002Fv1\u002Ffiles",{"type":53,"value":109},{"type":47,"tag":103,"props":3093,"children":3095},{"className":3094},[],[3096],{"type":53,"value":3097},"POST \u002Fv1\u002Fgenerate_text_embeddings",{"type":53,"value":109},{"type":47,"tag":103,"props":3100,"children":3102},{"className":3101},[],[3103],{"type":53,"value":3104},"POST \u002Fv1\u002Fgenerate_video_embeddings",{"type":53,"value":3106},", live-stream control endpoints).",{"type":47,"tag":66,"props":3108,"children":3109},{},[3110,3115,3117,3123,3125,3131,3133,3139,3140,3146,3148,3154,3156,3162],{"type":47,"tag":95,"props":3111,"children":3112},{},[3113],{"type":53,"value":3114},"Outputs:",{"type":53,"value":3116}," Synchronous REST responses, optional SSE for chunked video embeddings, optional Kafka messages on the topics named by ",{"type":47,"tag":103,"props":3118,"children":3120},{"className":3119},[],[3121],{"type":53,"value":3122},"RTVI_EMBED_KAFKA_TOPIC",{"type":53,"value":3124}," (container ",{"type":47,"tag":103,"props":3126,"children":3128},{"className":3127},[],[3129],{"type":53,"value":3130},"KAFKA_TOPIC",{"type":53,"value":3132},") and ",{"type":47,"tag":103,"props":3134,"children":3136},{"className":3135},[],[3137],{"type":53,"value":3138},"RTVI_EMBED_ERROR_MESSAGE_TOPIC",{"type":53,"value":3124},{"type":47,"tag":103,"props":3141,"children":3143},{"className":3142},[],[3144],{"type":53,"value":3145},"ERROR_MESSAGE_TOPIC",{"type":53,"value":3147},") when Kafka is enabled (host: ",{"type":47,"tag":103,"props":3149,"children":3151},{"className":3150},[],[3152],{"type":53,"value":3153},"RTVI_EMBED_KAFKA_ENABLED=true",{"type":53,"value":3155},", which Compose maps to container ",{"type":47,"tag":103,"props":3157,"children":3159},{"className":3158},[],[3160],{"type":53,"value":3161},"KAFKA_ENABLED",{"type":53,"value":257},{"type":47,"tag":66,"props":3164,"children":3165},{},[3166,3171,3173,3179,3181,3186,3188,3193,3195,3201,3202,3208],{"type":47,"tag":95,"props":3167,"children":3168},{},[3169],{"type":53,"value":3170},"Optional peers:",{"type":53,"value":3172}," Redis (",{"type":47,"tag":103,"props":3174,"children":3176},{"className":3175},[],[3177],{"type":53,"value":3178},"ENABLE_REDIS_ERROR_MESSAGES=true",{"type":53,"value":3180},"), Kafka (host: ",{"type":47,"tag":103,"props":3182,"children":3184},{"className":3183},[],[3185],{"type":53,"value":3153},{"type":53,"value":3187}," → container ",{"type":47,"tag":103,"props":3189,"children":3191},{"className":3190},[],[3192],{"type":53,"value":3161},{"type":53,"value":3194},"), OpenTelemetry collector (host: ",{"type":47,"tag":103,"props":3196,"children":3198},{"className":3197},[],[3199],{"type":53,"value":3200},"RTVI_EMBED_ENABLE_OTEL_MONITORING=true",{"type":53,"value":3187},{"type":47,"tag":103,"props":3203,"children":3205},{"className":3204},[],[3206],{"type":53,"value":3207},"ENABLE_OTEL_MONITORING",{"type":53,"value":257},{"type":47,"tag":56,"props":3210,"children":3211},{},[3212,3218],{"type":47,"tag":103,"props":3213,"children":3215},{"className":3214},[],[3216],{"type":53,"value":3217},"references\u002Fintegrate-vss-deploy-video-embedding.md",{"type":53,"value":3219}," documents the full integration contract.",{"type":47,"tag":168,"props":3221,"children":3223},{"id":3222},"error-handling",[3224],{"type":53,"value":3225},"Error Handling",{"type":47,"tag":56,"props":3227,"children":3228},{},[3229,3231,3236,3237,3243],{"type":53,"value":3230},"API failures return JSON with ",{"type":47,"tag":103,"props":3232,"children":3234},{"className":3233},[],[3235],{"type":53,"value":103},{"type":53,"value":1764},{"type":47,"tag":103,"props":3238,"children":3240},{"className":3239},[],[3241],{"type":53,"value":3242},"message",{"type":53,"value":3244}," fields:",{"type":47,"tag":537,"props":3246,"children":3250},{"className":3247,"code":3248,"language":3249,"meta":542,"style":542},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"code\": \"BadParameter\",\n  \"message\": \"chunk_duration must be greater than 0\"\n}\n","json",[3251],{"type":47,"tag":103,"props":3252,"children":3253},{"__ignoreMap":542},[3254,3261,3298,3330],{"type":47,"tag":548,"props":3255,"children":3256},{"class":550,"line":551},[3257],{"type":47,"tag":548,"props":3258,"children":3259},{"style":561},[3260],{"type":53,"value":1997},{"type":47,"tag":548,"props":3262,"children":3263},{"class":550,"line":725},[3264,3269,3273,3277,3281,3285,3290,3294],{"type":47,"tag":548,"props":3265,"children":3266},{"style":561},[3267],{"type":53,"value":3268},"  \"",{"type":47,"tag":548,"props":3270,"children":3271},{"style":702},[3272],{"type":53,"value":103},{"type":47,"tag":548,"props":3274,"children":3275},{"style":561},[3276],{"type":53,"value":809},{"type":47,"tag":548,"props":3278,"children":3279},{"style":561},[3280],{"type":53,"value":2223},{"type":47,"tag":548,"props":3282,"children":3283},{"style":561},[3284],{"type":53,"value":564},{"type":47,"tag":548,"props":3286,"children":3287},{"style":567},[3288],{"type":53,"value":3289},"BadParameter",{"type":47,"tag":548,"props":3291,"children":3292},{"style":561},[3293],{"type":53,"value":809},{"type":47,"tag":548,"props":3295,"children":3296},{"style":561},[3297],{"type":53,"value":2030},{"type":47,"tag":548,"props":3299,"children":3300},{"class":550,"line":790},[3301,3305,3309,3313,3317,3321,3326],{"type":47,"tag":548,"props":3302,"children":3303},{"style":561},[3304],{"type":53,"value":3268},{"type":47,"tag":548,"props":3306,"children":3307},{"style":702},[3308],{"type":53,"value":3242},{"type":47,"tag":548,"props":3310,"children":3311},{"style":561},[3312],{"type":53,"value":809},{"type":47,"tag":548,"props":3314,"children":3315},{"style":561},[3316],{"type":53,"value":2223},{"type":47,"tag":548,"props":3318,"children":3319},{"style":561},[3320],{"type":53,"value":564},{"type":47,"tag":548,"props":3322,"children":3323},{"style":567},[3324],{"type":53,"value":3325},"chunk_duration must be greater than 0",{"type":47,"tag":548,"props":3327,"children":3328},{"style":561},[3329],{"type":53,"value":575},{"type":47,"tag":548,"props":3331,"children":3332},{"class":550,"line":821},[3333],{"type":47,"tag":548,"props":3334,"children":3335},{"style":561},[3336],{"type":53,"value":3337},"}\n",{"type":47,"tag":56,"props":3339,"children":3340},{},[3341,3343,3349,3351,3357,3359,3364],{"type":53,"value":3342},"Pydantic \u002F OpenAPI validation failures use HTTP ",{"type":47,"tag":103,"props":3344,"children":3346},{"className":3345},[],[3347],{"type":53,"value":3348},"422",{"type":53,"value":3350}," with ",{"type":47,"tag":103,"props":3352,"children":3354},{"className":3353},[],[3355],{"type":53,"value":3356},"code: \"InvalidParameters\"",{"type":53,"value":3358}," and a field-level ",{"type":47,"tag":103,"props":3360,"children":3362},{"className":3361},[],[3363],{"type":53,"value":3242},{"type":53,"value":166},{"type":47,"tag":3366,"props":3367,"children":3368},"table",{},[3369,3393],{"type":47,"tag":3370,"props":3371,"children":3372},"thead",{},[3373],{"type":47,"tag":3374,"props":3375,"children":3376},"tr",{},[3377,3383,3388],{"type":47,"tag":3378,"props":3379,"children":3380},"th",{},[3381],{"type":53,"value":3382},"Code",{"type":47,"tag":3378,"props":3384,"children":3385},{},[3386],{"type":53,"value":3387},"Meaning",{"type":47,"tag":3378,"props":3389,"children":3390},{},[3391],{"type":53,"value":3392},"Common Cause",{"type":47,"tag":3394,"props":3395,"children":3396},"tbody",{},[3397,3464,3490,3529,3567,3593,3610,3628,3652],{"type":47,"tag":3374,"props":3398,"children":3399},{},[3400,3406,3411],{"type":47,"tag":3401,"props":3402,"children":3403},"td",{},[3404],{"type":53,"value":3405},"400",{"type":47,"tag":3401,"props":3407,"children":3408},{},[3409],{"type":53,"value":3410},"Bad Request",{"type":47,"tag":3401,"props":3412,"children":3413},{},[3414,3416,3421,3423,3429,3431,3436,3437,3442,3444,3449,3451,3456,3458],{"type":53,"value":3415},"Missing ",{"type":47,"tag":103,"props":3417,"children":3419},{"className":3418},[],[3420],{"type":53,"value":2214},{"type":53,"value":3422},"; unknown ",{"type":47,"tag":103,"props":3424,"children":3426},{"className":3425},[],[3427],{"type":53,"value":3428},"file_id",{"type":53,"value":3430}," \u002F ",{"type":47,"tag":103,"props":3432,"children":3434},{"className":3433},[],[3435],{"type":53,"value":2379},{"type":53,"value":3430},{"type":47,"tag":103,"props":3438,"children":3440},{"className":3439},[],[3441],{"type":53,"value":2042},{"type":53,"value":3443},"; live stream called without ",{"type":47,"tag":103,"props":3445,"children":3447},{"className":3446},[],[3448],{"type":53,"value":2308},{"type":53,"value":3450},"; ",{"type":47,"tag":103,"props":3452,"children":3454},{"className":3453},[],[3455],{"type":53,"value":2331},{"type":53,"value":3457}," on a live-stream embed request; ",{"type":47,"tag":103,"props":3459,"children":3461},{"className":3460},[],[3462],{"type":53,"value":3463},"chunk_overlap_duration >= chunk_duration",{"type":47,"tag":3374,"props":3465,"children":3466},{},[3467,3472,3477],{"type":47,"tag":3401,"props":3468,"children":3469},{},[3470],{"type":53,"value":3471},"401",{"type":47,"tag":3401,"props":3473,"children":3474},{},[3475],{"type":53,"value":3476},"Unauthorized",{"type":47,"tag":3401,"props":3478,"children":3479},{},[3480,3482,3488],{"type":53,"value":3481},"Missing or invalid ",{"type":47,"tag":103,"props":3483,"children":3485},{"className":3484},[],[3486],{"type":53,"value":3487},"Authorization: Bearer \u003Ctoken>",{"type":53,"value":3489}," when the deployment enforces auth",{"type":47,"tag":3374,"props":3491,"children":3492},{},[3493,3498,3503],{"type":47,"tag":3401,"props":3494,"children":3495},{},[3496],{"type":53,"value":3497},"403",{"type":47,"tag":3401,"props":3499,"children":3500},{},[3501],{"type":53,"value":3502},"Forbidden",{"type":47,"tag":3401,"props":3504,"children":3505},{},[3506,3512,3514,3520,3522,3528],{"type":47,"tag":103,"props":3507,"children":3509},{"className":3508},[],[3510],{"type":53,"value":3511},"file:\u002F\u002F",{"type":53,"value":3513}," URLs disabled (",{"type":47,"tag":103,"props":3515,"children":3517},{"className":3516},[],[3518],{"type":53,"value":3519},"FILE_URL_ALLOWED_DIRS",{"type":53,"value":3521}," unset) or resolved path outside the allow-list (",{"type":47,"tag":103,"props":3523,"children":3525},{"className":3524},[],[3526],{"type":53,"value":3527},"code: \"Forbidden\"",{"type":53,"value":768},{"type":47,"tag":3374,"props":3530,"children":3531},{},[3532,3537,3542],{"type":47,"tag":3401,"props":3533,"children":3534},{},[3535],{"type":53,"value":3536},"409",{"type":47,"tag":3401,"props":3538,"children":3539},{},[3540],{"type":53,"value":3541},"Conflict",{"type":47,"tag":3401,"props":3543,"children":3544},{},[3545,3551,3553,3559,3561,3566],{"type":47,"tag":103,"props":3546,"children":3548},{"className":3547},[],[3549],{"type":53,"value":3550},"DELETE \u002Fv1\u002Ffiles\u002F{file_id}",{"type":53,"value":3552}," while the file is in use (",{"type":47,"tag":103,"props":3554,"children":3556},{"className":3555},[],[3557],{"type":53,"value":3558},"ResourceInUse",{"type":53,"value":3560},"); another client already connected to the same live stream (",{"type":47,"tag":103,"props":3562,"children":3564},{"className":3563},[],[3565],{"type":53,"value":3541},{"type":53,"value":768},{"type":47,"tag":3374,"props":3568,"children":3569},{},[3570,3575,3580],{"type":47,"tag":3401,"props":3571,"children":3572},{},[3573],{"type":53,"value":3574},"413",{"type":47,"tag":3401,"props":3576,"children":3577},{},[3578],{"type":53,"value":3579},"Payload Too Large",{"type":47,"tag":3401,"props":3581,"children":3582},{},[3583,3585,3591],{"type":53,"value":3584},"Uploaded file or decoded ",{"type":47,"tag":103,"props":3586,"children":3588},{"className":3587},[],[3589],{"type":53,"value":3590},"data:",{"type":53,"value":3592}," URI exceeds server size limits",{"type":47,"tag":3374,"props":3594,"children":3595},{},[3596,3600,3605],{"type":47,"tag":3401,"props":3597,"children":3598},{},[3599],{"type":53,"value":3348},{"type":47,"tag":3401,"props":3601,"children":3602},{},[3603],{"type":53,"value":3604},"Unprocessable Entity",{"type":47,"tag":3401,"props":3606,"children":3607},{},[3608],{"type":53,"value":3609},"Schema validation failure — malformed UUID, wrong multipart field types, invalid enum values; invalid URL format for supported schemes",{"type":47,"tag":3374,"props":3611,"children":3612},{},[3613,3618,3623],{"type":47,"tag":3401,"props":3614,"children":3615},{},[3616],{"type":53,"value":3617},"429",{"type":47,"tag":3401,"props":3619,"children":3620},{},[3621],{"type":53,"value":3622},"Rate Limited",{"type":47,"tag":3401,"props":3624,"children":3625},{},[3626],{"type":53,"value":3627},"Request rate exceeded — retry with exponential backoff",{"type":47,"tag":3374,"props":3629,"children":3630},{},[3631,3636,3641],{"type":47,"tag":3401,"props":3632,"children":3633},{},[3634],{"type":53,"value":3635},"500",{"type":47,"tag":3401,"props":3637,"children":3638},{},[3639],{"type":53,"value":3640},"Internal Server Error",{"type":47,"tag":3401,"props":3642,"children":3643},{},[3644,3646],{"type":53,"value":3645},"Unexpected inference or I\u002FO failure — inspect ",{"type":47,"tag":103,"props":3647,"children":3649},{"className":3648},[],[3650],{"type":53,"value":3651},"docker compose -f rtvi-embed-docker-compose.yml logs -f rtvi-embed",{"type":47,"tag":3374,"props":3653,"children":3654},{},[3655,3660,3665],{"type":47,"tag":3401,"props":3656,"children":3657},{},[3658],{"type":53,"value":3659},"503",{"type":47,"tag":3401,"props":3661,"children":3662},{},[3663],{"type":53,"value":3664},"Service Unavailable",{"type":47,"tag":3401,"props":3666,"children":3667},{},[3668,3673],{"type":47,"tag":103,"props":3669,"children":3671},{"className":3670},[],[3672],{"type":53,"value":1471},{"type":53,"value":3674}," still warming up (model download \u002F Triton repo build); embedding endpoint busy with another file or text query; max live streams reached; CUDA OOM during inference",{"type":47,"tag":56,"props":3676,"children":3677},{},[3678,3690,3692,3697],{"type":47,"tag":95,"props":3679,"children":3680},{},[3681,3683,3688],{"type":53,"value":3682},"503 on ",{"type":47,"tag":103,"props":3684,"children":3686},{"className":3685},[],[3687],{"type":53,"value":1471},{"type":53,"value":3689}," during first boot is expected",{"type":53,"value":3691}," until Cosmos-Embed1 finishes downloading and the Triton model repo is built (up to ~20 minutes). Do not treat it as an application error until after the healthcheck ",{"type":47,"tag":103,"props":3693,"children":3695},{"className":3694},[],[3696],{"type":53,"value":1385},{"type":53,"value":3698}," elapses.",{"type":47,"tag":56,"props":3700,"children":3701},{},[3702,3707,3709,3715,3716,3722],{"type":47,"tag":95,"props":3703,"children":3704},{},[3705],{"type":53,"value":3706},"503 on embedding endpoints",{"type":53,"value":3708}," with message ",{"type":47,"tag":103,"props":3710,"children":3712},{"className":3711},[],[3713],{"type":53,"value":3714},"\"Server is busy processing another file or text\"",{"type":53,"value":595},{"type":47,"tag":103,"props":3717,"children":3719},{"className":3718},[],[3720],{"type":53,"value":3721},"\"Server is busy processing another file \u002F live-stream.\"",{"type":53,"value":3723}," means the service handles one synchronous embed job at a time — retry with backoff or shard work across instances.",{"type":47,"tag":56,"props":3725,"children":3726},{},[3727,3729,3737,3739,3747],{"type":53,"value":3728},"For endpoint-specific constraints (live-stream SSE requirements, URL schemes, response schemas), see ",{"type":47,"tag":618,"props":3730,"children":3731},{"href":2876},[3732],{"type":47,"tag":103,"props":3733,"children":3735},{"className":3734},[],[3736],{"type":53,"value":2876},{"type":53,"value":3738},". For Compose startup, cache, and permission failures, see ",{"type":47,"tag":618,"props":3740,"children":3741},{"href":630},[3742],{"type":47,"tag":103,"props":3743,"children":3745},{"className":3744},[],[3746],{"type":53,"value":630},{"type":53,"value":166},{"type":47,"tag":168,"props":3749,"children":3751},{"id":3750},"troubleshooting",[3752],{"type":53,"value":3753},"Troubleshooting",{"type":47,"tag":56,"props":3755,"children":3756},{},[3757,3759,3764],{"type":53,"value":3758},"For common failure patterns and resolutions, see ",{"type":47,"tag":103,"props":3760,"children":3762},{"className":3761},[],[3763],{"type":53,"value":630},{"type":53,"value":3765},". Frequent issues:",{"type":47,"tag":62,"props":3767,"children":3768},{},[3769,3793,3804,3824],{"type":47,"tag":66,"props":3770,"children":3771},{},[3772,3777,3779,3784,3786,3791],{"type":47,"tag":103,"props":3773,"children":3775},{"className":3774},[],[3776],{"type":53,"value":1471},{"type":53,"value":3778}," stuck at 503 → check for missing ",{"type":47,"tag":103,"props":3780,"children":3782},{"className":3781},[],[3783],{"type":53,"value":459},{"type":53,"value":3785},", Hugging Face 429 rate-limit failures during the first-boot model download (set ",{"type":47,"tag":103,"props":3787,"children":3789},{"className":3788},[],[3790],{"type":53,"value":467},{"type":53,"value":3792}," to avoid), or unreachable Redis\u002FKafka peers when those flags are enabled.",{"type":47,"tag":66,"props":3794,"children":3795},{},[3796,3798,3803],{"type":53,"value":3797},"Healthcheck flipping unhealthy in the first 20 minutes → restore ",{"type":47,"tag":103,"props":3799,"children":3801},{"className":3800},[],[3802],{"type":53,"value":1385},{"type":53,"value":166},{"type":47,"tag":66,"props":3805,"children":3806},{},[3807,3809,3815,3817,3823],{"type":53,"value":3808},"Permission errors on bind-mounted cache directories → ",{"type":47,"tag":103,"props":3810,"children":3812},{"className":3811},[],[3813],{"type":53,"value":3814},"sudo -n chown -R 1001:1001",{"type":53,"value":3816}," on the host paths; if passwordless sudo is unavailable, ask the host owner to run the printed command (do not use ",{"type":47,"tag":103,"props":3818,"children":3820},{"className":3819},[],[3821],{"type":53,"value":3822},"chmod 777",{"type":53,"value":257},{"type":47,"tag":66,"props":3825,"children":3826},{},[3827,3832,3834,3839,3841,3846],{"type":47,"tag":103,"props":3828,"children":3830},{"className":3829},[],[3831],{"type":53,"value":614},{"type":53,"value":3833}," prompts for a password during deploy → use ",{"type":47,"tag":103,"props":3835,"children":3837},{"className":3836},[],[3838],{"type":53,"value":659},{"type":53,"value":3840}," and fail fast; see ",{"type":47,"tag":103,"props":3842,"children":3844},{"className":3843},[],[3845],{"type":53,"value":630},{"type":53,"value":3847},"; never retry with interactive sudo in an agent session.",{"type":47,"tag":168,"props":3849,"children":3851},{"id":3850},"upgrade-and-rollback",[3852],{"type":53,"value":3853},"Upgrade And Rollback",{"type":47,"tag":56,"props":3855,"children":3856},{},[3857,3859,3864,3865,3870,3872,3878,3880,3885],{"type":53,"value":3858},"Pin ",{"type":47,"tag":103,"props":3860,"children":3862},{"className":3861},[],[3863],{"type":53,"value":255},{"type":53,"value":3430},{"type":47,"tag":103,"props":3866,"children":3868},{"className":3867},[],[3869],{"type":53,"value":278},{"type":53,"value":3871},", pull, recreate with ",{"type":47,"tag":103,"props":3873,"children":3875},{"className":3874},[],[3876],{"type":53,"value":3877},"--profile bp_developer_search_2d",{"type":53,"value":3879},", and wait for ",{"type":47,"tag":103,"props":3881,"children":3883},{"className":3882},[],[3884],{"type":53,"value":1471},{"type":53,"value":3886}," before cutover. Named volumes persist across image swaps.",{"type":47,"tag":56,"props":3888,"children":3889},{},[3890,3892,3898],{"type":53,"value":3891},"Full steps: ",{"type":47,"tag":618,"props":3893,"children":3895},{"href":3894},"references\u002Fdeploy-vss-deploy-video-embedding.md#upgrade--rollback",[3896],{"type":53,"value":3897},"Upgrade & Rollback",{"type":53,"value":166},{"type":47,"tag":168,"props":3900,"children":3902},{"id":3901},"tear-down",[3903],{"type":53,"value":3904},"Tear Down",{"type":47,"tag":56,"props":3906,"children":3907},{},[3908,3910,3916,3918,3924],{"type":53,"value":3909},"Stop the standalone stack with ",{"type":47,"tag":103,"props":3911,"children":3913},{"className":3912},[],[3914],{"type":53,"value":3915},"docker compose -f rtvi-embed-docker-compose.yml down",{"type":53,"value":3917},". Use ",{"type":47,"tag":103,"props":3919,"children":3921},{"className":3920},[],[3922],{"type":53,"value":3923},"down -v",{"type":53,"value":3925}," only when you intend to destroy named model caches.",{"type":47,"tag":56,"props":3927,"children":3928},{},[3929,3931,3936],{"type":53,"value":3930},"Full steps and cache warnings: ",{"type":47,"tag":618,"props":3932,"children":3934},{"href":3933},"references\u002Fdeploy-vss-deploy-video-embedding.md#tear-down",[3935],{"type":53,"value":3904},{"type":53,"value":166},{"type":47,"tag":168,"props":3938,"children":3940},{"id":3939},"references",[3941],{"type":53,"value":3942},"References",{"type":47,"tag":3366,"props":3944,"children":3945},{},[3946,3962],{"type":47,"tag":3370,"props":3947,"children":3948},{},[3949],{"type":47,"tag":3374,"props":3950,"children":3951},{},[3952,3957],{"type":47,"tag":3378,"props":3953,"children":3954},{},[3955],{"type":53,"value":3956},"File",{"type":47,"tag":3378,"props":3958,"children":3959},{},[3960],{"type":53,"value":3961},"When to read",{"type":47,"tag":3394,"props":3963,"children":3964},{},[3965,3981,3996,4011,4033,4048],{"type":47,"tag":3374,"props":3966,"children":3967},{},[3968,3976],{"type":47,"tag":3401,"props":3969,"children":3970},{},[3971],{"type":47,"tag":618,"props":3972,"children":3974},{"href":3973},"references\u002FREADME.md",[3975],{"type":53,"value":3973},{"type":47,"tag":3401,"props":3977,"children":3978},{},[3979],{"type":53,"value":3980},"Table of contents for all reference files.",{"type":47,"tag":3374,"props":3982,"children":3983},{},[3984,3991],{"type":47,"tag":3401,"props":3985,"children":3986},{},[3987],{"type":47,"tag":618,"props":3988,"children":3989},{"href":507},[3990],{"type":53,"value":507},{"type":47,"tag":3401,"props":3992,"children":3993},{},[3994],{"type":53,"value":3995},"Build Vision Agent deployment reference: image, GPU, storage, startup, prerequisites, known issues.",{"type":47,"tag":3374,"props":3997,"children":3998},{},[3999,4006],{"type":47,"tag":3401,"props":4000,"children":4001},{},[4002],{"type":47,"tag":618,"props":4003,"children":4004},{"href":3217},[4005],{"type":53,"value":3217},{"type":47,"tag":3401,"props":4007,"children":4008},{},[4009],{"type":53,"value":4010},"Build Vision Agent integration reference: peers, inputs\u002Foutputs, env vars, network, example Compose snippet.",{"type":47,"tag":3374,"props":4012,"children":4013},{},[4014,4021],{"type":47,"tag":3401,"props":4015,"children":4016},{},[4017],{"type":47,"tag":618,"props":4018,"children":4019},{"href":2876},[4020],{"type":53,"value":2876},{"type":47,"tag":3401,"props":4022,"children":4023},{},[4024,4026,4031],{"type":53,"value":4025},"Full REST endpoint catalog with worked ",{"type":47,"tag":103,"props":4027,"children":4029},{"className":4028},[],[4030],{"type":53,"value":1452},{"type":53,"value":4032}," examples for file uploads, video\u002Ftext embeddings, live streams, and health\u002Fmetrics.",{"type":47,"tag":3374,"props":4034,"children":4035},{},[4036,4043],{"type":47,"tag":3401,"props":4037,"children":4038},{},[4039],{"type":47,"tag":618,"props":4040,"children":4041},{"href":515},[4042],{"type":53,"value":515},{"type":47,"tag":3401,"props":4044,"children":4045},{},[4046],{"type":53,"value":4047},"Complete environment-variable matrix, including host-to-container renames and secret-sensitive variables.",{"type":47,"tag":3374,"props":4049,"children":4050},{},[4051,4058],{"type":47,"tag":3401,"props":4052,"children":4053},{},[4054],{"type":47,"tag":618,"props":4055,"children":4056},{"href":630},[4057],{"type":53,"value":630},{"type":47,"tag":3401,"props":4059,"children":4060},{},[4061],{"type":53,"value":4062},"Operational diagnostics for startup, model\u002Fcache, runtime, and observability issues.",{"type":47,"tag":4064,"props":4065,"children":4066},"style",{},[4067],{"type":53,"value":4068},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4070,"total":4227},[4071,4089,4105,4116,4128,4142,4155,4169,4182,4193,4207,4216],{"slug":4072,"name":4072,"fn":4073,"description":4074,"org":4075,"tags":4076,"stars":4086,"repoUrl":4087,"updatedAt":4088},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4077,4080,4083],{"name":4078,"slug":4079,"type":15},"Documentation","documentation",{"name":4081,"slug":4082,"type":15},"MCP","mcp",{"name":4084,"slug":4085,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":4090,"name":4090,"fn":4091,"description":4092,"org":4093,"tags":4094,"stars":4102,"repoUrl":4103,"updatedAt":4104},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4095,4098,4099],{"name":4096,"slug":4097,"type":15},"Containers","containers",{"name":13,"slug":14,"type":15},{"name":4100,"slug":4101,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":4106,"name":4106,"fn":4107,"description":4108,"org":4109,"tags":4110,"stars":4102,"repoUrl":4103,"updatedAt":4115},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4111,4114],{"name":4112,"slug":4113,"type":15},"CI\u002FCD","ci-cd",{"name":13,"slug":14,"type":15},"2026-07-14T05:25:59.97109",{"slug":4117,"name":4117,"fn":4118,"description":4119,"org":4120,"tags":4121,"stars":4102,"repoUrl":4103,"updatedAt":4127},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4122,4123,4124],{"name":4112,"slug":4113,"type":15},{"name":13,"slug":14,"type":15},{"name":4125,"slug":4126,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":4129,"name":4129,"fn":4130,"description":4131,"org":4132,"tags":4133,"stars":4102,"repoUrl":4103,"updatedAt":4141},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4134,4137,4138],{"name":4135,"slug":4136,"type":15},"Debugging","debugging",{"name":4125,"slug":4126,"type":15},{"name":4139,"slug":4140,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":4143,"name":4143,"fn":4144,"description":4145,"org":4146,"tags":4147,"stars":4102,"repoUrl":4103,"updatedAt":4154},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4148,4151],{"name":4149,"slug":4150,"type":15},"Best Practices","best-practices",{"name":4152,"slug":4153,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":4156,"name":4156,"fn":4157,"description":4158,"org":4159,"tags":4160,"stars":4102,"repoUrl":4103,"updatedAt":4168},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4161,4164,4167],{"name":4162,"slug":4163,"type":15},"Machine Learning","machine-learning",{"name":4165,"slug":4166,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":4170,"name":4170,"fn":4171,"description":4172,"org":4173,"tags":4174,"stars":4102,"repoUrl":4103,"updatedAt":4181},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4175,4178],{"name":4176,"slug":4177,"type":15},"QA","qa",{"name":4179,"slug":4180,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":4183,"name":4183,"fn":4184,"description":4185,"org":4186,"tags":4187,"stars":4102,"repoUrl":4103,"updatedAt":4192},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4188,4189],{"name":13,"slug":14,"type":15},{"name":4190,"slug":4191,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":4194,"name":4194,"fn":4195,"description":4196,"org":4197,"tags":4198,"stars":4102,"repoUrl":4103,"updatedAt":4206},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4199,4202,4203],{"name":4200,"slug":4201,"type":15},"Code Review","code-review",{"name":4125,"slug":4126,"type":15},{"name":4204,"slug":4205,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":4208,"name":4208,"fn":4209,"description":4210,"org":4211,"tags":4212,"stars":4102,"repoUrl":4103,"updatedAt":4215},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4213,4214],{"name":4176,"slug":4177,"type":15},{"name":4179,"slug":4180,"type":15},"2026-07-14T05:25:54.928983",{"slug":4217,"name":4217,"fn":4218,"description":4219,"org":4220,"tags":4221,"stars":4102,"repoUrl":4103,"updatedAt":4226},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4222,4225],{"name":4223,"slug":4224,"type":15},"Automation","automation",{"name":4112,"slug":4113,"type":15},"2026-07-30T05:29:03.275638",496,{"items":4229,"total":4321},[4230,4247,4257,4271,4281,4294,4307],{"slug":4231,"name":4231,"fn":4232,"description":4233,"org":4234,"tags":4235,"stars":26,"repoUrl":27,"updatedAt":4246},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4236,4239,4242,4243],{"name":4237,"slug":4238,"type":15},"Data Analysis","data-analysis",{"name":4240,"slug":4241,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":4244,"slug":4245,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":4248,"name":4248,"fn":4249,"description":4250,"org":4251,"tags":4252,"stars":26,"repoUrl":27,"updatedAt":4256},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4253,4254,4255],{"name":13,"slug":14,"type":15},{"name":4190,"slug":4191,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":4258,"name":4258,"fn":4259,"description":4260,"org":4261,"tags":4262,"stars":26,"repoUrl":27,"updatedAt":4270},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4263,4266,4267],{"name":4264,"slug":4265,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":4268,"slug":4269,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":4272,"name":4272,"fn":4273,"description":4274,"org":4275,"tags":4276,"stars":26,"repoUrl":27,"updatedAt":4280},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4277,4278,4279],{"name":4237,"slug":4238,"type":15},{"name":9,"slug":8,"type":15},{"name":4179,"slug":4180,"type":15},"2026-07-17T05:29:03.913266",{"slug":4282,"name":4282,"fn":4283,"description":4284,"org":4285,"tags":4286,"stars":26,"repoUrl":27,"updatedAt":4293},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4287,4288,4291,4292],{"name":4223,"slug":4224,"type":15},{"name":4289,"slug":4290,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":24,"slug":25,"type":15},"2026-07-17T05:28:53.905004",{"slug":4295,"name":4295,"fn":4296,"description":4297,"org":4298,"tags":4299,"stars":26,"repoUrl":27,"updatedAt":4306},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4300,4301,4302,4303],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":4304,"slug":4305,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":4308,"name":4308,"fn":4309,"description":4310,"org":4311,"tags":4312,"stars":26,"repoUrl":27,"updatedAt":4320},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4313,4314,4317],{"name":9,"slug":8,"type":15},{"name":4315,"slug":4316,"type":15},"Quantum Computing","quantum-computing",{"name":4318,"slug":4319,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305]