Spaces:
Sleeping
Sleeping
| import random | |
| def generate_random_headlines(target_audience, product, angle=None, story_prompt=None, language="español"): | |
| """ | |
| Genera titulares aleatorios para anuncios de Facebook basados en plantillas predefinidas. | |
| 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") | |
| Returns: | |
| list: Lista de titulares aleatorios con diferentes estructuras | |
| """ | |
| # Categorías de plantillas para asegurar variedad | |
| headline_categories = { | |
| "pregunta": [ | |
| "¿{problema} {tiempo}? {solución}", | |
| "¿Cansado de {problema}? {descubrimiento}", | |
| "¿Sabías que {dato_sorprendente} puede {beneficio}?", | |
| "¿Por qué {grupo_personas} están {acción_positiva}?", | |
| ], | |
| "declaración": [ | |
| "El método {adjetivo} que está revolucionando {industria}", | |
| "El secreto {adjetivo} detrás de {resultado_deseado}", | |
| "{beneficio_principal} en solo {tiempo}: El método que está cambiando {industria}", | |
| "La fórmula {adjetivo} para {beneficio} que funciona incluso si {situación_negativa}", | |
| ], | |
| "historia": [ | |
| "De {situación_negativa} a {situación_positiva}: La historia que está cambiando {industria}", | |
| "Cómo {persona_común} logró {resultado_extraordinario} sin {método_común}", | |
| "La estrategia de {tiempo} que transformó {área} para miles de {grupo_personas}", | |
| ], | |
| "advertencia": [ | |
| "Alerta: {problema_común} está {consecuencia_negativa}", | |
| "Advertencia: {hábito_común} podría estar {consecuencia}", | |
| "La verdad incómoda sobre {tema} que nadie menciona", | |
| "{número} señales de que {problema} está afectando tu {área_vida}", | |
| ], | |
| "curiosidad": [ | |
| "Lo que {expertos} no quieren que sepas sobre {tema}", | |
| "Descubierto: El {elemento} que {beneficio_principal} en solo {tiempo_corto}", | |
| "El sorprendente vínculo entre {tema} y {resultado_deseado}", | |
| "La técnica olvidada que está transformando {industria}", | |
| ], | |
| } | |
| # Variables para personalizar los titulares según el contexto | |
| variables = { | |
| # Problemas comunes según el público objetivo | |
| "problema": [ | |
| "no ver resultados", | |
| "perder tiempo y dinero", | |
| "sentir frustración", | |
| "quedarse estancado", | |
| "ver a otros avanzar mientras uno se queda atrás" | |
| ], | |
| # Tiempos | |
| "tiempo": [ | |
| "después de tanto esfuerzo", | |
| "a pesar de intentarlo todo", | |
| "cuando más se necesita", | |
| "en momentos críticos" | |
| ], | |
| # Soluciones o descubrimientos | |
| "solución": [ | |
| "Esto está cambiando las reglas del juego", | |
| "Este enfoque está transformando resultados", | |
| "Esta estrategia podría ser la respuesta" | |
| ], | |
| "descubrimiento": [ | |
| "Este descubrimiento está sorprendiendo a expertos", | |
| "Esta innovación está cambiando paradigmas", | |
| "Este método está revolucionando la industria" | |
| ], | |
| # Datos sorprendentes | |
| "dato_sorprendente": [ | |
| "un simple cambio de enfoque", | |
| "una técnica olvidada", | |
| "un método poco conocido", | |
| "un principio ignorado por la mayoría" | |
| ], | |
| # Beneficios | |
| "beneficio": [ | |
| "transformar completamente resultados", | |
| "multiplicar efectividad", | |
| "eliminar obstáculos persistentes", | |
| "crear avances significativos" | |
| ], | |
| # Grupos de personas | |
| "grupo_personas": [ | |
| "profesionales comunes", | |
| "personas sin experiencia previa", | |
| "quienes antes fracasaban", | |
| "principiantes" | |
| ], | |
| # Acciones positivas | |
| "acción_positiva": [ | |
| "logrando resultados extraordinarios", | |
| "transformando su situación", | |
| "superando obstáculos históricos", | |
| "alcanzando metas que parecían imposibles" | |
| ], | |
| # Problemas comunes | |
| "problema_común": [ | |
| "lo que todos hacen", | |
| "el enfoque tradicional", | |
| "el método convencional", | |
| "la estrategia que todos siguen" | |
| ], | |
| # Consecuencias negativas | |
| "consecuencia_negativa": [ | |
| "saboteando el potencial", | |
| "limitando los resultados", | |
| "bloqueando el progreso", | |
| "creando obstáculos invisibles" | |
| ], | |
| # Hábitos comunes | |
| "hábito_común": [ | |
| "este hábito diario", | |
| "esta práctica común", | |
| "esta rutina aparentemente inofensiva", | |
| "esta estrategia popular" | |
| ], | |
| # Consecuencias | |
| "consecuencia": [ | |
| "estar saboteando los esfuerzos", | |
| "estar creando el efecto contrario", | |
| "estar limitando el potencial", | |
| "estar generando resultados opuestos" | |
| ], | |
| # Temas | |
| "tema": [ | |
| f"{product}", | |
| "resultados reales", | |
| "éxito sostenible", | |
| "transformación verdadera" | |
| ], | |
| # Números | |
| "número": [ | |
| "3", "5", "7", "9" | |
| ], | |
| # Áreas de vida | |
| "área_vida": [ | |
| "potencial", | |
| "resultados", | |
| "progreso", | |
| "crecimiento" | |
| ], | |
| # Situaciones negativas | |
| "situación_negativa": [ | |
| "frustración constante", | |
| "resultados mediocres", | |
| "estancamiento", | |
| "intentos fallidos" | |
| ], | |
| # Situaciones positivas | |
| "situación_positiva": [ | |
| "resultados extraordinarios", | |
| "éxito consistente", | |
| "avance continuo", | |
| "transformación completa" | |
| ], | |
| # Industrias | |
| "industria": [ | |
| "la forma de ver resultados", | |
| "la manera de lograr objetivos", | |
| "el enfoque hacia el éxito", | |
| "la perspectiva sobre el progreso" | |
| ], | |
| # Persona común | |
| "persona_común": [ | |
| "alguien sin ventajas especiales", | |
| "una persona común", | |
| "quien menos lo esperaba", | |
| "alguien que antes fracasaba" | |
| ], | |
| # Resultados extraordinarios | |
| "resultado_extraordinario": [ | |
| "transformar completamente su situación", | |
| "multiplicar sus resultados", | |
| "lograr lo que parecía imposible", | |
| "crear un avance significativo" | |
| ], | |
| # Métodos comunes | |
| "método_común": [ | |
| "usar métodos complicados", | |
| "invertir fortunas", | |
| "sacrificar tiempo valioso", | |
| "seguir el camino tradicional" | |
| ], | |
| # Adjetivos | |
| "adjetivo": [ | |
| "poco conocido", | |
| "revolucionario", | |
| "contraintuitivo", | |
| "sorprendente" | |
| ], | |
| # Resultados deseados | |
| "resultado_deseado": [ | |
| "lograr resultados reales", | |
| "crear transformación verdadera", | |
| "generar avances significativos", | |
| "superar obstáculos persistentes" | |
| ], | |
| # Expertos/competidores | |
| "expertos": [ | |
| "muchos expertos", | |
| "la mayoría de asesores", | |
| "quienes venden soluciones tradicionales", | |
| "los defensores del método convencional" | |
| ], | |
| # Elementos | |
| "elemento": [ | |
| "principio", | |
| "enfoque", | |
| "método", | |
| "sistema" | |
| ], | |
| # Beneficio principal | |
| "beneficio_principal": [ | |
| "transforma resultados", | |
| "elimina obstáculos", | |
| "multiplica efectividad", | |
| "genera avances significativos" | |
| ], | |
| # Tiempo corto | |
| "tiempo_corto": [ | |
| "semanas", | |
| "días", | |
| "pasos simples", | |
| "un proceso sencillo" | |
| ], | |
| # Obstáculos comunes | |
| "obstáculo_común": [ | |
| "complicaciones innecesarias", | |
| "inversiones costosas", | |
| "métodos complejos", | |
| "sacrificios excesivos" | |
| ], | |
| # Áreas específicas | |
| "área": [ | |
| "productividad", | |
| "confianza", | |
| "habilidades", | |
| "resultados" | |
| ], | |
| } | |
| # Personalizar variables según el ángulo seleccionado si existe | |
| if angle and 'keywords' in angle: | |
| for keyword in angle['keywords']: | |
| if "beneficio" in variables: | |
| variables["beneficio"].append(keyword) | |
| if "tema" in variables: | |
| variables["tema"].append(keyword) | |
| # Personalizar variables según el story_prompt si existe | |
| if story_prompt: | |
| if "tema" in variables: | |
| variables["tema"].append(story_prompt) | |
| if "beneficio" in variables: | |
| variables["beneficio"].append(f"resolver {story_prompt}") | |
| # Función para reemplazar variables en una plantilla | |
| def fill_template(template): | |
| filled_template = template | |
| for var_name in variables: | |
| if "{" + var_name + "}" in template: | |
| filled_template = filled_template.replace( | |
| "{" + var_name + "}", | |
| random.choice(variables[var_name]) | |
| ) | |
| return filled_template | |
| # Generar titulares de diferentes categorías para asegurar variedad | |
| headlines = [] | |
| # Seleccionar categorías diferentes para cada anuncio | |
| categories = list(headline_categories.keys()) | |
| random.shuffle(categories) | |
| # Asegurar que tenemos al menos 3 categorías diferentes | |
| selected_categories = categories[:min(3, len(categories))] | |
| # Generar un titular de cada categoría seleccionada | |
| for category in selected_categories: | |
| template = random.choice(headline_categories[category]) | |
| headline = fill_template(template) | |
| headlines.append(headline) | |
| # Si necesitamos más titulares, generar adicionales de categorías aleatorias | |
| while len(headlines) < 9: # Generar 9 titulares (3 para cada anuncio) | |
| category = random.choice(categories) | |
| templates = headline_categories[category] | |
| template = random.choice(templates) | |
| headline = fill_template(template) | |
| # Evitar duplicados | |
| if headline not in headlines: | |
| headlines.append(headline) | |
| return headlines |