Yes, even if vLLM’s OpenAIBaseModel allows extra fields, Mistral models run with --tokenizer-mode mistral use their own message parsing logic that forbids extra fields in nested objects. This is enforced by the Mistral tokenizer’s dependency on mistral-common, which sets extra = "forbid" in its Pydantic base model.
Relevant vLLM code and explanation:
- In vLLM, when you use
--tokenizer-mode mistral, message parsing for Mistral models is delegated to the mistral-common library. - The relevant code is in mistral_common/base.py, which sets
extra = "forbid"in the Pydantic model config. - vLLM’s own code references this behavior in PR #10463:
“Mistral models ran with
--tokenizer-mode mistralusemistral-commonfor parsing the messages, and they forbid extra params on their side: see here”
Summary:
Even if vLLM is patched to allow extra fields, Mistral models with --tokenizer-mode mistral will still reject extra fields in nested objects due to the strict validation in mistral-common. This cannot be overridden from vLLM alone.
Sources: