Files
vllm-omni/vllm_omni/experimental/fullduplex
05b794f29b [Full Duplex] Feat: Support Full-Duplex realtime runtime & add MiniCPM-o 4.5 demo (#3907)
Signed-off-by: Sy03 <1370724210@qq.com>
Signed-off-by: lishunyang12 <lishunyang03@gmail.com>
Signed-off-by: Yueqian Lin <linyueqian@outlook.com>
Co-authored-by: lishunyang12 <lishunyang03@gmail.com>
Co-authored-by: Yueqian Lin <linyueqian@outlook.com>
Co-authored-by: StormMelody <22371184@zju.edu.cn>
Co-authored-by: Gao Han <hgaoaf@connect.ust.hk>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
2026-07-23 16:45:18 +08:00
..

Experimental Full-Duplex Runtime

This package contains two experimental integrations:

  • the existing JoyVL framework and example integration;
  • the MiniCPM-o 4.5 native audio path used by /v1/duplex and /v1/realtime?duplex=1.

For the MiniCPM active runtime path, lifecycle invariants, capability boundary, Realtime response contract, and validation scope, see DESIGN.md.

To run JoyVL, see recipes/JD/JoyAI-VL-Interaction.md.

Package boundaries

core/       existing JoyVL framework and experimental compatibility exports
engine/     AsyncOmni/orchestrator scheduler data-plane adapter
openai/     WebSocket transport, Realtime projection, and audio codecs
minicpmo45/ MiniCPM input framing, policy, compatibility, and Stage0 state
joyvl/      JoyVL model-specific integration

MiniCPM does not run through the removed experimental core.DuplexRuntime facade. Its active path uses the openai session controller, the experimental engine contracts, the standard scheduler/model runners, and an injected MiniCPM-specific runtime extension from minicpmo45/runtime.py.