用途:部署并调用多模态嵌入微服务,为文本、图像、视频生成嵌入向量,用于图像相似度检索、文本搜图、重复图像检测等场景。
主要能力:支持 CLIP/SigLIP/MobileCLIP/CN-CLIP/Blip2/QwenText 等模型切换;REST 基地址为 http://localhost:9777(容器内 8000,主机端口由 setup.sh 固定);文本返回单个向量,图像返回单个向量,视频返回逐帧向量列表;提供 /health、/model/capabilities、/model/current、/embeddings 等接口。
使用方式:在仓库 microservices/multimodal-embedding-serving/ 目录下,或从 GitHub raw 获取 setup.sh 与 docker/compose.yaml 后,导出 EMBEDDING_MODEL_NAME(默认 CLIP/clip-vit-b-32,512 维),可选 REGISTRY_URL=intel、TAG=latest,然后 source setup.sh 并执行 docker compose -f docker/compose.yaml up -d --no-build;用 until curl -sf http://localhost:9777/health; do sleep 5; done 等待就绪。Intel GPU 需额外导出 EMBEDDING_DEVICE=GPU。非文本输入前必须先查 /model/capabilities。请求中 model 必须与已加载模型一致,否则返回 400。停止用 docker compose -f docker/compose.yaml down。
限制:QwenText 仅支持文本,图像/视频请求返回 400;MobileCLIP/Blip2 附加组件仅存在于 Docker 镜像,wheel 不在 PyPI;首次非文本请求因 OpenVINO 转换编译会较慢;setup.sh 未导出 EMBEDDING_MODEL_NAME 会直接报错;端口 9777 被占用需先停止冲突服务。