====== LLM (Large Language Model) ====== Un LLM (//Large Language Model//) es el motor o la tecnología base en la inteligencia artificial. Es un modelo de inteligencia artificial entrenado con enormes cantidades de texto para: * Entender lenguaje natural * Generar texto * Responder preguntas * Traducir, resumir, programar, etc. Ejemplos de LLM: * GPT-4 * GPT-5 * Gemini 1.5 * LLaMA 3 Piensa en el LLM como **el cerebro**. ===== Aplicaciones que usan LLM ===== Algunos ejemplos: * ChatGPT * Gemini * Meta * Claude Incluyen: * Interfaz de chat * Herramientas extra (memoria, navegación, archivos, etc.) * Ajustes de comportamiento * Integraciones con otros servicios Esto es lo que realmente utiliza el usuario final. ==== ChatGPT ==== ==== Gemini ==== ===== Cómo funciona un chat con IA ===== Cuando usas algo como ChatGPT o Gemini, por debajo siempre ocurre esto: **1. 🧠 Modelo (LLM)** Por ejemplo, GPT-5 o Gemini 1.5. Es el "cerebro" que: * Predice texto * No sabe realmente "la verdad". * No tiene intención propia. Solo completa lo más probable según el contexto. **2. Sistema (//system prompt//)** Es **una instrucción oculta** que define el comportamiento del modelo. Ejemplos: * "Eres un profesor claro y conciso" * "Responde como experto en derecho" * "No des información peligrosa" Esto **no lo ves normalmente**, pero controla mucho el resultado. En APIs o herramientas como Ollama sí puedes modificarlo directamente. **3. Prompt del usuario** Esto es lo que tú escribes. Ej: * "Explícame qué es la inflación" * "Hazlo como si tuviera 10 años" Aquí es donde tienes control directo. **4. Contexto (historial + info extra)** Incluye: * Conversación previa * Archivos que subes * Datos adicionales Es *clave*, porque el modelo responde en base a TODO esto, no solo tu último mensaje. El modelo realmente recibe algo así: [Sistema] + [Contexto previo] + [Tu prompt] = Respuesta No responde solo a tu última pregunta, sino al *conjunto completo*. ==== Ejemplo práctico (muy revelador) ==== ❌ Prompt pobre: "Explícame esto" 👉 Resultado: genérico, poco útil ✅ Prompt bien estructurado: "Explícame la inflación como si fueras un profesor de economía, con ejemplos simples y en menos de 150 palabras" Aquí estás controlando: * Rol (profesor) → sistema-like * Nivel → estilo * Formato → longitud Resultado: mucho mejor ===== Un buen prompt ===== Un buen prompt hace 3 cosas: * **Define el rol** * **Define la tarea** * **Define el formato de salida** Si falta uno → la calidad baja. Muchísima gente piensa: "El modelo es bueno o malo", pero en realidad, **La calidad depende muchísimo de cómo estructuras el input** **Analogía final potente** Imagina: * Modelo = chef * Sistema = reglas del restaurante * Prompt = lo que pides * Contexto = lo que ya hablaste con el camarero Si pides mal, incluso el mejor chef falla. ==== Role Prompting (Asignar un rol) ==== El modelo se comporta mejor cuando “sabe quién es”. Idea: le das un rol claro, estilo y objetivo. **Ejemplo básico:** ❌ Prompt pobre: Explícame qué es la inteligencia artificial ✅ Prompt con rol: Eres un profesor universitario especializado en IA. Explica qué es la inteligencia artificial con ejemplos sencillos y analogías para un estudiante de primer año. **Beneficio:** El modelo ajusta tono, detalle y estilo automáticamente. ==== Few-Shot Prompting (Dar ejemplos) ==== Dar un par de ejemplos de la salida que quieres mejora muchísimo la precisión. **Ejemplo:** Eres un redactor de emails profesionales. Mira estos ejemplos: Ej1: ‘Estimado cliente, le informamos…’ Ej2: ‘Hola equipo, les comparto…’ Ahora redacta un email informal para notificar un retraso en la entrega de un pedido.” **Beneficio:** El modelo “aprende” tu estilo en el momento y lo replica. ==== Chain-of-Thought (Razonamiento paso a paso) ==== Cuando quieres respuestas complejas o lógicas, pides que explique el proceso. **Ejemplo:** Resuelve este problema de matemáticas paso a paso: Si tengo 3 cajas con 5 manzanas cada una y regalo 4 manzanas, ¿cuántas me quedan? **Beneficio:** Reduce errores en cálculos o razonamiento complejo porque obliga al modelo a “pensar en voz alta”. ==== Control de formato y estilo ==== Puedes pedirle estructura, longitud o formato específicos. **Ejemplo:** > Resume este artículo en **3 bullets**, cada uno máximo 20 palabras, usando lenguaje sencillo. **Beneficio:** La respuesta se ajusta exactamente a tus necesidades, no tienes que reescribirla. ==== Iteración y refinamiento ==== Si la primera respuesta no es perfecta, puedes hacer *prompt refinement*: > Hazlo más conciso y agrega un ejemplo concreto de la vida real. **Tip profesional:** Es más eficiente ajustar el prompt que corregir la salida. ==== Mini-reglas rápidas para prompts top ==== * Define **rol + tarea + formato** * Da **ejemplos** si quieres estilo consistente * Usa **contexto relevante** * Pide **paso a paso** para razonamiento complejo * Refina iterativamente, no lo dejes al azar ===== Ejemplos de prompts ===== ==== Ayuda en PHP ==== **Paso 1: Definir el rol** Primero, le decimos al modelo quién es y qué hace. Esto ayuda a que genere respuestas con precisión técnica y estilo profesional. Ejemplo: Eres un desarrollador senior en PHP con 10 años de experiencia, experto en buenas prácticas, seguridad y eficiencia en desarrollo web. **Paso 2: Definir la tarea concreta** Si quieres ayuda con código, debugging, optimización o explicación de conceptos, hay que especificarlo: Tu tarea es ayudarme a escribir código PHP correcto, explicar problemas en mis scripts y sugerir mejoras de manera clara y concisa. **Paso 3: Usar chain-of-thought para problemas complejos** Cuando tengas un problema de lógica o debugging, pide explicación paso a paso: Responde paso a paso, primero identificando el problema, luego sugiriendo la solución y finalmente mostrando el código corregido. **Paso 4: Control de formato y ejemplos (few-shot)** Para que las respuestas sean consistentes, podemos dar un mini-ejemplo de salida deseada: Ejemplo: Problema: No puedo conectar a MySQL Solución paso a paso: 1. Verificar credenciales 2. Revisar host y puerto 3. Comprobar errores de conexión Código corregido: connect_error) { die("Error de conexión: " . $mysqli->connect_error); } ?> **Paso 5: Combinar todo en un prompt “listo para usar”** Cuando necesites ayuda, podrías escribir algo como esto: Eres un desarrollador senior en PHP con 10 años de experiencia, experto en buenas prácticas y seguridad. Tu tarea es ayudarme a escribir código PHP correcto, explicar problemas y sugerir mejoras de manera clara y concisa. Responde paso a paso, primero identificando el problema, luego sugiriendo la solución y finalmente mostrando el código corregido. Aquí está mi problema: [DESCRIBE TU PROBLEMA O PEGA TU CÓDIGO AQUÍ] **Tips profesionales adicionales para PHP** * Incluye siempre el contexto: versión de PHP, framework (Laravel, Symfony, etc.) * Pregunta por alternativas: “Dame 2 formas de optimizar este query” * Usa prompts iterativos: primero genera, luego revisa errores, luego optimiza * Pide explicaciones breves de seguridad: SQL injection, XSS, validaciones Plantilla de prompt: Eres un desarrollador senior en PHP con más de 10 años de experiencia, experto en buenas prácticas, seguridad, eficiencia, y frameworks de PHP. Tu tarea es actuar como mi **asistente de programación PHP**, ayudándome a revisar, depurar, optimizar y mejorar cualquier código PHP que te entregue. Sigue estas instrucciones paso a paso: 1. **Identificación del problema:** Detecta errores, vulnerabilidades de seguridad (SQLi, XSS, CSRF), malas prácticas y posibles problemas de performance. 2. **Explicación técnica:** Describe por qué ocurre cada problema y cómo solucionarlo, de forma clara y concisa. 3. **Código corregido y optimizado:** Muestra la versión correcta en bloques de código PHP, con comentarios explicativos donde sea útil. 4. **Buenas prácticas y seguridad automáticas:** Señala mejoras de seguridad, validaciones, hash de contraseñas, prepared statements, sanitización de inputs, etc. 5. **Alternativas de implementación:** Si es posible, sugiere al menos una forma alternativa, más eficiente o segura, de implementar la misma funcionalidad. 6. **Optimización de performance:** Recomienda mejoras de eficiencia o simplificación de código, especialmente en queries o loops. 7. **Chain-of-thought:** Explica paso a paso tu razonamiento antes de mostrar el código final. Instrucciones adicionales: - Ajusta la respuesta según la **versión de PHP**: [INDICA TU VERSIÓN DE PHP] - Ajusta según **framework**: [INDICA FRAMEWORK, ej. Laravel, Symfony, ninguno] - Mantén estilo profesional, claro y conciso. - Usa comentarios en el código para que sean útiles en producción. - Si detectas un error de lógica o seguridad, prioriza la corrección antes de mostrar alternativas. Aquí está mi problema o código: [PEGA TU CÓDIGO O DESCRIBE EL PROBLEMA AQUÍ]