关于 vss-deploy
用于通过 setup.sh 部署、切换、检查和移除 Video Search & Summarization(VSS)的技能,面向该应用的部署与运维人员。它按摘要、搜索、双界面或统一模式配置 Docker Compose,并支持 OVMS、vLLM 及 CPU/GPU 选项。
主要功能
- 01部署并切换 VSS 运行模式
- 02支持摘要、搜索和组合界面
- 03配置 OVMS 或 vLLM 后端
- 04检查健康状态并输出访问地址
- 05停止服务或清理数据卷
适用场景
- 01启动 VSS 视频摘要界面
- 02部署视频搜索或统一模式
- 03切换 OVMS 与 vLLM 后端
- 04停止 VSS 或清理应用数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ open-edge-platform/ edge-ai-libraries --skill vss-deploy安装后在 Claude Code 中输入/vss-deploy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
vss.config.envbenchmark/benchmark.mdevals/evals.jsontrigger-evals.jsonexample-prompts/01-summary-mode-deploy.md02-dual-ui-config-dry-run.md03-switch-summary-to-search-mode.md04-full-teardown-clean-data.md05-unified-custom-port-setenv.md06-bootstrap-fresh-machine.mdREADME.mdreferences/env-vars.mdmodes-and-overlays.mdscripts/gen-secrets.shvss-bootstrap.shwait-health.sh详细介绍
VSS 部署
使用 setup.sh 部署、切换、检查和拆除 VSS。此技能仅适用于
sample-applications/video-search-and-summarization。所有回答都必须以仓库文件为依据,尤其是 setup.sh 和 docker/compose.*.yaml;不要臆造标志、服务、端口或变量。**请亲自运行命令并转述输出;**不要把部署命令交给用户(唯一例外是 --setenv,见下文)。
环境设置(首先运行)
此技能通过 Video Search & Summarization 应用的实际源文件来运行应用,因此必须有 VSS 应用,并且必须从其应用根目录运行命令。请先完成此步骤,再做其他任何操作;无论工作区中是否已有 VSS 源代码,此步骤都适用。
运行随附的引导脚本。它会先尝试查找现有的 VSS 检出版本——从当前目录向上遍历并检查外层 git 仓库——找到后便会复用,绝不会重新克隆。只有在找不到检出版本时,它才会从 main 对 sample-applications/video-search-and-summarization 执行浅层、单分支的稀疏检出。它会在标准输出中打印解析出的应用根目录:
# SKILL_DIR is THIS skill's own directory (shown to you when the skill loads);
# in-repo it is .github/skills/vss-deploy. Works the same if the skill is installed standalone.
SKILL_DIR=".github/skills/vss-deploy"
APP_ROOT="$(bash "$SKILL_DIR/scripts/vss-bootstrap.sh")"
cd "$APP_ROOT"
以下每条命令都假定工作目录为此 APP_ROOT。如需从 fork 或分支拉取代码,或复用指定的检出目录,请在运行前覆盖 VSS_REPO_URL、VSS_REPO_BRANCH 或 VSS_CLONE_DIR。
模式路由
| 用户说 | 模式标志 | UI URL |
|---|---|---|
| “summary” / “summarize videos” / “summary only” | --summary | http://<host-ip>:12345/ |
| “search” / “search my videos” / “search only” | --search | http://<host-ip>:12345/ |
| “both” / “dual” / “side by side” / “two UIs” | --summary --search(别名 --dual) | …/summary/ 和 …/search/ |
| “unified” / “one UI” / “search over summaries” / “all” | --summary-and-search(别名 --unified、--all) | http://<host-ip>:12345/ |
如果用户表达不明确,请询问要使用哪种模式;不要默认选择。
快速部署流程
-
在应用根目录中操作:
cd sample-applications/video-search-and-summarization -
提供配置和凭据。
setup.sh从 shell 环境读取所有内容,并在缺少首个必需变量时中止。仓库现在提供了.env.example,作为通用应用模板,但此技能将配置与生成的密钥分开保存,以免凭据进入已提交的文件:- 非敏感配置——模型、端口、调优参数——保存在已提交的
vss.config.env中。 - 凭据在运行时由
scripts/gen-secrets.sh生成到被 git 忽略的vss.secrets.env中(使用强随机值,生成一次并重复使用,以确保数据卷保持有效)。
生成一次密钥,然后在同一个 shell 中加载这两个文件:
./.github/skills/vss-deploy/scripts/gen-secrets.sh # makes vss.secrets.env if absent source .github/skills/vss-deploy/vss.config.env source .github/skills/vss-deploy/vss.secrets.env所有模式都需要:
MINIO_ROOT_USER、MINIO_ROOT_PASSWORD、POSTGRES_USER、POSTGRES_PASSWORD、RABBITMQ_USER、RABBITMQ_PASSWORD。各模式专用的模型变量(summary 使用VLM_MODEL_NAME、ENABLED_WHISPER_MODELS、OD_MODEL_NAME;search/dual 使用MULTIMODAL_EMBEDDING_MODEL;unified 使用TEXT_EMBEDDING_MODEL)都已在vss.config.env中设置默认值——完整列表请参阅references/env-vars.md。如需注入自己的凭据(vault/CI)而非使用随机值,请在运行gen-secrets.sh前导出这些凭据——脚本会重复使用已设置的凭据。 - 非敏感配置——模型、端口、调优参数——保存在已提交的
-
不确定时先试运行——追加
config以渲染解析后的.env/compose,而不启动容器,然后在实际部署前检查:source setup.sh --summary config # or --search / --summary --search / --summary-and-search -
部署——由你亲自运行。 必须以 source 方式执行
setup.sh(它会使用return,并在构建 Compose 命令时导出环境变量),但不需要使用用户的交互式 shell:部署使用docker compose up -d(后台运行),因此子 shell 退出后容器仍会继续运行。先停止任何之前运行的堆栈,以免过期或模式错误的部署发生冲突,然后部署——在一次bash -c调用中运行完整命令链:bash -c ' source setup.sh --stop # clear any running stack first ./.github/skills/vss-deploy/scripts/gen-secrets.sh # secrets if absent source .github/skills/vss-deploy/vss.config.env source .github/skills/vss-deploy/vss.secrets.env source setup.sh --summary # the chosen mode '在后台运行此命令(
run_in_background: true),或使用较长的超时时间。Compose 启动前,如果选定的 OD 工件或 OVMS VLM/拆分 LLM 工件缺失,setup.sh会在 loopback 端口8640上启动一个临时的vss-model-download容器。它会提交 REST 作业,每个作业最多等待MODEL_DOWNLOAD_JOB_TIMEOUT秒(默认值为5400秒),将失败服务的日志写入ov_models/model-download-*.log,移除临时容器,然后才运行docker compose up -d。唯一例外:
--setenv仅用于将环境变量留在用户的交互式 shell 中,以供之后手动使用——子 shell 无法做到这一点,因此仅对此动词,请向用户提供带!前缀的命令,让他们亲自运行。 -
等待健康检查通过,然后打印 URL(请参阅
scripts/wait-health.sh):./.github/skills/vss-deploy/scripts/wait-health.sh "${HOST_IP:-localhost}" "${APP_HOST_PORT:-12345}"
模式别名和仅配置检查
setup.sh 会将 --summary --search 和 --search --summary 规范化为 --dual;将 --summary-and-search、--search-and-summary 和 --all 规范化为 --unified;将 config 规范化为 --dual config;将 config --summary 规范化为 --summary config;并将 --down 规范化为 --stop。使用 config 模式可验证解析后的 Compose 配置,而不启动容器:
source setup.sh --summary config
source setup.sh --search config
source setup.sh --summary --search config
source setup.sh --summary-and-search config
选择 OVMS、vLLM、CPU 或 GPU
默认摘要后端是 docker/compose.summary.yaml 中的 OVMS(ovms-service,配置文件 ovms)。
source setup.sh --summary # OVMS CPU default
VLM_TARGET_DEVICE=GPU source setup.sh --summary # OVMS GPU for VLM
LLM_TARGET_DEVICE=GPU OVMS_LLM_MODEL_NAME=<llm> source setup.sh --summary # OVMS GPU for LLM
ENABLE_VLLM=true source setup.sh --summary # vLLM CPU backend
ENABLE_VLLM_GPU=true source setup.sh --summary # experimental vLLM XPU/GPU backend
ENABLE_EMBEDDING_GPU=true source setup.sh --search # GPU for search embeddings
对于 vLLM,setup.sh 会添加 docker/compose.vllm.yaml,在主机端口 8200 上启动 vllm-cpu-service(配置文件 vllm),并将 VLM_MODEL_NAME 用于生成标题和最终摘要。实验性选项 ENABLE_VLLM_GPU=true 则会添加 docker/compose.vllm.xpu.yaml,选择配置文件 vllm-xpu,并禁用 OVMS。对于 OVMS GPU,setup.sh 会添加 docker/compose.gpu_ovms.yaml,并将 ovms-service 切换为 openvino/model_server:2026.1-gpu。
该技能的全新 bash -c 部署流程可防止派生的 OVMS 存储名称在不同运行之间泄漏。如果在同一个交互式 shell 中手动从 OVMS 切换到 vLLM,请先运行
unset VLM_STORAGE_MODEL_NAME LLM_STORAGE_MODEL_NAME;否则,Compose 可能会复用 vLLM 无法提供服务的 OVMS 存储别名。
生命周期:停止或重置
请自行通过 bash -c 'source setup.sh …' 运行这些命令。--stop/--down/
--clean-data 与模式无关,无需设置环境变量。
source setup.sh --stop # stop/remove containers across all VSS overlays/profiles
source setup.sh --down # alias for --stop
source setup.sh --clean-data # also removes the VSS application data volumes
source setup.sh --help # full help
--clean-data 会删除 docker_minio_data、docker_pg_data、docker_vdms-db、
docker_audio_analyzer_data、docker_data-prep 和 docker_collector_signals。
它不会删除由主机提供的 ov_models/ 模型缓存。
默认端口和 URL
setup.sh 会自动检测 HOST_IP;APP_HOST_PORT 默认为 12345。
| 界面 | URL |
|---|---|
| UI(摘要 / 搜索 / 统一) | http://<HOST_IP>:<APP_HOST_PORT>/ |
| UI(双模式) | …/summary/ 和 …/search/ |
| Pipeline Manager API 和文档 | …/manager/docs,健康检查 …/manager/health |
| Data Prep 文档(搜索模式) | http://<HOST_IP>:7890/docs |
| Embedding 服务文档(搜索模式) | http://<HOST_IP>:9777/docs |
故障排查(“为什么 vss 无法启动”)
ERROR: <VAR> is not set→ 缺少 shell 环境变量;重新载入vss.config.envvss.secrets.env(步骤 2)。
Invalid VECTORDB_BACKEND→ 将VECTORDB_BACKEND设置为vdms或milvus。- 健康状态始终未变为绿色 → 运行
docker compose ps查看崩溃的容器,然后运行docker compose logs <service>。占用资源较多的是模型服务(ovms、vlm-ov/vllm、embedding)。 - 已有错误或不完整的堆栈正在运行 → 执行
source setup.sh --stop,然后重新部署。 - Compose 启动前设置失败 → 检查报告的
ov_models/model-download-*.log;如果回环端口8640已被占用,请将MODEL_DOWNLOAD_HOST_PORT设置为空闲端口,然后重新运行。
如果遇到超出上述基础问题的情况——模型服务崩溃、OVMS token/缓存/GPU
错误、主机模型缓存或模型下载权限失败、搜索无结果、
NPU/OpenGL 问题——请转交给 .github/skills/vss-troubleshoot/SKILL.md 中的 vss-troubleshoot 技能,
并参阅权威指南 docs/user-guide/troubleshooting.md。
参考资料
- 模式到 overlay/配置文件/服务/URL 的精确映射:
references/modes-and-overlays.md。 - 必需和可选的环境变量:
references/env-vars.md。