Instructions to use froggeric/Qwen-Fixed-Chat-Templates with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use froggeric/Qwen-Fixed-Chat-Templates with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir Qwen-Fixed-Chat-Templates froggeric/Qwen-Fixed-Chat-Templates
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
README: correct vLLM setup and document which thinking-off channels vLLM's parser tracks
#89
by gdevenyi - opened
Summary
README-only. Corrects the vLLM quick-install section and documents which thinking-off channels vLLM's qwen3 reasoning parser can follow. Everything below was checked against vLLM main at commit 5ee84d3c (2026-08-21) and against live renders through the transformers Jinja environment.
What changes
- Launch command.
--chat-template /path/to/chat_template.jinjareplaces the embedded template; editingtokenizer_config.jsonis not needed. The old command omitted--enable-auto-tool-choice(required; vLLM rejectstool_choice="auto"without it,entrypoints/openai/cli_args.py) and--reasoning-parser qwen3(without it the<think>block is returned insidecontent).--reasoning-parser qwen3is vLLM's counterpart to llama.cpp's--reasoning-format deepseek, which the README already recommends. - Parser names. On current vLLM
main,qwen3_xmlandqwen3_coderresolve to the same parser class (vllm/tool_parsers/__init__.py). The text now says so instead of "older builds use qwen3_coder" only. - Reasoning effort. vLLM forwards the top-level OpenAI
reasoning_effortfield into the template (chat_completion/protocol.py,build_chat_params), and it takes precedence overchat_template_kwargs.reasoning_effort.--default-chat-template-kwargs '{"reasoning_effort": "xhigh"}'restores the official default server-wide. - Thinking off on vLLM (discussion #74). vLLM's
Qwen3Parserdecides its start state only fromchat_template_kwargs["enable_thinking"](vllm/parser/qwen3.py); it does not look at the prompt. When the template closes the think block by another channel — inline<|think_off|>,auto_disable_thinking_with_tools, or achat_template_kwargs-onlyreasoning_effortofnone/off— the model never emits</think>, the parser stays in reasoning state, and the answer comes back asreasoningwithcontent: null. With--reasoning-parser qwen3 --tool-call-parser qwen3_xmlvLLM uses the single Qwen3 engine for both streaming and non-streaming, so both are affected. The two channels that work arechat_template_kwargs.enable_thinking=falseand a top-levelreasoning_effort: "none"(vLLM derivesenable_thinking=falsefrom it). The inline-tag section gets a one-line pointer to this.
This is documentation for a limit the template cannot work around; the parser-side fix belongs in vLLM.
Merged, thanks. Definitely good to clear up the vLLM parser flags and how thinking toggles interact with the server.
froggeric changed pull request status to closed