FB_ADS_GENERATOR / headline_generator.py
JeCabrera's picture
Upload 14 files
21f4cc3 verified
import random
# Definir las fórmulas de titulares a nivel de módulo
headline_formulas = {
"GPS": {
"description": """
La fórmula GPS (Goal-Period-Solution) crea titulares persuasivos mezclando humor y seriedad, usando lenguaje simple y directo:
1. **Meta** (Goal):
¿Qué desea lograr la audiencia?
- Resultado deseable y específico
- Transformación realista y medible
- Logro interesante y alcanzable
- Mejora notable con beneficios concretos
- Evitar promesas exageradas o garantías de resultados
2. **Periodo** (Period):
¿En qué marco temporal o contexto?
- Momento cotidiano específico
- Rutina diaria identificable
- Actividad común y reconocible
- Situación familiar para la audiencia
- Contexto temporal realista
3. **Superación de Obstáculo** (Solution):
Conectores variados que muestran contraste:
- sin (ausencia de requisito común)
- incluso con (desafío específico)
- aunque (contraste realista)
- a pesar de (adversidad común)
- cuando (circunstancia específica)
- aun con (limitación identificable)
- mientras (simultaneidad práctica)
- por más que (intensidad realista)
IMPORTANTE:
- Evitar el uso de segunda persona (tú, te, tu, tus)
- Usar construcciones impersonales o en tercera persona
- Mantener afirmaciones realistas y verificables
- Incluir detalles específicos que añadan credibilidad
- El humor debe ser apropiado y no exagerado
- Evitar promesas de resultados garantizados
""",
"examples": [
# Específico + Cotidiano (Positivo - con tú)
"Domina el arte de la inversión mientras suena tu despertador incluso con conocimientos básicos de finanzas",
# Situación Específica (Positivo - con tú)
"Aprende un nuevo idioma durante tus trayectos diarios aunque solo conozcas palabras básicas",
# Realista + Humor Ligero (Negativo - sin tú)
"Supera el miedo a hablar en público durante reuniones laborales a pesar de los nervios iniciales",
# Contraste Realista (Positivo - con tú)
"Desarrolla resistencia muscular mientras preparas el desayuno cuando tienes tiempo limitado",
# Situación Común + Específico (Positivo - con tú)
"Domina la fotografía de paisajes en tu parque local aun con equipos básicos de imagen",
# Cotidiano + Realista (Positivo - con tú)
"Cultiva hierbas aromáticas mientras respondes correos aunque tu espacio disponible sea reducido",
# Específico + Medible (Positivo - con tú)
"Escribe 500 palabras diarias mientras esperas el transporte por más que tu inspiración parezca esquiva",
# Situación Común + Beneficio (Positivo - con tú)
"Practica meditación mientras lavas los platos sin necesidad de posturas complicadas",
# Específico + Realista (Negativo - sin tú)
"Comprende conceptos básicos de inversión en solo una ida al baño incluso si no sabes que es una AFORE",
# Mejora Concreta (Positivo - con tú)
"Transforma tu postura corporal en videollamadas aunque tu espacio de trabajo sea improvisado",
# Situación Familiar + Específico (Positivo - con tú)
"Aprende acordes básicos de guitarra mientras preparas la cena aunque nunca hayas tocado un instrumento",
# Realista + Específico (Negativo - sin tú)
"Mejora la pronunciación en inglés durante el trayecto al trabajo a pesar de la timidez inicial",
# Realidad Común + Específico (Positivo - con tú)
"Desarrolla tu presencia en redes sociales mientras organizas el armario cuando las métricas te parecen complicadas",
# Situación Cotidiana + Valor (Positivo - con tú)
"Amplía tu red profesional mientras compras en el mercado local aun con tu agenda ocupada",
# Específico + Realista (Positivo - con tú)
"Construye tu portafolio creativo mientras disfrutas de series aunque las distracciones estén presentes",
# Realista + Específico (Positivo - con tú)
"Aprende conceptos básicos de programación durante el tiempo de juego familiar por más que la tecnología te parezca compleja",
# Situación Cotidiana + Valor (Positivo - con tú)
"Domina recetas saludables mientras organizas tu espacio de trabajo incluso sin experiencia culinaria previa",
# Realista + Específico (Positivo - con tú)
"Mejora tus habilidades fotográficas mientras esperas el transporte público con técnicas simples de composición",
# Contraste Realista (Negativo - sin tú)
"Transforma la rutina de ejercicios durante pausas laborales incluso cuando el tiempo disponible es mínimo",
# Específico + Valor (Positivo - con tú)
"Desarrolla fuerza funcional mientras haces las compras cotidianas aunque no tengas entrenamiento formal"
]
},
"Númerica Suprema": {
"description": """
La Fórmula Suprema de Istvanova combina 5 elementos clave más artículos plurales para crear titulares persuasivos:
1. **Artículos Plurales** (Art):
- Los (para masculino plural)
- Las (para femenino plural)
- Dan naturalidad y autoridad al texto
- Ejemplos: "Los 7 métodos...", "Las 3 técnicas..."
2. **Números** (N):
- Específicos y creíbles (3, 5, 7, 10...)
- Preferiblemente impares (3, 5, 7) para mayor impacto
- Evita números excesivamente grandes o poco creíbles
- Se combinan con artículos: "Los 5...", "Las 3..."
3. **Adjetivo** (A):
- Emocionales y descriptivos sin exagerar
- Conectan con deseos/miedos de forma realista
- Evita superlativos extremos ("mejor", "único", "revolucionario")
- Ejemplos adecuados: efectivos, prácticos, esenciales, comprobados
4. **Palabra Clave** (P):
- Término central del beneficio en plural
- Específico y relevante para la audiencia
- Fácil de entender y recordar
- Ejemplos: métodos, estrategias, técnicas, hábitos, prácticas
5. **Razón** (R):
- Justifica el beneficio con datos o contexto específico
- Añade credibilidad sin hacer afirmaciones exageradas
- Usa fuentes o referencias cuando sea posible
- Evita afirmaciones médicas no verificadas
6. **Promesa** (P):
- Resultado específico pero sin garantías absolutas
- Timeframe realista sin promesas milagrosas
- Beneficio final atractivo pero alcanzable
- Evita términos como "garantizado", "siempre", "nunca"
IMPORTANTE SOBRE REFERENCIAS PERSONALES:
- Para temas positivos o neutros: Puedes usar "tu" con moderación
- Para temas de dolor o problemas: Evita referencias directas, usa construcciones impersonales
- Evita referencias a atributos personales sensibles (salud, finanzas, apariencia)
- Usa "para quienes buscan..." en lugar de "si buscas..."
SOBRE ESPECIFICIDAD:
- Incluye datos concretos que añadan credibilidad
- Menciona fuentes o expertos cuando sea relevante
- Especifica contextos o situaciones particulares
- Usa términos técnicos apropiados para la audiencia
- Evita generalidades vagas o promesas genéricas
Formatos:
- Corto: Art plural + N + A + P + P
- Medio: Art plural + N + A + P + R + P
- Largo: Art plural + N + A + P + R detallada + P específica
""",
"examples": [
# Positivo (con "tu" moderado)
"Los 3 rituales matutinos para mejorar tu descanso nocturno sin medicamentos.",
# Positivo (con "tu" moderado)
"Las 5 rutinas efectivas para fortalecer tu core con solo 7 minutos diarios.",
# Tema neutro (sin "tu")
"Los 7 hábitos esenciales que aumentan la productividad según estudios de Harvard.",
# Tema de salud (sin "tu")
"Las 3 técnicas comprobadas para mejorar el sueño basadas en neurociencia moderna.",
# Positivo (con "tu" moderado)
"Los 5 movimientos efectivos para entrenar en casa con tu propio peso corporal.",
# Tema de estrés (sin "tu")
"Las 7 estrategias esenciales para aumentar la productividad reduciendo el estrés laboral.",
# Tema de salud (sin "tu")
"Los 3 métodos científicos para optimizar el ciclo de sueño según los últimos estudios de la Universidad de Stanford.",
# Positivo (con "tu" moderado)
"Las 5 secuencias de ejercicios diseñadas por fisioterapeutas olímpicos para entrenar en tu sala de estar.",
# Tema de productividad (sin "tu")
"Los 7 sistemas de organización implementados por CEOs que mejoran los resultados empresariales en un trimestre.",
# Positivo (con "tu" moderado)
"Las 3 prácticas matutinas que transforman tu energía diaria según expertos en cronobiología.",
# Tema de finanzas (sin "tu")
"Los 5 métodos comprobados para reducir gastos innecesarios sin afectar la calidad de vida.",
# Positivo (con "tu" moderado)
"Las 7 recetas nutritivas que puedes preparar en menos de 15 minutos con ingredientes básicos.",
# Tema de aprendizaje (sin "tu")
"Los 3 enfoques pedagógicos que aceleran el aprendizaje de idiomas según lingüistas de Oxford.",
# Positivo (con "tu" moderado)
"Las 5 técnicas de jardinería que revitalizarán tus plantas de interior incluso con poca luz natural.",
# Tema de trabajo (sin "tu")
"Los 7 principios de comunicación efectiva que resuelven conflictos laborales según mediadores profesionales."
],
"variaciones_estructura": {
"básica": "Art plural + N + A + P + P",
"intermedia": "Art plural + N + A + P + R + P",
"avanzada": "Art plural + N + A + P + R detallada + P específica"
},
"uso_articulos_plurales": {
"masculino_plural": {
"artículo": "los",
"ejemplos_palabras": "métodos, sistemas, pasos, secretos, principios, hábitos"
},
"femenino_plural": {
"artículo": "las",
"ejemplos_palabras": "técnicas, estrategias, rutinas, tácticas, claves, prácticas"
}
},
"consejos_uso": [
"Usa siempre la forma plural para mayor impacto",
"Alterna entre 'los' y 'las' según la palabra clave",
"Mantén coherencia en el género a lo largo del titular",
"Combina artículos con números de forma natural",
"Asegura que la palabra clave esté en plural",
"Para temas positivos puedes usar 'tu' con moderación",
"Para temas de dolor o problemas evita referencias directas",
"Incluye datos específicos que añadan credibilidad",
"Evita promesas de resultados garantizados o milagrosos"
]
},
"AIDA": {
"description": """
The AIDA formula is applied in a flexible and strategic manner, combining 1-4 elements to create impactful and natural headlines:
1. **Attention** (A):
Powerful opening hooks:
- "Did you know...?" + specific and verifiable data
- Relevant and credible mini-story
- Counter-intuitive idea backed by data
- Discovery based on research
- Clear and understandable analogy
- "According to recent studies..."
- "Contrary to popular belief..."
- "An interesting discovery shows that..."
2. **Interest** (I):
Development of the initial hook:
- Specific and relevant details
- Problem-solution connection based on facts
- Concrete and realistic benefits
- Bridge between current situation and possible result
- "The explanation is simple..."
- "The interesting thing about the study is that..."
- "The most valuable aspect..."
- "The differentiating factor is..."
3. **Desire** (D):
Emotional amplification:
- Realistic description of the result
- Experience relevant to the audience
- Verifiable social proof
- Specific and measurable value
- Appropriate emotional connection
- "Many people have achieved..."
- "The results show that..."
- "This makes it easier for people to..."
4. **Action** (A):
Natural closure:
- Clear and accessible next step
- Simple process to begin
- Realistic immediate benefit
- Specific first step
- Clear value proposition
- "Available to explore..."
- "Start with a simple..."
- "It only requires..."
Strategic combinations:
- A + I: To arouse curiosity and explain value
- A + D: To connect problem with desire
- I + D: To build desire from logic
- I + D + A: To build conviction and motivate
- A + I + D: To educate, intrigue and create longing
Each headline should maintain a conversational tone and avoid appearing as an obvious formula.
""",
# Examples remain in Spanish as requested
"examples": [
# A (dato específico) + I (conexión) + D (prueba social) + A (paso simple)
"¿Sabías que el 83% de los emprendedores exitosos dedican menos de 2 horas diarias a reuniones? Utilizan un método japonés de gestión que ha mostrado mejoras significativas en productividad. Descubre cómo implementarlo hoy mismo.",
# A (contraintuitivo) + I (beneficio) + D (resultado) + A (inicio) - Positivo con "tu"
"La mayoría desconoce que existe una técnica de ventas inspirada en videojuegos que está cambiando el enfoque en mercados B2B. Puedes aprenderla en solo 20 minutos y aplicarla en tu próxima presentación.",
# A (disruptivo) + I (detalle) + D (resultado) - Sin "tu" por ser tema de limitación
"Contrario a la creencia popular, el momento más productivo del día no siempre es por la mañana. Estudios de cronobiología revelan una ventana de tiempo inesperada que puede mejorar la concentración significativamente.",
# A (descubrimiento) + I (solución) + D (prueba) - Sin "tu"
"Un estudio reciente revela que los vendedores más efectivos nunca memorizan guiones. En su lugar, dominan una técnica de improvisación estructurada que genera conversaciones más auténticas con clientes.",
# I (método único) + D (transformación) + A (acción) - Positivo con "tu"
"Esta metodología de aprendizaje basada en microhábitos está transformando cómo los profesionales adquieren nuevas habilidades. Pruébala hoy con solo 10 minutos de tu tiempo.",
# I (innovación) + D (beneficio) + A (inicio) - Positivo con "tu"
"El método del empresario silencioso redefine las reglas del networking moderno con un enfoque más auténtico y menos invasivo. Comienza con un simple ejercicio que puedes realizar en tu próximo evento.",
# A (pregunta gancho) + D (resultado) + A (implementación) - Sin "tu"
"¿Sabías que existe un ritual zen que está siendo adoptado por empresas líderes en Silicon Valley? Los resultados en productividad son notables y su implementación toma menos de 5 minutos diarios.",
# A (analogía) + D (promesa) + A (descubrimiento) - Positivo con "tu"
"Como el bambú japonés, este método crece silenciosamente antes de mostrar resultados visibles. Descubre en 5 minutos cómo puedes aplicarlo a tus proyectos creativos.",
# A (mayoría) + I (validación) + A (acción) - Sin "tu"
"La mayoría desconoce el momento óptimo para tomar decisiones importantes según la neurociencia. Investigaciones de Harvard confirman un patrón específico que puede implementarse inmediatamente.",
# A (mini-cambio) + I (resultado) + A (inicio) - Positivo con "tu"
"Un pequeño ajuste en tu rutina de email puede generar mejoras significativas en productividad. Comienza hoy con esta técnica respaldada por expertos en gestión del tiempo.",
# A + I + D + A (metáfora natural) - Positivo con "tu"
"Como el bambú japonés, este método crece invisible hasta revelar resultados tangibles que pueden transformar tu enfoque de negocio en solo 30 días.",
# A + I + D + A (analogía deportiva) - Sin "tu"
"Los atletas olímpicos entrenan menos horas pero logran mejores resultados gracias a una técnica de productividad japonesa que prioriza la recuperación sobre el volumen.",
# A + I + D (metáfora de naturaleza) - Positivo con "tu"
"Al igual que las abejas construyen colmenas con patrones perfectos, este sistema puede ayudarte a organizar tu tiempo en bloques de máxima eficiencia sin sensación de agobio.",
# A + I + D (analogía artística) - Sin "tu"
"Como un director de orquesta que guía sin palabras, este método de ventas fluye naturalmente en cada conversación, creando conexiones más auténticas con potenciales clientes.",
# I + D + A (metáfora de agua) - Positivo con "tu"
"Este sistema de aprendizaje fluye como un río, adaptándose naturalmente a tu estilo cognitivo mientras potencia la retención de información. Comienza con una lección de 7 minutos.",
# I + D + A (analogía arquitectónica) - Sin "tu"
"Como los antiguos arquitectos japoneses que construían sin clavos, este método de networking crea conexiones profesionales sólidas sin necesidad de tácticas agresivas o forzadas.",
# A + D + A (metáfora zen) - Positivo con "tu"
"Similar a un jardín zen que revela su belleza gradualmente, esta rutina matutina puede ayudarte a desplegar tu potencial creativo día tras día con solo 12 minutos diarios.",
# A + D + A (analogía natural) - Sin "tu"
"Como el roble que crece firme ante las tormentas, este método fortalece la productividad en entornos de trabajo caóticos, especialmente en industrias con alta presión.",
# A + I + A (metáfora lunar) - Sin "tu"
"Al igual que la luna influye en las mareas, la neurociencia moderna revela ciclos naturales de productividad que pueden aprovecharse para optimizar el rendimiento laboral.",
# A + I + A (analogía culinaria) - Positivo con "tu"
"Como un chef que transforma ingredientes simples en platos extraordinarios, este sistema puede ayudarte a elevar tu rutina diaria a resultados notables con herramientas que ya posees."
]
},
"4U": {
"description": """
The 4U formula is applied in a flexible and strategic way, combining 1-4 elements to create impactful and natural headlines:
1. **Useful** (Useful):
Practical and tangible benefits:
- "How to achieve..." + specific result
- "The step-by-step guide to..."
- "The proven method that..."
- "Discover the way to..."
- "Learn to..." + concrete benefit
- "The comprehensive solution for..."
- "The system that allows for..."
- "The approach that delivers..."
2. **Urgent** (Urgent):
Immediate action motivators:
- "Limited opportunity to..."
- "Available until..."
- "Before circumstances change..."
- "While still possible..."
- "Don't wait for..."
- "Take advantage now..."
- "Offer available for..."
- "Act before..."
3. **Unique** (Unique):
Memorable differentiators:
- "The little-known method..."
- "The counter-intuitive technique..."
- "The surprising discovery..."
- "The distinctive strategy..."
- "The innovative system..."
- "The fresh approach..."
- "The unexpected solution..."
- "The exclusive method..."
4. **Ultra-specific** (Ultra-specific):
Precise and measurable details:
- Exact numbers: "27 techniques..."
- Concrete times: "13 minutes..."
- Measurable results: "63% more..."
- Defined steps: "3 steps..."
- Precise data: "8.3 times more..."
- Clear metrics: "2.5x faster..."
- Specific quantities: "97 people..."
- Defined timeframes: "21 days..."
IMPORTANT ABOUT PERSONAL REFERENCES:
- For positive or neutral topics: You can use "your" with moderation
- For pain points or problems: Avoid direct references, use impersonal constructions
- Avoid references to sensitive personal attributes (health, finances, appearance)
- Use "for those looking to..." instead of "if you're looking for..."
ABOUT SPECIFICITY:
- Include concrete data that adds credibility
- Mention sources or experts when relevant
- Specify particular contexts or situations
- Use appropriate technical terms for the audience
- Avoid vague generalities or generic promises
- Don't make specific income claims
- Avoid absolute guarantees of results
Strategic combinations:
- Useful + Ultra-specific: For practical, results-oriented audiences
- Urgent + Unique: For special offers and launches
- Unique + Ultra-specific: For data-based differentiation
- Useful + Urgent: To motivate immediate action
- Useful + Unique + Ultra-specific: To establish authority and credibility
- Useful + Urgent + Ultra-specific: For offers with measurable benefits
- Unique + Urgent + Ultra-specific: For exclusive launches
- Useful + Unique + Urgent: For transformative offers
- All 4Us together: For maximum impact on premium offers
Each headline should maintain a conversational tone and avoid appearing as an obvious formula.
""",
"examples": [
# Útil + Ultra-específico (Para audiencias prácticas y orientadas a resultados) - Positivo con "tu"
"Aprende 347 palabras en alemán dedicando solo 12 minutos al día mientras preparas tu comida favorita",
# Útil + Ultra-específico - Sin "tu" por ser tema de ingresos
"Cultivo de 27 tipos de hierbas aromáticas en 1.5 metros cuadrados de balcón con resultados sorprendentes",
# Útil + Ultra-específico - Sin "tu" por ser tema de problema
"Automatización del 89% de tareas administrativas con solo 31 minutos cada lunes",
# Urgente + Único (Para ofertas especiales y lanzamientos) - Sin "tu"
"Un cartero rural comparte su sistema de gestión del tiempo por tiempo limitado",
# Urgente + Único - Sin "tu"
"La última clase del profesor más longevo de Oxford revela su método de memorización disponible esta semana",
# Urgente + Único - Sin "tu"
"El manuscrito perdido de un monje escriba sale a la luz tras 80 años en el Vaticano - acceso por tiempo limitado",
# Único + Ultra-específico (Para diferenciación basada en datos) - Sin "tu"
"Un grupo de 1457 abuelas italianas entrena una IA para reconocer pasta al dente con 99.7% de precisión",
# Único + Ultra-específico - Sin "tu"
"La técnica de un bibliotecario jubilado cataloga 47893 libros en 73 días usando un sistema de fichas de colores",
# Único + Ultra-específico - Positivo con "tu"
"Un taxista noruego fotografía 12437 auroras boreales usando técnicas que puedes aplicar con tu smartphone",
# Útil + Urgente (Para motivar acción inmediata) - Positivo con "tu"
"Aprende a crear un huerto urbano en tu espacio disponible antes del cambio de temporada",
# Útil + Urgente - Sin "tu" por ser tema financiero
"Programa de ahorro energético con plazas limitadas antes del aumento de tarifas",
# Útil + Urgente - Positivo con "tu"
"Registra el nombre para tu proyecto creativo mientras los dominios premium siguen disponibles",
# Útil + Único + Ultra-específico (Para establecer autoridad y credibilidad) - Sin "tu"
"La técnica de un cartero rural ayuda a 1893 personas a organizar el tiempo usando solo 17 minutos cada mañana",
# Útil + Único + Ultra-específico - Sin "tu" por ser tema financiero
"Un bibliotecario retirado desarrolla un método para valorar libros antiguos con resultados notables en 73 días",
# Útil + Único + Ultra-específico - Sin "tu"
"Una abuela italiana entrena algoritmos que reducen el tiempo de cocción un 82% manteniendo el sabor tradicional",
# Útil + Urgente + Ultra-específico (Para ofertas con beneficios medibles) - Positivo con "tu"
"Aprende 478 palabras en japonés en 21 días con acceso a tu curso antes del ajuste de precio",
# Útil + Urgente + Ultra-específico - Sin "tu" por ser tema financiero
"Automatización del 95% de procesos contables en 7 días previo a la nueva normativa fiscal",
# Útil + Urgente + Ultra-específico - Sin "tu" por ser tema financiero
"Desarrollo de 7 fuentes de ingresos alternativos en 30 días antes del cambio en las regulaciones",
# Único + Urgente + Ultra-específico (Para lanzamientos exclusivos)
"El sistema de un monje copista digitaliza 7345 manuscritos en 31 días últimas plazas disponibles",
"La fórmula de un taxista fotografía 893 auroras boreales perfectas registro exclusivo esta semana",
"El método de un bibliotecario jubilado organiza 47893 archivos en 73 días acceso limitado",
# Útil + Único + Urgente (Para ofertas transformadoras)
"La técnica de un cartero rural transforma tu productividad antes del fin de semana",
"El sistema de una abuela italiana revoluciona tu forma de cocinar registro beta por 24 horas",
"El método de un bibliotecario maximiza tu capacidad de aprendizaje plazas limitadas"
],
"consejos_uso": [
"Asegura que cada elemento U refuerce a los demás",
"Mantén un equilibrio entre urgencia y credibilidad",
"Usa datos específicos para aumentar la confianza",
"Adapta el orden de los elementos según tu audiencia",
"Evita exageraciones que puedan generar desconfianza",
"Combina los elementos de forma natural y fluida",
"Asegúrate de que cada elemento añada valor real",
"Prueba diferentes combinaciones para encontrar las más efectivas"
]
}
}
# Función para generar titulares usando el modelo de IA
def generate_random_headlines(target_audience, product, angle=None, story_prompt=None, language="español",
model=None, number_of_headlines=3, temperature=0.7, persona=None,
objective=None, file_content="", image_parts=None):
"""
Genera titulares aleatorios para anuncios de Facebook basados en fórmulas persuasivas.
Args:
target_audience: Descripción del público objetivo
product: El producto o servicio que se anuncia
angle: El ángulo estratégico seleccionado (opcional)
story_prompt: Tema específico para la historia del anuncio (opcional)
language: Idioma objetivo para el anuncio (default: "español")
model: El modelo de IA a utilizar (si se proporciona)
number_of_headlines: Número de titulares a generar (default: 3)
temperature: Nivel de creatividad para la generación (default: 0.7)
persona: Personalidad o tono para la generación (default: None)
objective: Objetivo de marketing del anuncio (default: None)
file_content: Contenido de archivo adicional para contexto (default: "")
image_parts: Imágenes para referencia (default: None)
Returns:
str: Titulares generados en formato numerado
"""
# Si se proporciona un modelo, usar generate_headlines_with_model con selección aleatoria
if model:
return generate_headlines_with_model(
model=model,
target_audience=target_audience,
product=product,
selected_formula=None, # Esto hará que se seleccione una fórmula al azar
selected_angle=angle,
number_of_headlines=number_of_headlines,
temperature=temperature,
persona=persona,
story_prompt=story_prompt,
objective=objective,
file_content=file_content,
image_parts=image_parts
)
# Si no hay modelo, implementar una lógica alternativa
else:
# Seleccionar una fórmula al azar
formula_name = random.choice(list(headline_formulas.keys()))
selected_formula = headline_formulas[formula_name]
print(f"Fórmula seleccionada aleatoriamente: {formula_name}")
# Seleccionar ejemplos aleatorios de la fórmula
examples = random.sample(selected_formula['examples'], min(number_of_headlines, len(selected_formula['examples'])))
# Formatear los ejemplos como titulares numerados
formatted_headlines = "\n".join([f"{i+1}. {headline}" for i, headline in enumerate(examples)])
return formatted_headlines
# Función para generar titulares usando el modelo de IA
def generate_headlines_with_model(model, target_audience, product, selected_formula=None, selected_angle="NINGUNO",
number_of_headlines=3, temperature=0.7, persona=None, story_prompt=None,
objective=None, file_content="", image_parts=None):
"""
Genera titulares usando un modelo de lenguaje avanzado.
Args:
model: El modelo de lenguaje a utilizar (ya inicializado)
target_audience: Descripción del público objetivo
product: El producto o servicio que se anuncia
selected_formula: La fórmula seleccionada para generar los titulares (si es None, se selecciona al azar)
selected_angle: El ángulo estratégico seleccionado (default: "NINGUNO")
number_of_headlines: Número de titulares a generar (default: 3)
temperature: Nivel de creatividad para la generación (default: 0.7)
persona: Personalidad o tono para la generación (default: None)
story_prompt: Tema específico para la historia del anuncio (default: None)
objective: Objetivo de marketing del anuncio (default: None)
file_content: Contenido de archivo adicional para contexto (default: "")
image_parts: Imágenes para referencia (default: None)
Returns:
str: Los titulares generados en formato numerado
"""
# Si no se proporciona una fórmula, seleccionar una al azar
if selected_formula is None:
formula_name = random.choice(list(headline_formulas.keys()))
selected_formula = headline_formulas[formula_name]
print(f"Fórmula seleccionada aleatoriamente: {formula_name}")
# Crear la instrucción para generar los titulares
headlines_instruction = f"""
Actúa como un experto en copywriting y marketing digital especializado en titulares persuasivos.
Genera exactamente {number_of_headlines} titulares persuasivos para un anuncio de Facebook dirigido a {target_audience} sobre {product}.
Utiliza la siguiente fórmula de copywriting como guía:
{selected_formula['description']}
Ejemplos de titulares con esta fórmula:
{selected_formula['examples'][:3]}
"""
# Add specific instructions about avoiding direct address
headlines_instruction += """
IMPORTANTE SOBRE EL USO DE PRONOMBRES:
- Evita usar "tú", "te", "tu", "tus", "contigo" y otros pronombres de segunda persona directa
- En su lugar, usa construcciones en tercera persona o impersonales
- Reemplaza "¿Te sientes...?" con "¿Quién no se ha sentido...?" o "¿Cómo se siente cuando...?"
- Usa construcciones impersonales: "Es posible..." en lugar de "Tú puedes..."
- Emplea voz pasiva cuando sea apropiado para evitar el uso directo
- Usa artículos y pronombres indefinidos: "uno", "quien", "quienes", "la persona que..."
- Crea un sentido de comunidad con "quienes buscan...", "para aquellos que desean..."
EJEMPLOS DE TRANSFORMACIÓN:
- En lugar de: "¿Te sientes identificada con el síndrome de la súper mamá?"
Usar: "El síndrome de la súper mamá: ¿un desafío común entre madres profesionales?"
- En lugar de: "Comparte tu experiencia con el síndrome de la súper mamá"
Usar: "Experiencias reales con el síndrome de la súper mamá"
- En lugar de: "¿Cómo manejas tú el estrés diario?"
Usar: "Estrategias efectivas para manejar el estrés diario"
"""
# Add verification step for headlines
headlines_instruction += """
VERIFICACIÓN FINAL DE TITULARES:
Después de crear cada titular, verifica que:
1. NO use pronombres de segunda persona (tú, te, tu, tus)
2. NO haga referencia directa a características personales del lector
3. Mantenga un tono inclusivo sin dirigirse directamente al lector
4. Use construcciones en tercera persona o impersonales
5. Si es una pregunta, esté formulada de manera general o impersonal
6. NO incluya afirmaciones de ingresos específicos (como "$10,000 mensuales")
7. NO haga promesas de resultados garantizados o irreales
8. NO use tácticas de escasez falsas ("solo quedan 5 unidades")
9. NO haga afirmaciones médicas no verificadas
10. Evite lenguaje sensacionalista o exagerado
Si un titular no cumple con estos criterios, reescríbelo antes de incluirlo.
"""
# Añadir el ángulo emocional si se proporciona
if selected_angle and selected_angle != "NINGUNO":
headlines_instruction += f"""
Incorpora este ángulo emocional en los titulares:
{selected_angle}
"""
# Añadir el objetivo de marketing si se proporciona
if objective and objective != "NINGUNO":
headlines_instruction += f"""
El objetivo de marketing del anuncio es: {objective}
Asegúrate de que los titulares estén alineados con este objetivo.
"""
# Añadir el prompt de historia si se proporciona
if story_prompt and story_prompt.strip():
headlines_instruction += f"""
Incorpora elementos de esta historia o tema en los titulares:
{story_prompt}
"""
# Añadir la personalidad o tono si se proporciona
if persona and persona != "NINGUNO":
headlines_instruction += f"""
Utiliza este tono o personalidad en los titulares:
{persona}
"""
# Añadir contenido de archivo como contexto adicional si se proporciona
if file_content and file_content.strip():
headlines_instruction += f"""
Considera este contenido adicional como contexto para los titulares:
{file_content[:1000]} # Limitamos a 1000 caracteres para evitar tokens excesivos
"""
# Instrucciones finales para el formato
headlines_instruction += """
Importante:
1. Numera cada titular (1., 2., 3., etc.)
2. Cada titular debe ser único y persuasivo
3. Adapta la fórmula al producto y audiencia específicos
4. No uses comillas ni símbolos especiales innecesarios
5. Mantén un tono conversacional y natural
Solo devuelve los titulares numerados, sin explicaciones adicionales.
"""
# Usar el modelo para generar los titulares
try:
# Si hay imágenes, incluirlas en la solicitud
parts = [headlines_instruction]
if image_parts:
parts.extend(image_parts)
chat_session = model.start_chat(
history=[
{
"role": "user",
"parts": parts,
},
]
)
# Ajustar la temperatura según el parámetro
generation_config = {
"temperature": float(temperature) if temperature else 0.7,
}
response = chat_session.send_message(headlines_instruction, generation_config=generation_config)
generated_headlines = response.text
return generated_headlines
except Exception as e:
return f"Error al generar titulares: {str(e)}"