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.