When tool_call.arguments is already a JSON string (as sent by the OpenAI
API), applying |tojson wraps it in quotes and escapes internal quotes,
producing double-escaped output like "{\"key\":\"val\"}" instead of
{"key":"val"}.
Add an `is string` guard (same pattern used by Hermes, Qwen3 templates)
so arguments are output as-is when already a string, and only serialized
via tojson when they are a dict/object.
Similarly, remove |tojson from tool response message.content which is
always a string from the API.
Fixes #19520
|
||
|---|---|---|
| .. | ||
| Apertus-8B-Instruct.jinja | ||
| ByteDance-Seed-OSS.jinja | ||
| CohereForAI-c4ai-command-r-plus-tool_use.jinja | ||
| CohereForAI-c4ai-command-r7b-12-2024-tool_use.jinja | ||
| GLM-4.6.jinja | ||
| Kimi-K2-Instruct.jinja | ||
| Kimi-K2-Thinking.jinja | ||
| MiMo-VL.jinja | ||
| MiniMax-M2.jinja | ||
| Mistral-Small-3.2-24B-Instruct-2506.jinja | ||
| NVIDIA-Nemotron-3-Nano-30B-A3B-BF16.jinja | ||
| NVIDIA-Nemotron-Nano-v2.jinja | ||
| NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja | ||
| NousResearch-Hermes-3-Llama-3.1-8B-tool_use.jinja | ||
| Qwen-QwQ-32B.jinja | ||
| Qwen-Qwen2.5-7B-Instruct.jinja | ||
| Qwen-Qwen3-0.6B.jinja | ||
| Qwen3-Coder.jinja | ||
| README.md | ||
| deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja | ||
| deepseek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja | ||
| deepseek-ai-DeepSeek-V3.1.jinja | ||
| fireworks-ai-llama-3-firefunction-v2.jinja | ||
| google-gemma-2-2b-it.jinja | ||
| ibm-granite-granite-3.3-2B-Instruct.jinja | ||
| llama-cpp-deepseek-r1.jinja | ||
| llama-cpp-lfm2.jinja | ||
| llama-cpp-rwkv-world.jinja | ||
| meetkai-functionary-medium-v3.1.jinja | ||
| meetkai-functionary-medium-v3.2.jinja | ||
| meta-llama-Llama-3.1-8B-Instruct.jinja | ||
| meta-llama-Llama-3.2-3B-Instruct.jinja | ||
| meta-llama-Llama-3.3-70B-Instruct.jinja | ||
| microsoft-Phi-3.5-mini-instruct.jinja | ||
| mistralai-Ministral-3-14B-Reasoning-2512.jinja | ||
| mistralai-Mistral-Nemo-Instruct-2407.jinja | ||
| moonshotai-Kimi-K2.jinja | ||
| openai-gpt-oss-120b.jinja | ||
| unsloth-Apriel-1.5.jinja | ||
| unsloth-mistral-Devstral-Small-2507.jinja | ||
README.md
These templates can be updated with the following commands:
./scripts/get_chat_template.py CohereForAI/c4ai-command-r-plus tool_use > models/templates/CohereForAI-c4ai-command-r-plus-tool_use.jinja
./scripts/get_chat_template.py CohereForAI/c4ai-command-r7b-12-2024 default > models/templates/CohereForAI-c4ai-command-r7b-12-2024-default.jinja
./scripts/get_chat_template.py CohereForAI/c4ai-command-r7b-12-2024 rag > models/templates/CohereForAI-c4ai-command-r7b-12-2024-rag.jinja
./scripts/get_chat_template.py CohereForAI/c4ai-command-r7b-12-2024 tool_use > models/templates/CohereForAI-c4ai-command-r7b-12-2024-tool_use.jinja
./scripts/get_chat_template.py deepseek-ai/DeepSeek-R1-Distill-Llama-8B > models/templates/deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja
./scripts/get_chat_template.py deepseek-ai/DeepSeek-R1-Distill-Qwen-32B > models/templates/deepseek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja
./scripts/get_chat_template.py fireworks-ai/llama-3-firefunction-v2 > models/templates/fireworks-ai-llama-3-firefunction-v2.jinja
./scripts/get_chat_template.py google/gemma-2-2b-it > models/templates/google-gemma-2-2b-it.jinja
./scripts/get_chat_template.py meetkai/functionary-medium-v3.1 > models/templates/meetkai-functionary-medium-v3.1.jinja
./scripts/get_chat_template.py meetkai/functionary-medium-v3.2 > models/templates/meetkai-functionary-medium-v3.2.jinja
./scripts/get_chat_template.py meta-llama/Llama-3.1-8B-Instruct > models/templates/meta-llama-Llama-3.1-8B-Instruct.jinja
./scripts/get_chat_template.py meta-llama/Llama-3.2-3B-Instruct > models/templates/meta-llama-Llama-3.2-3B-Instruct.jinja
./scripts/get_chat_template.py meta-llama/Llama-3.3-70B-Instruct > models/templates/meta-llama-Llama-3.3-70B-Instruct.jinja
./scripts/get_chat_template.py microsoft/Phi-3.5-mini-instruct > models/templates/microsoft-Phi-3.5-mini-instruct.jinja
./scripts/get_chat_template.py mistralai/Mistral-Nemo-Instruct-2407 > models/templates/mistralai-Mistral-Nemo-Instruct-2407.jinja
./scripts/get_chat_template.py NousResearch/Hermes-2-Pro-Llama-3-8B tool_use > models/templates/NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja
./scripts/get_chat_template.py NousResearch/Hermes-3-Llama-3.1-8B tool_use > models/templates/NousResearch-Hermes-3-Llama-3.1-8B-tool_use.jinja
./scripts/get_chat_template.py Qwen/Qwen2.5-7B-Instruct > models/templates/Qwen-Qwen2.5-7B-Instruct.jinja
./scripts/get_chat_template.py Qwen/QwQ-32B > models/templates/Qwen-QwQ-32B.jinja
./scripts/get_chat_template.py Qwen/Qwen3-0.6B > models/templates/Qwen-Qwen3-0.6B.jinja
./scripts/get_chat_template.py zai-org/GLM-4.5 > models/templates/zai-org-GLM-4.5.jinja
./scripts/get_chat_template.py deepseek-ai/DeepSeek-V3.1 > models/templates/deepseek-ai-DeepSeek-V3.1.jinja