Skip to main content

duplexjev-vllm

vLLM plugin for DuplexJev speech-decision models, such as adventists-ai/DuplexJev-4B.

pip install "vllm[audio]>=0.29" duplexjev-vllm
vllm serve adventists-ai/DuplexJev-4B --max-model-len 4096

The plugin registers the architectures DuplexJevForConditionalGeneration (Qwen-based DuplexJev-32B / 4B) and, since 0.2.0, DuplexJevGemmaForConditionalGeneration (DuplexJev-Gemma-31B: audio embeddings scaled ×3 and wrapped in Gemma's <|audio> … <audio|> markers), and since 0.3.0 DuplexJevVisionForConditionalGeneration (DuplexJev-32B-Vision, speech and an image in one request; see below) through vLLM's vllm.general_plugins entry point, so nothing needs to be imported by hand. It adds the Qwen3-ASR audio encoder and the matching preprocessing (128-bin log-mel, clips padded to whole audio tokens) to vLLM's Ultravox implementation; the connector and the LLM run on vLLM's own code.

Each question is one request with max_tokens=1; the answer is the next-token distribution over the option letters. A client that asks several questions about one clip concurrently is in examples/vllm_client.py.

Speech + image (DuplexJev-32B-Vision, 0.3.0)

vllm serve adventists-ai/DuplexJev-32B-Vision --max-model-len 8192 \
  --limit-mm-per-prompt '{"image": 1, "audio": 1, "video": 0}'

vLLM's Qwen3-VL implementation plus the DuplexJev audio encoder and connector (loaded from audio/ in the checkpoint). In a chat request, put <|audio|> in the text where the speech goes, an image_url part where the picture goes, and the clip as an input_audio part. Audio tokens take plain text positions in Qwen3-VL's 3-D RoPE, as in training. Client: examples/vllm_vision_client.py.

modeling_qwen3_asr_encoder.py is a standalone port of the Qwen3-ASR audio encoder from Hugging Face transformers (Apache-2.0, Copyright the Qwen team, Alibaba Cloud, and the HuggingFace team). The rest of this package is Apache-2.0, Copyright Adventists.ai.

Metadata

Release files for duplexjev-vllm 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for duplexjev-vllm 0.3.0
File Size Uploaded
duplexjev_vllm-0.3.0.tar.gz 14.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for duplexjev-vllm 0.3.0
File Interpreter ABI Platform
duplexjev_vllm-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.8 kB

Release files / duplexjev_vllm-0.3.0.tar.gz

Download URL duplexjev_vllm-0.3.0.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
13d14def9b03cac5203817b8ba07247103f7e13f9e4005483d25d064d19e796c
BLAKE2b-256 checksum
How to use checksums
086042f82235c7af2a427a1b507b83f102d9e0043591981114cdfca90af7ce45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / duplexjev_vllm-0.3.0-py3-none-any.whl

Download URL duplexjev_vllm-0.3.0-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
16ccbe21bcec2095c5e4d9423c84cbdd503e781e943322e212383bab4ebabaff
BLAKE2b-256 checksum
How to use checksums
a0775a128bb3aff378512e2f44f26be135afba54c7623b498766bd6b3c33fd56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page