File size: 4,392 Bytes
7a58fb8
d51e47b
 
 
 
 
 
 
 
 
 
 
7a58fb8
d51e47b
7a58fb8
d51e47b
7a58fb8
56416d9
50f0928
 
dfb7bec
50f0928
6afc2b9
50f0928
 
 
d51e47b
50f0928
56416d9
50f0928
7a58fb8
50f0928
d51e47b
50f0928
 
 
 
 
7a58fb8
 
 
 
 
 
 
 
50f0928
 
 
 
d51e47b
46b8180
 
d51e47b
7a58fb8
 
bef3dc5
7a58fb8
 
 
 
 
 
 
df1a7e0
7a58fb8
 
df1a7e0
7a58fb8
 
 
 
 
 
 
fab7ca6
7a58fb8
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import streamlit as st
import google.generativeai as genai
import os
from dotenv import load_dotenv
import textwrap

# Cargar variables de entorno
load_dotenv()

# Configurar la API de Google Gemini
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))

# Función para formatear texto en Markdown
def to_markdown(text):
    return textwrap.indent(text, '> ', predicate=lambda _: True)

# Función para generar el párrafo de apertura
def generate_opening_paragraph(target_audience, product, temperature, text_type, model_name):
    # Crear la configuración del modelo
    generation_config = {
        "temperature": temperature,
        "top_p": 0.95,
        "top_k": 62,
        "max_output_tokens": 2048,
        "response_mime_type": "text/plain",
    }

    model = genai.GenerativeModel(
        model_name=model_name,
        generation_config=generation_config,
        system_instruction=f"Eres un especialista en copywriting altamente capacitado, enfocado en la creación de textos persuasivos que logran captar la atención del lector, mantener su interés y llevarlo a la acción. Tienes una profunda comprensión de la psicología del consumidor, y utilizas la persuasión de manera efectiva en cada palabra que escribes, conectando con las emociones y necesidades de tu audiencia. Dominas técnicas avanzadas de redacción, como el uso de encabezados poderosos, aperturas intrigantes, llamados a la acción efectivos y storytelling cautivador. Tu habilidad para ajustar el tono y estilo al contexto asegura que cada mensaje resuene profundamente. Tienes una amplia experiencia demostrada en generar resultados de ventas tanto para negocios en línea como offline. Las respuestas deben presentarse en formato de texto, en párrafos, sin mencionar directamente el producto o servicio, ni referirse al público objetivo de manera explícita. Al responder escribe un encabezado que diga: 'Este es tu párrafo de apertura para cautivar a {target_audience}'"
    )

    chat_session = model.start_chat(
        history=[
            {
                "role": "user",
                "parts": [
                    f"Crea un párrafo de apertura para una {text_type.lower()} que haga conciente a {target_audience} que tiene un problema explicándolos con situaciones reales de su vida, utiliza un lenguaje natural o conversacional. El objetivo de este párrafo es que tengan el deseo de seguir leyendo este párrafo y saber de qué se trata {product}. Utiliza la persuasión de manera efectiva en cada palabra, dominando técnicas avanzadas como el uso de encabezados poderosos y aperturas intrigantes."
                    "Para escribir este párrafo de apertura utiliza una o algunas de estas técnicas de Apertura para Cartas de Ventas, escoge las más adecuadas:"
                    "1. Si.. Entonces"
                    "2. Si / Entonces + Autoridad"
                    "3. Honestidad"
                    "4. Sensacionalista"
                    "5. Haz una pregunta"
                    "6. 'Micro aperturas'"
                ],
            },
        ]
    )

    response = chat_session.send_message("Genera el párrafo de apertura")
    return to_markdown(response.text)

# Título de la aplicación
st.title("Generador de Párrafos de Apertura")

# Crear un formulario para la entrada del usuario
with st.form(key='my_form'):
    target_audience = st.text_input("Público Objetivo", placeholder="Ejemplo: Estudiantes Universitarios")
    product = st.text_input("Producto", placeholder="Ejemplo: Curso de Inglés")
    temperature = st.slider("Creatividad", 0.0, 1.0, 0.5, 0.1)
    text_type = st.selectbox("Tipo de Texto", ["Página de Ventas", "Correo", "Historia"])
    model_selector = st.selectbox("Selecciona el modelo", ["gemini-1.5-flash", "gemini-1.5-pro"])
    
    # Botón para enviar el formulario
    submit_btn = st.form_submit_button("Generar Párrafo de Apertura")
    
    # Botón para limpiar el formulario (reiniciar)
    if st.button("Empezar de nuevo"):
        target_audience = ""
        product = ""
        temperature = 0.5
        text_type = "Página de Ventas"
        model_selector = "gemini-1.5-flash"

# Mostrar el resultado
if submit_btn:
    # Llamar a la función para generar el párrafo
    output_text = generate_opening_paragraph(target_audience, product, temperature, text_type, model_selector)
    st.markdown(output_text)