Loading...
Loading...
Compare original and translation side by side
references/scripts/run_scriptreferences/scripts/run_scriptevals/*.jsoncurlnv-base validate <this-skill-dir> --agent-evalcurlevals/*.jsoncurlnv-base validate <this-skill-dir> --agent-evalcurlvss-deploy-dense-captioningvss-generate-video-reportvss-search-archivevss-deploy-dense-captioningvss-generate-video-reportvss-search-archivelvs$HOST_IPvss-deploy-profilejqcurllvs$HOST_IPvss-deploy-profilejqcurllocalhostlocalhost| Symptom | Cause | Fix |
|---|---|---|
| LVS service still warming up | Retry up to ~30 s as shown in Setup; if it never returns 200 the service may not be deployed |
Empty | Clip does not contain the requested events | Re-run with broader |
VLM returns | Cosmos Reason 2 reasoning mode | Strip everything up to |
Empty stdout from | Service legitimately returns 200 with empty body | Always check HTTP status with |
references/video-summarization-debugging.md| 症状 | 原因 | 解决方法 |
|---|---|---|
| LVS服务仍在预热中 | 按照设置部分的说明重试约30秒;如果始终无法返回200,可能服务未部署 |
| 视频片段中不包含请求的事件 | 使用更宽泛的 |
VLM返回 | Cosmos Reason 2推理模式 | 在输出前移除 |
| 服务合法返回200但响应体为空 | 始终使用 |
references/video-summarization-debugging.mdreferences/video-summarization-api.md/v1/summarize/summarize/v1/generate_captions/v1/stream_summarize/models/recommended_config/metricsreferences/video-summarization-deployment.mdlvsreferences/video-summarization-environment-variables.mdreferences/video-summarization-debugging.mdassets/video-summarization.env.examplevideo-summarization-api.mdvideo-summarization-deployment.mdreferences/video-summarization-api.md/v1/summarize/summarize/v1/generate_captions/v1/stream_summarize/models/recommended_config/metricsreferences/video-summarization-deployment.mdlvsreferences/video-summarization-environment-variables.mdreferences/video-summarization-debugging.mdassets/video-summarization.env.examplevideo-summarization-api.mdvideo-summarization-deployment.mdreferences/video-summarization-api.md/v1/summarizevss-deploy-profilereferences/video-summarization-deployment.mdreferences/video-summarization-api.md/v1/summarizevss-deploy-profilereferences/video-summarization-deployment.md | Backend | Endpoint |
|---|---|---|
| HTTP 200 | LVS microservice with HITL | |
| Anything else | VLM / RT-VLM with the default prompt + fallback note | |
⚠ Note: Input videois<name>s long. The video summarization service is not deployed, so this summary was produced by the VLM alone with a generic default prompt. Deploy the<N>profile for higher-quality summaries with scenario/events targeting.lvs
| 后端 | 端点 |
|---|---|---|
| HTTP 200 | 带HITL的LVS微服务 | |
| 其他响应 | 带默认提示词的VLM / RT-VLM + 备选说明 | |
⚠ 注意: 输入视频时长为<name>秒。 视频总结服务未部署,因此本总结仅由VLM通过通用默认提示词生成。部署<N>配置文件可获得更高质量的总结,支持场景/事件定向。lvs
$HOST_IP/v1/ready"The VSSprofile isn't running onlvs. Shall I deploy it now using the$HOST_IPskill with/vss-deploy-profile? Reply-p lvsto summarize with the VLM-only fallback instead (lower quality, no scenario/events targeting)."no
/vss-deploy-profile/vss-deploy-profile$HOST_IP/v1/ready"VSS的配置文件未在lvs上运行。是否现在使用$HOST_IP技能并加上/vss-deploy-profile参数进行部署?回复-p lvs将仅使用VLM备选方案进行总结(质量较低,不支持场景/事件定向)。"no
/vss-deploy-profile/vss-deploy-profilelvs${VLM_BASE_URL}${RTVI_VLM_BASE_URL:-http://${HOST_IP:-localhost}:8018}${LVS_BACKEND_URL}http://${HOST_IP:-localhost}:38111vss-manage-video-io-storage/v1${VLM_NAME}nim_nvidia_cosmos-reason2-8b_0303-fp8-dynamic-kv8/v1/modelsnvidia/cosmos-reason2-8breferences/video-summarization-api.md/v1/ready200VLM="${VLM_BASE_URL:-${RTVI_VLM_BASE_URL:-http://${HOST_IP:-localhost}:8018}}"
VLM="${VLM%/v1}"lvs${VLM_BASE_URL}${RTVI_VLM_BASE_URL:-http://${HOST_IP:-localhost}:8018}${LVS_BACKEND_URL}http://${HOST_IP:-localhost}:38111vss-manage-video-io-storage/v1${VLM_NAME}nim_nvidia_cosmos-reason2-8b_0303-fp8-dynamic-kv8/v1/modelsnvidia/cosmos-reason2-8breferences/video-summarization-api.md/v1/ready200VLM="${VLM_BASE_URL:-${RTVI_VLM_BASE_URL:-http://${HOST_IP:-localhost}:8018}}"
VLM="${VLM%/v1}"
**How to interpret the results:**
- `video_sum_code = 200` → **Step 2 (LVS + HITL)** for every video.
- `video_sum_code != 200`, `vlm_code = 200` → **Step 2 fallback (VLM)**; prepend the Routing fallback note.
- `vlm_code != 200` → fail; at least one backend must be reachable.
- A non-200 LVS code after the retry loop is the ONLY signal of unavailability. Empty stdout or missing JSON fields are NOT "unavailable."
---
**结果解读:**
- `video_sum_code = 200` → 所有视频均执行**步骤2(LVS + HITL)**。
- `video_sum_code != 200`且`vlm_code = 200` → 执行**步骤2备选方案(VLM)**;在开头添加路由备选提示信息。
- `vlm_code != 200` → 执行失败;至少需要一个后端可达。
- 重试循环后LVS返回非200状态码是唯一表示不可用的信号。空标准输出或缺失JSON字段不代表"不可用"。
---vss-manage-video-io-storagevss-manage-video-io-storagevss-manage-video-io-storagestreamIdsensor/listsensor/<id>/streams{startTime, endTime}endTime - startTime/v1/ready/storage/file/<streamId>/urlcontainer=mp4.videoUrlGETdisableAudiovss-manage-video-io-storagevss-manage-video-io-storagestreamIdsensor/listsensor/<id>/streams{startTime, endTime}endTime - startTime/v1/ready/storage/file/<streamId>/urlcontainer=mp4.videoUrlGETdisableAudiovss-manage-video-io-storage/v1/readymedia_infoschemareferences/video-summarization-api.md/v1/readymedia_infoschemareferences/video-summarization-api.mdreferences/hitl-prompts.mddefaultdefaultsscenario="activity monitoring"events=["notable activity"]POST /v1/summarize/summarizeVIDEO_SUMMARIZATION_URL=${LVS_BACKEND_URL:-http://${HOST_IP:-localhost}:38111}references/hitl-prompts.mddefaultdefaultsscenario="activity monitoring"events=["notable activity"]POST /v1/summarize/summarizeVIDEO_SUMMARIZATION_URL=${LVS_BACKEND_URL:-http://${HOST_IP:-localhost}:38111}
If both `video_summary` and `events` are empty, the clip probably doesn't contain the requested events — re-run with broader `scenario`/`events`, don't report "no content".
**Tuning:** `chunk_duration` (default `10`s; `0` = single chunk),
`num_frames_per_second_or_fixed_frames_chunk` (default `20`; meaning depends
on `use_fps_for_chunking`), `seed` (default `1`). `num_frames_per_chunk` is
deprecated.
---
如果`video_summary`和`events`均为空,可能视频片段中不包含请求的事件——使用更宽泛的`scenario`/`events`重新运行,不要报告"无内容"。
**调优参数:** `chunk_duration`(默认值为10秒;`0`表示单个分块)、`num_frames_per_second_or_fixed_frames_chunk`(默认值为20;含义取决于`use_fps_for_chunking`)、`seed`(默认值为1)。`num_frames_per_chunk`已废弃。
---/v1/readyVLM="${VLM_BASE_URL:-${RTVI_VLM_BASE_URL:-http://${HOST_IP:-localhost}:8018}}"
VLM="${VLM%/v1}"
PROMPT='Describe in detail what is happening in this video,
including all visible people, vehicles, equipments, objects,
actions, and environmental conditions.
OUTPUT REQUIREMENTS:
[timestamp-timestamp] Description of what is happening.
EXAMPLE:
[0.0s-4.0s] <description of the first event>
[4.0s-12.0s] <description of the second event>'
curl -s -X POST "$VLM/v1/chat/completions" \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg model "${VLM_NAME:-nim_nvidia_cosmos-reason2-8b_0303-fp8-dynamic-kv8}" \
--arg text "$PROMPT" \
--arg url "<clip_url_from_vss_manage_video_io_storage>" \
'{
model: $model,
temperature: 0.0,
max_tokens: 1024,
messages: [{
role: "user",
content: [
{type: "text", text: $text},
{type: "video_url", video_url: {url: $url}}
]
}]
}')" | jq -r '.choices[0].message.content'choices[0].message.content<think>...</think><answer>...</answer>video_url/v1/readyVLM="${VLM_BASE_URL:-${RTVI_VLM_BASE_URL:-http://${HOST_IP:-localhost}:8018}}"
VLM="${VLM%/v1}"
PROMPT='Describe in detail what is happening in this video,
including all visible people, vehicles, equipments, objects,
actions, and environmental conditions.
OUTPUT REQUIREMENTS:
[timestamp-timestamp] Description of what is happening.
EXAMPLE:
[0.0s-4.0s] <description of the first event>
[4.0s-12.0s] <description of the second event>'
curl -s -X POST "$VLM/v1/chat/completions" \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg model "${VLM_NAME:-nim_nvidia_cosmos-reason2-8b_0303-fp8-dynamic-kv8}" \
--arg text "$PROMPT" \
--arg url "<clip_url_from_vss_manage_video_io_storage>" \
'{
model: $model,
temperature: 0.0,
max_tokens: 1024,
messages: [{
role: "user",
content: [
{type: "text", text: $text},
{type: "video_url", video_url: {url: $url}}
]
}]
}')" | jq -r '.choices[0].message.content'choices[0].message.content<think>...</think><answer>...</answer>video_urlreferences/end-to-end-example.md/v1/ready/v1/readyreferences/end-to-end-example.mdchoices[0].message.contentcontentjq -r '.choices[0].message.content' | jq{video_summary, events}{error: ...}503/v1/readychoices[0].message.contentcontentjq -r '.choices[0].message.content' | jq{video_summary, events}{error: ...}/v1/readySummary of <video_name> (<duration>)<duration>Ns< 60 sMm Ss3m 30svideo_summaryeventsstart_timeend_timetypedescriptionchoices[0].message.content<think>…</think><answer>…</answer><think>Summary of <video_name> (<duration>)<duration>NsMm Ss3m 30svideo_summaryeventsstart_timeend_timetypedescriptionchoices[0].message.content<think>…</think><answer>…</answer><think>/v1/readydefaults/v1/readycurl -s -o /dev/null -w '%{http_code}'jqgrepheadvss-manage-video-io-storagejqcontent/v1/summarize/summarizenim_nvidia_cosmos-reason2-8b_0303-fp8-dynamic-kv8video_summarychoices[0].message.content/v1/ready/v1/readycurl -s -o /dev/null -w '%{http_code}'jqgrepheadvss-manage-video-io-storagejqcontent/v1/summarize/summarizenim_nvidia_cosmos-reason2-8b_0303-fp8-dynamic-kv8video_summarychoices[0].message.contentbaselvsreferences/video-summarization-api.mdreferences/video-summarization-deployment.mdbaselvsreferences/video-summarization-api.mdreferences/video-summarization-deployment.md