|
import streamlit as st |
|
import google.generativeai as genai |
|
import os |
|
from dotenv import load_dotenv |
|
import textwrap |
|
|
|
|
|
load_dotenv() |
|
|
|
|
|
genai.configure(api_key=os.getenv("GEMINI_API_KEY")) |
|
|
|
|
|
def to_markdown(text): |
|
return textwrap.indent(text, '> ', predicate=lambda _: True) |
|
|
|
|
|
def generate_opening_paragraph(target_audience, product, temperature, text_type, model_name): |
|
|
|
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) |
|
|
|
|
|
st.title("Generador de Párrafos de Apertura") |
|
|
|
|
|
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"]) |
|
|
|
|
|
submit_btn = st.form_submit_button("Generar Párrafo de Apertura") |
|
|
|
|
|
if st.button("Empezar de nuevo"): |
|
target_audience = "" |
|
product = "" |
|
temperature = 0.5 |
|
text_type = "Página de Ventas" |
|
model_selector = "gemini-1.5-flash" |
|
|
|
|
|
if submit_btn: |
|
|
|
output_text = generate_opening_paragraph(target_audience, product, temperature, text_type, model_selector) |
|
st.markdown(output_text) |
|
|