☰
如何用LiveKit部署JoyAI-VL-Interaction避免暴露十几个服务端口?完整配置指南
2026/10/9 19:26:34 网站建设 项目流程

如何用LiveKit部署JoyAI-VL-Interaction避免暴露十几个服务端口?完整配置指南

【免费下载链接】JoyAI-VL-InteractionJoyAI-VL-Interaction: An Open Real-time Video-Language Interaction System项目地址: https://gitcode.com/gh_mirrors/jo/JoyAI-VL-Interaction

JoyAI-VL-Interaction 是一个开源的实时视频语言交互系统,默认需要启动 webinfer、webui、ASR、TTS、background-agent 等多个服务并开放 8070、8099、8992、8994 等十几个端口。对于需要在内网之外提供服务、或者不想逐端口配置防火墙的场景,切换到LiveKit 部署可以显著减少对外暴露的端口数量。本文是一份面向新手的完整配置指南,带你快速完成 JoyAI-VL-Interaction 的 LiveKit 部署并验证服务。


为什么需要 LiveKit 部署方案?

默认架构:端口多、暴露面大

JoyAI-VL-Interaction 采用 hub-and-spoke 拓扑,围绕浏览器前端 webui 组织五个可插拔服务。默认部署下,各服务监听的端口如下:

端口服务协议
8070webinfer(适配器)HTTP
7060webinfer(主 VLM vLLM)HTTP(内部)
8065webinfer(摘要 VLM vLLM)HTTP(内部)
8099webuiHTTPS + WebSocket
8994asr(适配器)HTTP + WebSocket
8993asr(vLLM ASR)HTTP(内部)
8992tts(适配器)HTTP + WebSocket
8991tts(vLLM-Omni)HTTP + WebSocket(内部)
8079background-agentHTTP

可以看到,如果要把整套系统开放给局域网外的用户,就需要逐个开放或映射这些端口,既繁琐又有安全风险。完整端口映射说明可参考官方架构文档:doc/architecture.zh-CN.md。

LiveKit 思路:把媒体流收敛到单一信令通道

LiveKit 是一个开源的实时音视频基础设施。JoyAI-VL-Interaction 项目从2026-07-21起官方支持 LiveKit 部署(见 README 最新动态),其核心收益就是:避免对外开放大量服务端口——视频、音频等媒体流通过 LiveKit 的 WebRTC 通道传输,浏览器只需连接 LiveKit 的单一入口,其余模型服务端口可以完全保留在内网。

官方提示:LiveKit 功能位于独立的livekit分支,该分支可能不会长期维护,生产使用前请评估。


LiveKit 部署完整配置步骤

第一步:克隆仓库并切换到 livekit 分支

git clone https://gitcode.com/gh_mirrors/jo/JoyAI-VL-Interaction cd JoyAI-VL-Interaction git switch livekit

注意使用git switch livekit(等价于git checkout livekit)切换到 LiveKit 部署分支,而不是主分支。

第二步:安装依赖与下载模型

LiveKit 分支依赖主分支的安装体系,前置条件为 Linux + NVIDIA GPU(CUDA 12.x、驱动 535+、Python 3.12)。在仓库根目录执行:

# 安装核心依赖(webinfer + webui) ./install/install.sh --with-all # 安装 ASR/TTS 运行时(可选,启用语音输入输出) ./install/install-audio-runtime.sh --all # 下载所有模型权重 ./install/download-models.sh --all

默认模型路径参考 install 目录说明:主交互模型位于/tmp/models/jdopensource/JoyAI-VL-Interaction,摘要模型为/tmp/models/Qwen3-VL-4B-Instruct,另有可选的 ASR / TTS 模型。

第三步:启动服务并验证

# 最小部署:仅视频推理 + WebUI ./services/scripts/run.sh minimal # 完整部署:包含 ASR、TTS、background-agent ./services/scripts/run.sh all

服务编排入口位于 services/scripts/run.sh,只有最终的 WebUI 进程启动后,才认为启动完成。随后做健康检查:

curl http://127.0.0.1:8070/health # webinfer curl http://127.0.0.1:8994/health # ASR(可选) curl http://127.0.0.1:8992/health # TTS(可选) curl http://127.0.0.1:8079/health # background-agent(可选)

浏览器访问https://127.0.0.1:8099(接受自签名证书警告),即可看到实时交互界面。更多端口、GPU 分配与配置项说明详见完整部署指南。

第四步:只对外暴露 LiveKit 入口

LiveKit 部署模式下,对外只需保证 LiveKit Server 的信令端口可达(WebRTC 媒体通过 UDP 打洞/转发),而 8070、7060、8065、8991–8994、8079 等模型与适配器端口全部保留在宿主机内网,无需在防火墙中逐一开放。

💡 如果不想接触裸端口,也可以直接使用仓库自带的 Docker Compose 方案(container/README.zh-CN.md)在单机上先跑通全部服务,再按 LiveKit 分支说明做外部接入。


常见问题与排坑建议

现象排查方向
webinfer 返回 502vLLM 后端(7060/8065)尚未就绪,等待模型加载完成
模型从不说话FORCE_SILENCE_BEFORE_QUERY=true会在无用户提问时静默,发送一个 prompt 或改为false
浏览器无法访问摄像头WebRTC 需要 HTTPS,请通过https://访问并信任自签名证书
ASR/TTS 连不上可选服务必须在 WebUI之前启动,启动后重启 WebUI

完整的启动与运行问题清单请参阅故障排查指南。


总结:3 个要点

  1. 一条命令切换:git switch livekit即可启用 LiveKit 部署模式,避免对外开放十几个服务端口。
  2. 端口收敛:媒体流走 LiveKit 单一 WebRTC 入口,模型服务端口全部保留内网,防火墙规则大幅简化。
  3. 分支需留意:LiveKit 功能位于独立分支且可能不长期维护,重要环境建议做好备份与版本锁定。

📌 参考资料

  • 完整部署指南:doc/getting_started.zh-CN.md
  • 系统架构与端口映射:doc/architecture.zh-CN.md
  • 故障排查:doc/troubleshooting.zh-CN.md
  • Docker 部署:container/README.zh-CN.md

【免费下载链接】JoyAI-VL-InteractionJoyAI-VL-Interaction: An Open Real-time Video-Language Interaction System项目地址: https://gitcode.com/gh_mirrors/jo/JoyAI-VL-Interaction

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询