Setup
To get started, sign into Baseten with Truss and then install the OpenAI SDK.Sign in to Baseten
Install the OpenAI SDK
Hardware
H100 × 4
Engine
vLLM 0.21.0
Context
256K
Concurrency
64
Write the config
Create and move into the project directory:config.yaml and paste the following:
config.yaml
Flags
Thestart_command passes these flags to the engine. Each one controls a runtime or serving behavior:
| Flag | Value | What it does |
|---|---|---|
--tool-call-parser | poolside_v1 | Server-side parser that emits structured tool_calls on the response. |
--reasoning-parser | poolside_v1 | Server-side parser that separates reasoning output into reasoning_content. |
--enable-auto-tool-choice | (no value) | Let the model choose when to call tools without requiring tool_choice: "required". |
--default-chat-template-kwargs | {"enable_thinking": true} | Default keyword arguments applied to the chat template, used to set behaviors like enabling reasoning by default. |
--tensor-parallel-size | 4 | Number of GPUs to shard the model across. |
--max-model-len | 262144 | Maximum context length (tokens) the server accepts per request. |
--max-num-seqs | 64 | Maximum number of concurrent sequences in the batch. |
--gpu-memory-utilization | 0.95 | Fraction of GPU memory vLLM may use for weights and KV cache. |
--trust-remote-code | (no value) | Execute model-specific Python from the checkpoint (required for many Qwen, Phi, and custom architectures). |
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 API. Replace{model_id} with your model ID and make sure BASETEN_API_KEY is set.
Now call your deployment to run inference:
- Python
- cURL
main.py
reasoning_content field on the response. Read it alongside the final answer:
tools array. The server returns structured tool_calls on the response: