Spaces:
Sleeping
Sleeping
| from dotenv import load_dotenv | |
| import streamlit as st | |
| import os | |
| import google.generativeai as genai | |
| # Cargar las variables de entorno | |
| load_dotenv() | |
| # Configurar la API de Google | |
| genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) | |
| # Fórmulas con ejemplos y explicaciones | |
| benefits_formulas = { | |
| "GPS": { | |
| "description": """ | |
| La fórmula GPS (Goal-Period-Solution) crea bullets persuasivos mezclando humor y seriedad, usando lenguaje simple y directo: | |
| 1. **Meta** (Goal): | |
| ¿Qué desea lograr el lector? | |
| - Resultado deseable | |
| - Transformación llamativa | |
| - Logro interesante | |
| - Mejora notable | |
| 2. **Periodo** (Period): | |
| ¿En qué marco temporal? | |
| - Momento cotidiano | |
| - Rutina diaria | |
| - Actividad común | |
| - Situación familiar | |
| 3. **Superación de Obstáculo** (Solution): | |
| Conectores variados con toque de humor: | |
| - sin (ausencia) | |
| - incluso si (desafío) | |
| - aunque (contraste) | |
| - a pesar de (adversidad) | |
| - cuando (circunstancia) | |
| - aun con (limitación) | |
| - mientras (simultaneidad) | |
| - por más que (intensidad) | |
| Los bullets debe ser comprensibles y ocasionalmente divertidos. | |
| """, | |
| "examples": [ | |
| # Humor + Cotidiano | |
| "Domina el arte de la inversión mientras te cepillas los dientes incluso si confundes Excel con PowerPoint", | |
| # Situación Graciosa | |
| "Aprende un nuevo idioma durante tus visitas al baño aunque solo sepas decir gracias y por favor", | |
| # Exageración Divertida | |
| "Conquista el miedo a hablar en público durante el desayuno a pesar de que te tiemblen hasta las pestañas", | |
| # Contraste Humorístico | |
| "Desarrolla músculos preparando café cuando levantar la taza te parece ejercicio extremo", | |
| # Situación Relatable | |
| "Domina la fotografía profesional en el supermercado aun con ese celular que sobrevivió tres caídas", | |
| # Humor Cotidiano | |
| "Cultiva un huerto mientras contestas emails aunque tu única planta sobreviviente sea de plástico", | |
| # Autorreferencial | |
| "Escribe tu bestseller mientras te duchas por más que tu gato sea tu único fan", | |
| # Situación Común | |
| "Aprende meditación lavando platos ni siquiera necesitas ponerte en pose pretzel", | |
| # Exageración | |
| "Domina el trading paseando al perro incluso si las matemáticas te dan alergia", | |
| # Contraste Divertido | |
| "Transforma tu postura en videollamadas aunque tu silla parezca instrumento de tortura medieval", | |
| # Situación Familiar | |
| "Aprende a tocar la guitarra cocinando aunque tus vecinos amenacen con mudarse", | |
| # Humor Autoderrisivo | |
| "Mejora tu inglés cantando en la ducha a pesar de que suenes como gato en febrero", | |
| # Realidad Común | |
| "Desarrolla tu marca personal haciendo la colada cuando Instagram te parece ciencia espacial", | |
| # Situación Real | |
| "Domina el networking comprando el pan aun con tu talento para olvidar nombres", | |
| # Humor + Verdad | |
| "Construye tu portfolio mientras ves series aunque tu sofá tenga poderes hipnóticos", | |
| # Exageración Graciosa | |
| "Aprende programación jugando con tus hijos por más que tu computadora sea del jurásico", | |
| # Situación Cotidiana | |
| "Domina la cocina saludable ordenando tu escritorio incluso si hervir agua es tu especialidad", | |
| # Realidad + Humor | |
| "Conquista Instagram esperando el metro hasta con fotos de tu almuerzo congelado", | |
| # Contraste Gracioso | |
| "Transforma tu rutina de ejercicios contestando emails incluso si tu idea de deporte es buscar el control remoto", | |
| # Humor + Aspiración | |
| "Desarrolla músculos de acero haciendo las compras aunque las bolsas del super sean tu único peso" | |
| ] | |
| }, | |
| "Númerica Suprema": { | |
| "description": """ | |
| La Fórmula Suprema de Istvanova combina 5 elementos clave más artículos plurales para crear bullets persuasivos e interesantes: | |
| 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...) | |
| - Crean estructura y expectativas claras | |
| - Se combinan con artículos: "Los 5...", "Las 3..." | |
| 3. **Adjetivo** (A): | |
| - Emocionales y descriptivos | |
| - Conectan con deseos/miedos | |
| - Ejemplos: poderosos, simples, efectivos, revolucionarios | |
| 4. **Palabra Clave** (P): | |
| - Término central del beneficio en plural | |
| - Fácil de entender y recordar | |
| - Ejemplos: métodos, estrategias, técnicas, secretos | |
| 5. **Razón** (R): | |
| - Justifica el beneficio | |
| - Añade credibilidad | |
| - Conecta con la motivación del lector | |
| 6. **Promesa** (P): | |
| - Resultado específico y medible | |
| - Timeframe realista | |
| - Beneficio final atractivo | |
| 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": [ | |
| "Los 3 rituales probados para dormir mejor.", | |
| "Las 5 rutinas efectivas para fortalecer tu core.", | |
| "Los 7 hábitos esenciales para aumentar productividad.", | |
| "Las 3 técnicas comprobadas para dormir mejor basadas en neurociencia.", | |
| "Los 5 movimientos efectivos para fortalecer tu core sin equipamiento.", | |
| "Las 7 estrategias esenciales para aumentar productividad sin estrés.", | |
| "Los 3 métodos científicos para dormir mejor basados en los últimos descubrimientos de la neurociencia del sueño que transformarán tus noches.", | |
| "Las 5 secuencias efectivas para fortalecer tu core descubiertas por fisioterapeutas olímpicos que puedes hacer en casa.", | |
| "Los 7 sistemas revolucionarios para aumentar productividad desarrollados por CEOs que duplicarán tus resultados." | |
| ], | |
| "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, trucos, hábitos" | |
| }, | |
| "femenino_plural": { | |
| "artículo": "las", | |
| "ejemplos_palabras": "técnicas, estrategias, rutinas, tácticas, claves" | |
| } | |
| }, | |
| "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 bullet", | |
| "Combina artículos con números de forma natural", | |
| "Asegura que la palabra clave esté en plural" | |
| ] | |
| }, | |
| "AIDA": { | |
| "description": """ | |
| La fórmula AIDA se aplica de manera flexible y estratégica, combinando 1-4 elementos para bullets impactantes y naturales: | |
| 1. **Atención** (A): | |
| Ganchos de apertura poderosos: | |
| - "¿Sabías que...?" + dato sorprendente | |
| - Mini-historia disruptiva | |
| - Idea contraintuitiva | |
| - Descubrimiento inesperado | |
| - Analogía poderosa | |
| - "La mayoría no sabe que..." | |
| - "Contrario a lo que piensas..." | |
| - "Me sorprendió descubrir que..." | |
| 2. **Interés** (I): | |
| Desarrollo del gancho inicial: | |
| - Detalles específicos y relevantes | |
| - Conexión problema-solución inesperada | |
| - Beneficios únicos y memorables | |
| - Puente situación actual-resultado | |
| - "La razón es simple..." | |
| - "Lo fascinante es que..." | |
| - "Y lo mejor de todo..." | |
| - "Lo que hace la diferencia es..." | |
| 3. **Deseo** (D): | |
| Amplificación emocional: | |
| - Imagen vivida del resultado | |
| - Experiencia personalizada | |
| - Prueba social natural | |
| - Toque de exclusividad | |
| - Conexión emocional profunda | |
| - "Imagina poder..." | |
| - "Piensa cómo sería..." | |
| - "Esto significa que podrás..." | |
| 4. **Acción** (A): | |
| Cierre natural: | |
| - Siguiente paso simple | |
| - Baja fricción para comenzar | |
| - Gratificación inmediata | |
| - Primer paso sencillo | |
| - Seguridad fluida | |
| - "Pruébalo hoy mismo..." | |
| - "Comienza con un simple..." | |
| - "Solo necesitas..." | |
| Combinaciones estratégicas: | |
| - A + I: Para despertar curiosidad y explicar el valor | |
| - A + D: Para conectar problema con deseo | |
| - I + D: Para construir deseo desde la lógica | |
| - I + D + A: Para construir convicción y motivar | |
| - A + I + D: Para educar, intrigar y crear anhelo | |
| Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia. | |
| """, | |
| "examples": [ | |
| # A (dato sorprendente) + I (conexión) + D (prueba social) + A (paso simple) | |
| "¿Sabías que el 83% de los emprendedores exitosos dedican menos de 2 horas al día a reuniones? Lo fascinante es que usan un método japonés de gestión que les permite triplicar su productividad, y puedes empezar hoy mismo.", | |
| # A (contraintuitivo) + I (beneficio) + D (resultado) + A (inicio) | |
| "La mayoría no sabe que existe una técnica de ventas basada en videojuegos, está revolucionando el mercado B2B, genera resultados inmediatos y puedes aprenderla en 20 minutos.", | |
| # A (disruptivo) + I (detalle) + D (resultado) | |
| "Contrario a lo que piensas, el momento más productivo del día no es por la mañana, sino durante una ventana de tiempo inesperada que duplicará tu capacidad de concentración.", | |
| # A (descubrimiento) + I (solución) + D (prueba) | |
| "Me sorprendió descubrir que los mejores vendedores nunca memorizan scripts, usan una técnica secreta de improvisación.", | |
| # I (método único) + D (transformación) + A (acción) | |
| "Esta técnica revolucionaria de aprendizaje está transformando cómo los profesionales dominan nuevas habilidades, pruébala hoy con solo 10 minutos.", | |
| # I (innovación) + D (beneficio) + A (inicio) | |
| "El método del empresario silencioso cambia las reglas del networking moderno, empieza con un simple ejercicio.", | |
| # A (pregunta gancho) + D (resultado) + A (implementación) | |
| "¿Sabías que existe un ritual zen que está transformando la productividad en Silicon Valley? Implementalo mañana mismo.", | |
| # A (analogía) + D (promesa) + A (descubrimiento) | |
| "Como el bambú japonés, este método crece silenciosamente hasta que explota en resultados, descubre cómo en 5 minutos.", | |
| # A (mayoría) + I (validación) + A (acción) | |
| "La mayoría desconoce el mejor momento para tomar decisiones importantes, la ciencia lo confirma, implementa este descubrimiento hoy.", | |
| # A (mini-cambio) + I (resultado) + A (inicio) | |
| "Un pequeño cambio en tu rutina de email desencadenará mejoras exponenciales, comienza ahora." | |
| # A + I + D + A (metáfora natural) | |
| "Como el bambú japonés, este método crece invisible hasta explotar en resultados que transformarán tu negocio", | |
| # A + I + D + A (analogía deportiva) | |
| "Los atletas olímpicos entrenan menos horas pero logran más que sus rivales gracias a esta técnica de productividad japonesa", | |
| # A + I + D (metáfora de naturaleza) | |
| "Al igual que las abejas construyen colmenas perfectas, este sistema organiza tu tiempo en patrones de máxima eficiencia", | |
| # A + I + D (analogía artística) | |
| "Como un director de orquesta que guía sin palabras, este método de ventas fluye naturalmente en cada conversación", | |
| # I + D + A (metáfora de agua) | |
| "Este sistema de aprendizaje fluye como un río, adaptándose naturalmente a tu estilo mientras potencia tus habilidades", | |
| # I + D + A (analogía arquitectónica) | |
| "Como los antiguos arquitectos japoneses que construían sin clavos, este método de networking conecta sin forzar relaciones", | |
| # A + D + A (metáfora zen) | |
| "Similar al jardín zen que revela su belleza gradualmente, esta rutina matutina despliega tu potencial día tras día", | |
| # A + D + A (analogía natural) | |
| "Como el roble que crece firme ante las tormentas, este método fortalece tu productividad en tiempos de caos", | |
| # A + I + A (metáfora lunar) | |
| "Al igual que la luna influye en las mareas, la neurociencia revela los ciclos naturales de tu productividad máxima", | |
| # A + I + A (analogía culinaria) | |
| "Como un chef que transforma ingredientes simples en obras maestras, este sistema eleva tu rutina diaria a resultados extraordinarios" | |
| ] | |
| }, | |
| "4U": { | |
| "description": """ | |
| La fórmula 4U se aplica de manera flexible y estratégica, combinando 1-4 elementos para crear bullets impactantes y naturales: | |
| 1. **Útil** (Useful): | |
| Beneficios prácticos y tangibles: | |
| - "Cómo conseguir..." + resultado específico | |
| - "La guía paso a paso para..." | |
| - "El método probado que..." | |
| - "Descubre la forma de..." | |
| - "Aprende a..." + beneficio concreto | |
| - "La solución definitiva para..." | |
| - "El sistema que te permite..." | |
| - "La estrategia que garantiza..." | |
| 2. **Urgente** (Urgent): | |
| Motivadores de acción inmediata: | |
| - "Última oportunidad para..." | |
| - "Solo disponible hasta..." | |
| - "Antes de que sea tarde..." | |
| - "Mientras aún hay tiempo..." | |
| - "No esperes a que..." | |
| - "Aprovecha ahora..." | |
| - "La oferta expira en..." | |
| - "Date prisa antes de que..." | |
| 3. **Único** (Unique): | |
| Diferenciadores memorables: | |
| - "El método poco conocido..." | |
| - "La técnica contraintuitiva..." | |
| - "El descubrimiento sorprendente..." | |
| - "La estrategia secreta..." | |
| - "El sistema revolucionario..." | |
| - "El enfoque innovador..." | |
| - "La solución inesperada..." | |
| - "El método exclusivo..." | |
| 4. **Ultra-específico** (Ultra-specific): | |
| Detalles precisos y medibles: | |
| - Números exactos: "27 técnicas..." | |
| - Tiempos concretos: "13 minutos..." | |
| - Resultados medibles: "63% más..." | |
| - Pasos definidos: "3 pasos..." | |
| - Datos precisos: "8.3 veces más..." | |
| - Métricas claras: "2.5x más rápido..." | |
| - Cantidades específicas: "97 personas..." | |
| - Plazos definidos: "21 días..." | |
| Combinaciones estratégicas: | |
| - Útil + Ultra-específico: Para audiencias prácticas y orientadas a resultados | |
| - Urgente + Único: Para ofertas especiales y lanzamientos | |
| - Único + Ultra-específico: Para diferenciación basada en datos | |
| - Útil + Urgente: Para motivar acción inmediata | |
| - Útil + Único + Ultra-específico: Para establecer autoridad y credibilidad | |
| - Útil + Urgente + Ultra-específico: Para ofertas con beneficios medibles | |
| - Único + Urgente + Ultra-específico: Para lanzamientos exclusivos | |
| - Útil + Único + Urgente: Para ofertas transformadoras | |
| - Las 4U juntas: Para máximo impacto en ofertas premium | |
| Cada titular debe mantener un tono conversacional y evitar parecer una fórmula obvia. | |
| """, | |
| "examples": [ | |
| # Útil + Ultra-específico (Para audiencias prácticas y orientadas a resultados) | |
| "Aprende 347 palabras en alemán memorizando solo 12 minutos al día mientras cocinas", | |
| "Cultiva 27 tipos de hierbas aromáticas en 1.5 metros cuadrados de balcón generando 180 euros mensuales", | |
| "Automatiza 89% de tus tareas administrativas dedicando 31 minutos cada lunes", | |
| # Urgente + Único (Para ofertas especiales y lanzamientos) | |
| "Un cartero rural comparte su sistema de gestión del tiempo antes de su retiro definitivo", | |
| "La última clase del profesor más longevo de Oxford revela su método de memorización", | |
| "El manuscrito perdido de un monje escriba sale a la luz tras 80 años en el Vaticano", | |
| # Único + Ultra-específico (Para diferenciación basada en datos) | |
| "Un grupo de 1457 abuelas italianas entrena una IA para reconocer pasta al dente con 99.7% de precisión", | |
| "La técnica de un bibliotecario jubilado cataloga 47893 libros en 73 días usando fichas de colores", | |
| "Un taxista noruego fotografía 12437 auroras boreales usando un iPhone 6 y tres filtros caseros", | |
| # Útil + Urgente (Para motivar acción inmediata) | |
| "Aprende a crear tu huerto urbano antes de que suban los precios de las verduras", | |
| "Asegura tu plaza en el programa de ahorro energético antes del aumento de tarifas", | |
| "Registra tu marca personal mientras el dominio premium sigue disponible", | |
| # Útil + Único + Ultra-específico (Para establecer autoridad y credibilidad) | |
| "La técnica de un cartero rural ayuda a 1893 personas a organizar su tiempo usando solo 17 minutos cada mañana", | |
| "Un bibliotecario retirado genera 12437 euros vendiendo libros antiguos por menos de 3 euros cada uno", | |
| "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) | |
| "Aprende 478 palabras en japonés en 21 días antes del aumento de precio del programa", | |
| "Automatiza 95% de tu contabilidad en 7 días previo a la nueva normativa fiscal", | |
| "Genera 7 fuentes de ingresos pasivos 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 bullets de beneficios | |
| def generate_benefits(number_of_benefits, target_audience, product, temperature, selected_formula): | |
| # Crear la configuración del modelo | |
| generation_config = { | |
| "temperature": temperature, | |
| "top_p": 0.65, # Considerar un poco menos de palabras probables | |
| "top_k": 360, # Aumentar las palabras candidatas para más variedad | |
| "max_output_tokens": 8196, # Mantenerlo igual, pero puedes aumentar si deseas más detalle | |
| } | |
| model = genai.GenerativeModel( | |
| model_name="gemini-2.0-flash", | |
| generation_config=generation_config, | |
| ) | |
| # Incluir las instrucciones del sistema en el prompt principal | |
| system_prompt = """Eres un copywriter experto de clase mundial, con experiencia en crear beneficios que conectan emocionalmente y abordan los deseos, problemas y motivaciones de la audiencia objetivo. | |
| OBJETIVO: | |
| - Generar bullets de beneficios convincentes y específicos en español | |
| - Conectar emocionalmente con la audiencia | |
| - Abordar deseos, problemas y motivaciones reales | |
| - Mantener un lenguaje natural y conversacional | |
| - Orientar cada beneficio a la acción | |
| REGLAS DE FORMATO: | |
| - Cada beneficio debe comenzar con "• " | |
| - Un beneficio por línea | |
| - Sin números al inicio | |
| - Sin explicaciones ni categorías | |
| - Añadir un salto de línea entre cada beneficio | |
| - Nunca incluir símbolos : en los bullets | |
| - Cada beneficio debe ser una frase completa y concisa | |
| ESTRUCTURA DE CADA BENEFICIO: | |
| - Debe ser relevante para la audiencia objetivo | |
| - Debe mostrar un resultado específico | |
| - Debe incluir un elemento emocional | |
| - Debe eliminar una objeción o dolor | |
| - Debe inspirar acción inmediata | |
| EJEMPLO DE FORMATO: | |
| • Transforma tu negocio con estrategias probadas que duplican tus ingresos en 90 días, sin sacrificar tu tiempo en familia. | |
| • Domina las técnicas más efectivas para conquistar tu mercado, mientras mantienes el equilibrio entre trabajo y vida personal. | |
| • Implementa sistemas automatizados que hacen crecer tu empresa incluso mientras duermes, eliminando la necesidad de trabajar más horas. | |
| IMPORTANTE: | |
| - Cada beneficio debe ser único y específico | |
| - Evitar repeticiones y generalidades | |
| - Mantener un tono persuasivo pero honesto | |
| - Adaptar el lenguaje al nivel de comprensión de la audiencia | |
| - Enfocarse en resultados tangibles y medibles""" | |
| # Crear un mensaje para el modelo, destacando la audiencia, el producto, la fórmula seleccionada y los ejemplos | |
| benefits_instruction = ( | |
| f"{system_prompt}\n\n" | |
| f"Tu tarea es crear {number_of_benefits} beneficios irresistibles diseñados para {target_audience}. " | |
| f"El objetivo es mostrar cómo {product} puede transformar la vida del lector, conectando de forma natural y emocional. " | |
| f"Evita usar menciones literales o repetitivas, y destaca soluciones concretas, mostrando cómo el producto elimina obstáculos o satisface deseos reales. " | |
| f"Usa la fórmula seleccionada como guía:\n\n{selected_formula['description']}\n\n" | |
| f"Inspírate en estos ejemplos:\n" | |
| f"- {selected_formula['examples'][0]}\n" | |
| f"- {selected_formula['examples'][1]}\n" | |
| f"- {selected_formula['examples'][2]}\n\n" | |
| f"Tu objetivo es inspirar deseo y acción, evitando explicaciones o categorías en la respuesta." | |
| ) | |
| chat_session = model.start_chat( | |
| history=[ | |
| { | |
| "role": "user", | |
| "parts": [benefits_instruction], | |
| }, | |
| ] | |
| ) | |
| response = chat_session.send_message("Genera los beneficios") # Enviar mensaje para obtener la respuesta | |
| return response.text # Regresar la respuesta directamente | |
| # Configurar la interfaz de usuario con Streamlit | |
| st.set_page_config(page_title="Bullet Benefits Generator", layout="wide") | |
| # Leer el contenido del archivo manual.md | |
| with open("manual.md", "r", encoding="utf-8") as file: | |
| manual_content = file.read() | |
| # Mostrar el contenido del manual en el sidebar | |
| st.sidebar.markdown(manual_content) | |
| # Ocultar elementos de la interfaz | |
| st.markdown(""" | |
| <style> | |
| /* Reducir espacio superior */ | |
| .block-container { | |
| padding-top: 1rem; | |
| padding-bottom: 5rem; | |
| } | |
| /* Ajustar espaciado del título */ | |
| h1 { | |
| margin-top: 0rem; | |
| padding-top: 1rem; | |
| } | |
| /* Ajustar espaciado del subtítulo */ | |
| h4 { | |
| margin-top: 0.5rem; | |
| padding-top: 0rem; | |
| } | |
| </style> | |
| """, unsafe_allow_html=True) | |
| # Centrar el título y el subtítulo | |
| st.markdown("<h1 style='text-align: center;'>Bullet Benefits Generator</h1>", unsafe_allow_html=True) | |
| st.markdown("<h4 style='text-align: center;'>Transforma características en beneficios irresistibles que conectan emocionalmente con tu audiencia.</h4>", unsafe_allow_html=True) | |
| # Añadir CSS personalizado para el botón | |
| st.markdown(""" | |
| <style> | |
| div.stButton > button { | |
| background-color: #FFCC00; | |
| color: black; | |
| width: 90%; | |
| height: 60px; | |
| font-weight: bold; | |
| font-size: 22px; | |
| text-transform: uppercase; | |
| border: 1px solid #000000; | |
| border-radius: 8px; | |
| display: block; | |
| margin: 0 auto; | |
| } | |
| div.stButton > button:hover { | |
| background-color: #FFD700; | |
| color: black; | |
| } | |
| </style> | |
| """, unsafe_allow_html=True) | |
| # Crear columnas | |
| col1, col2 = st.columns([1, 2]) | |
| # Columnas de entrada | |
| with col1: | |
| target_audience = st.text_input("¿Quién es tu público objetivo?", placeholder="Ejemplo: Estudiantes Universitarios") | |
| product = st.text_input("¿Qué producto tienes en mente?", placeholder="Ejemplo: Curso de Inglés") | |
| number_of_benefits = st.selectbox("Número de Beneficios", options=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], index=4) | |
| # Crear un único acordeón para fórmula y creatividad | |
| with st.expander("Personaliza tus beneficios"): | |
| temperature = st.slider("Creatividad", min_value=0.0, max_value=2.0, value=1.0, step=0.1) | |
| selected_formula_key = st.selectbox( | |
| "Selecciona una fórmula para tus beneficios", | |
| options=list(benefits_formulas.keys()) | |
| ) | |
| selected_formula = benefits_formulas[selected_formula_key] | |
| # Botón de enviar | |
| submit = st.button("Generar Beneficios") | |
| # Mostrar los beneficios generados | |
| if submit: | |
| if target_audience and product and selected_formula: | |
| try: | |
| # Obtener la respuesta del modelo | |
| generated_benefits = generate_benefits(number_of_benefits, target_audience, product, temperature, selected_formula) | |
| col2.markdown(f""" | |
| <div style="padding: 15px; border: 1px solid #ddd; border-radius: 8px;"> | |
| <h3>Beneficios Generados:</h3> | |
| <p>{generated_benefits}</p> | |
| </div> | |
| """, unsafe_allow_html=True) | |
| except Exception as e: | |
| col2.error(f"Error al generar beneficios: {e}") | |
| else: | |
| col2.warning("Por favor, completa todos los campos antes de generar beneficios.") |