JeCabrera's picture
Update app.py
7a58fb8 verified
raw
history blame
4.39 kB
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)