La siguiente es una plantilla completa y oficialmente comaptible con todas las capacidades de Qwen3.5 utilizando el formato ChatML dentro de un archivo Modelfile para Olllama. Esta configuración permite soportar conversaciones múltiples, invocaciones de herramientas, razonamiento en cadena (Chain-of-Thought), indicaciones del sistema y salida en streaming.
Archivo Modelfile completo (versión lista para usar)
# Modelo base (reemplazar por nombre real como qwen3.5:72b-instruct)
FROM qwen3.5:14b-instruct
# Parámetros recomendados
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER stop "<|im_end|>"
PARAMETER stop "<|im_start|>"
PARAMETER num_ctx 32768
PARAMETER num_gpu 99
# Plantilla estándar ChatML oficial de Qwen3.5
TEMPLATE """
{{- if .System }}
<|im_start|>system
{{ .System }}<|im_end|>
{{- end }}
{{- range .Messages }}
{{- if eq .Role "user" }}
<|im_start|>user
{{ .Content }}<|im_end|>
{{- end }}
{{- if eq .Role "assistant" }}
<|im_start|>assistant
{{ .Content }}<|im_end|>
{{- end }}
{{- if eq .Role "tool" }}
<|im_start|>tool
{{ .Content }}<|im_end|>
{{- end }}
{{- end }}
<|im_start|>assistant
"""
Funcionalidades clave explicadas
| Rol | Propósito | Soporte en plantilla |
|---|---|---|
system |
Definir contexto inicial o instrucciones generales | Totalmente soportado |
user |
Mensajes entrantes del usuario | Totalmente soportado |
assistant |
Respuestas del modelo e interacciones complejas | Totalmente soportado |
tool |
Resultados de ejecución de funciones externas | Totalmente soportado |
- Formato nativo: Se usa directamente el estándar ChatML tal como fue entrenado Qwen3.5.
- Delimitadores precisos: Las etiquetas
<|im_start|>y<|im_end|>evitan salidas incorrectas. - Histórico preservado: Mantiene automáticamente el contexto durante diálogos largos.
- Razonamiento visible: Incluir pasos lógicos en mensajes del rol system activa el modo CoT.
- Llamadas a funciones: El modelo puede interactuar con APIs definidas sin cambios adicionales.
- Contexto extenso: Hasta 32K tokens disponibles por defecto.
Instrucciones de uso
- Crea un nuevo archivo llamado
Modelfiley pega el contenido mostrado anteriormente. - Ejecuta este comando para generar tu propio modelo personalizado: ```
ollama create my-qwen35-model -f Modelfile
- Inicia la sesión con: ```
ollama run my-qwen35-model
Ejemplos prácticos
A. Diáloggo multivuelta con razonamiento
<|im_start|>system
Responde primero mostrando cómo llegaste a la conclusión antes de dar la respuesta final.<|im_end|>
<|im_start|>user
¿Cuánto es 4 + 6 * 2?<|im_end|>
<|im_start|>assistant
Paso 1: Multiplicamos 6 × 2 = 12
Paso 2: Sumamos 4 + 12 = 16
Resultado: 16<|im_end|>
<|im_start|>user
Ahora divídelo entre 2.<|im_end|>
B. Invocación de función externa
<|im_start|>system
Puedes llamar a la función get_time(location) para obtener la hora actual.<|im_end|>
<|im_start|>user
¿Qué hora es en Tokio ahora mismo?<|im_end|>
<|im_start|>assistant
<|tool_call|>[{"name": "get_time", "parameters": {"location": "Tokyo"}}]<|tool_end|><|im_end|>
<|im_start|>tool
Hora actual en Tokio: 14:25<|im_end|>
<|im_start|>assistant
Actualmente son las 14:25 horas en Tokio.<|im_end|>