Prompts de sistema para Ollama
Qué cubre este artículo
- Qué es un prompt de sistema y cómo funciona.
- Cómo usar prompts de sistema en Ollama.
- Ejemplos para diferentes roles y formatos.
- Cómo estructurar salidas y evitar errores.
- Diferencias entre prompts de sistema, usuario y asistente.
Introducción: Prompts de sistema para Ollama
Un prompt de sistema define cómo debe comportarse un modelo de lenguaje: qué rol adopta, qué reglas aplican y cómo deben verse las respuestas. A diferencia de los prompts normales del usuario, el prompt de sistema permanece activo durante toda la conversación. En Ollama, puedes proporcionarlo a través de la API, en Modelfiles o controlando el comportamiento del modelo. Cuando usas prompts de sistema de forma estratégica, obtienes respuestas más consistentes y útiles.
Este artículo muestra cómo se estructuran los prompts de sistema y qué patrones han demostrado funcionar bien.
Términos clave
- Prompt de sistema: Instrucción de control a nivel de sistema.
- Prompt del usuario: Pregunta o tarea normal del usuario.
- Asistente: Respuesta del modelo.
- Rol: Carácter o función que asume el modelo.
- Regla: Restricción o directriz para el comportamiento.
- Formato: Estructura de la salida.
- Token: Unidad más pequeña que procesa el modelo.
Estructura de un prompt de sistema
Un buen prompt de sistema contiene:
- Rol: ¿Qué es el modelo?
- Objetivo: ¿Qué debe lograr?
- Reglas: ¿Qué está permitido y qué no?
- Formato: ¿Cómo deben verse las respuestas?
- Ejemplos: Opcional, pero útil.
Ejemplo
Eres un asesor técnico especializado en IA local. Responde preguntas con precisión en español. Si no conoces una información, sé honesto al respecto. Estructura las respuestas con encabezados y listas.
Prompt de sistema en la API
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [
{"role": "system", "content": "Eres un asistente amable."},
{"role": "user", "content": "Hola"}
]
}'
Prompt de sistema en el Modelfile
FROM llama3.1
SYSTEM """
Eres un asesor técnico especializado en IA local. Responde con precisión y proporciona ejemplos.
"""
PARAMETER temperature 0.3
Prompts de sistema buenos y malos
Buenos
- Cortos y específicos.
- Roles y reglas claros.
- Lenguaje simple.
- Sin detalles innecesarios.
Malos
- Demasiado largos.
- Formulaciones vagas.
- Reglas contradictorias.
- Demasiadas condiciones anidadas.
- Desperdician tokens de contexto.
Ejemplos para diferentes aplicaciones
Asistente de programación
Eres un desarrollador Python experimentado. Escribe código limpio y comentado. Explica brevemente qué hace el código. Señala posibles fuentes de errores.
Asistente RAG
Respondes preguntas exclusivamente basándote en el contexto proporcionado. Si la respuesta no está en el contexto, indica que no hay información disponible. Cita las secciones relevantes.
Traductor
Eres un traductor profesional. Traduce textos de forma estilística y coherente. No des explicaciones a menos que se soliciten.
Maestro
Eres un maestro paciente. Explica conceptos de forma sencilla con ejemplos cotidianos. Haz una breve pregunta de comprensión al final.
Asistente seguro
Responde solo preguntas basadas en hechos documentados. No hagas afirmaciones especulativas o sensibles. Remite a documentación oficial.
Prompt de sistema y temperatura
Un prompt de sistema preciso funciona mejor con temperatura baja:
PARAMETER temperature 0.1
PARAMETER top_p 0.9
Para tareas creativas, la temperatura puede ser más alta.
Observar el comportamiento del modelo
No todos los modelos siguen prompts de sistema de la misma manera. Algunos tienden a ignorar instrucciones de sistema o a incorporarlas en las respuestas. Lo importante:
- Prueba varios modelos.
- Verifica el comportamiento en conversaciones largas.
- Repite las reglas de formato regularmente.
- Para formatos críticos, fuerza JSON o Markdown.
Prompts de sistema dinámicos
En aplicaciones, el prompt de sistema puede adaptarse según el contexto:
system_prompt = "Eres un experto en redes." if topic == "networking" else "Eres un experto en programación."
Así el comportamiento se mantiene flexible.
Errores comunes
- Prompt de sistema demasiado largo: Consume tokens de contexto valiosos.
- Contradicciones: El modelo elige arbitrariamente.
- Sin especificaciones de formato: Las respuestas resultan desestructuradas.
- Ignorar el prompting: Algunos modelos siguen mal los prompts de sistema.
- Orden incorrecto: El prompt de sistema debe estar al principio.
- Sobrescrito por el usuario: Algunas aplicaciones permiten que usuarios cambien el prompt de sistema, lo que presenta riesgos de seguridad.
Enlaces e información adicional
- BotServ.de Ollama Modelfiles
- BotServ.de Ollama Prompt-Engineering
- BotServ.de Ollama para programación
- BotServ.de RAG con Ollama
Preguntas frecuentes: Prompts de sistema para Ollama
¿Qué tan importante es el prompt de sistema? Muy importante, especialmente con modelos más pequeños.
¿Puedo usar múltiples prompts de sistema? Técnicamente sí, pero en la práctica solo uno debe estar activo por conversación.
¿Se ve el prompt de sistema en la salida? No, solo controla el comportamiento.
¿Necesito un prompt de sistema para preguntas simples? No siempre, pero proporciona respuestas más consistentes.
¿Puede el usuario sobrescribir el prompt de sistema? En aplicaciones puras de API Ollama sí, a menos que se implemente de otra forma.
Fuentes y lecturas recomendadas
- Ollama Modelfile Docs: https://github.com/ollama/ollama/blob/main/docs/modelfile.md
- Prompting Guide: https://www.promptingguide.ai/
- System Messages Best Practices: https://platform.openai.com/docs/guides/prompt-engineering
Resumen: Prompts de sistema para Ollama
Los prompts de sistema son una herramienta poderosa para controlar deliberadamente los modelos de Ollama. Definen el rol, las reglas y el formato de salida para toda la conversación. Los prompts de sistema cortos, precisos y sin contradicciones funcionan mejor, especialmente combinados con temperatura baja y parámetros de modelo adecuados. Cuando aplicas prompts de sistema consistentemente en Modelfiles o en la API, obtienes respuestas mucho más predecibles y útiles.


