Setup
Sign in to Baseten with Truss, then install the OpenAI SDK.Sign in to Baseten
Install the OpenAI SDK
Hardware
H100
Engine
vLLM 0.14.1
Context
32K
Concurrency
32
Write the config
Create and move into the project directory:config.yaml and paste the following:
config.yaml
vllm/vllm-openai:v0.14.1 image with Microsoft’s VibeVoice plugin patches applied at startup, serving weights pre-mounted at /models/vibevoice-asr so cold starts skip the 9.2 GB Hugging Face download. The server runs in eager mode with a 32k context and up to 16 concurrent sequences, exposing the model as vibevoice on the chat completions endpoint.
Flags
Thestart_command passes these flags to the engine. Each one controls a runtime or serving behavior:
| Flag | Value | What it does |
|---|---|---|
--trust-remote-code | (no value) | Execute model-specific Python from the checkpoint (required for many Qwen, Phi, and custom architectures). |
--dtype | bfloat16 | Weight precision loaded at runtime. bfloat16: BF16 weights, no quantization. |
--max-num-seqs | 16 | Maximum number of concurrent sequences in the batch. |
--max-model-len | 32768 | Maximum context length (tokens) the server accepts per request. |
--gpu-memory-utilization | 0.85 | Fraction of GPU memory vLLM may use for weights and KV cache. |
--num-gpu-blocks-override | 4096 | Overrides vLLM’s profiled KV cache size with a fixed number of GPU blocks. |
--no-enable-prefix-caching | (no value) | Disable prefix caching, so repeated prompts do not reuse cached KV blocks. |
--enable-chunked-prefill | (no value) | Process long prompts in chunks so decode requests keep running. |
--chat-template-content-format | openai | Format the chat template uses to render message content. openai: OpenAI-style content parts (list of typed segments) rather than a plain string. |
--allowed-local-media-path | /app | Filesystem path the server may read local media files from when resolving multimodal inputs. |
--media-io-kwargs | {"audio": {"target_sr": 24000}} | Options passed to the multimodal media loaders as a JSON object, for example the target sample rate for audio inputs. |
--enforce-eager | (no value) | Run the model in eager mode instead of capturing CUDA graphs. |
--skip-mm-profiling | (no value) | Skip multimodal memory profiling at startup, reducing startup time. |
Deploy
Push the config to Baseten:truss push output (abcd1234 in the example). Use it wherever you see {model_id} in the next section.
Call the model
Your deployment serves an OpenAI-compatible chat completions API at/v1/chat/completions that accepts audio inputs. Replace {model_id} with your model ID and make sure BASETEN_API_KEY is set.
Send audio as an audio_url content item on a chat message. The model returns the transcription as the assistant message content.
- Python
- cURL
main.py