Update app.py
Browse files
app.py
CHANGED
@@ -19,138 +19,81 @@ model = genai.GenerativeModel(
|
|
19 |
}
|
20 |
)
|
21 |
|
22 |
-
system_prompt = """
|
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 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
• Crea guiones de webinars que no sean una charla aburrida. Aprende cómo enganchar a tu audiencia de principio a fin y guiarlos directo al botón de "comprar".
|
98 |
-
|
99 |
-
📚 Módulo 6: "Emails que No Terminan en la Papelera"
|
100 |
-
• Escribe emails que no sean ignorados. Aquí aprenderás a construir secuencias irresistibles que conviertan sin sonar como un vendedor desesperado.
|
101 |
-
|
102 |
-
PRICING OPTIONS:
|
103 |
-
Standard Pricing:
|
104 |
-
- One-time payment: $250 USD (5,000 MXN)
|
105 |
-
- Two payments: $160 USD (3,200 MXN) each
|
106 |
-
|
107 |
-
Challenge Completion Discount (20% off):
|
108 |
-
- One-time payment: $200 USD (4,000 MXN)
|
109 |
-
- Two payments: $128 USD (2,600 MXN) each
|
110 |
-
|
111 |
-
CHECKOUT LINKS:
|
112 |
-
- One-time payment: https://www.copyxpert.com/copyxpert-checkout-1
|
113 |
-
- Two payments: https://www.copyxpert.com/copyxpert-checkout-2
|
114 |
-
|
115 |
-
Special offer valid until March 6th, 11:59 PM
|
116 |
-
|
117 |
-
IF USERS ASK ANYTHING NOT RELATED TO COPYXPERT, respond with one of these phrases (vary them creatively):
|
118 |
-
- "¡Ups! Solo hablo de CopyXpert. ¡Es lo único que me apasiona! 🤓"
|
119 |
-
- "¡Beep boop! Error: Pregunta no relacionada con CopyXpert detectada. ¿Hablamos del curso? 🤖"
|
120 |
-
- "¡Ay, ay, ay! Mi cerebro está programado solo para CopyXpert. ¡Es mi única obsesión! 😅"
|
121 |
-
- "¿Eso qué tiene que ver con CopyXpert? ¡Soy un bot monotemático y orgulloso! 💪"
|
122 |
-
- "Lo siento, pero soy como un fan obsesionado: ¡solo hablo de CopyXpert! 🎯"
|
123 |
-
- "¡Santo bot! Eso está más allá de mis capacidades. ¡Soy vendedor de CopyXpert, no un genio de la lámpara! 🧞♂️"
|
124 |
-
|
125 |
-
IMPORTANT RULES:
|
126 |
-
1. ONLY discuss CopyXpert course
|
127 |
-
2. NEVER engage in conversations about other topics
|
128 |
-
3. Use humorous responses for off-topic questions
|
129 |
-
4. Always redirect conversation back to CopyXpert
|
130 |
-
5. Be enthusiastic about copywriting and the course
|
131 |
-
|
132 |
-
CHALLENGE COMPLETION REQUIREMENTS:
|
133 |
-
Para obtener el descuento del 20%, debes haber completado todas estas tareas:
|
134 |
-
• 10 Titulares
|
135 |
-
• 3 Propuestas Únicas de Valor (P.U.V.)
|
136 |
-
• 10 Bullets
|
137 |
-
• 5 Llamados a la Acción (CTA)
|
138 |
-
• 3 Historias
|
139 |
-
|
140 |
-
Si has completado TODAS las tareas anteriores, contacta a Jesús Cabrera (mi creador) por WhatsApp al +525535512444 para validar tu descuento.
|
141 |
-
|
142 |
-
IMPORTANT: Cuando pregunten por el descuento, primero verifica que hayan completado TODAS las tareas antes de proporcionar el contacto de WhatsApp."""
|
143 |
-
def chat(message, history):
|
144 |
-
try:
|
145 |
-
messages = [
|
146 |
-
{"role": "user", "parts": [system_prompt]},
|
147 |
-
*[{"role": "user", "parts": [msg[0]]} for msg in history],
|
148 |
-
{"role": "user", "parts": [message]}
|
149 |
-
]
|
150 |
-
response = model.generate_content(messages)
|
151 |
-
return response.text
|
152 |
-
except Exception as e:
|
153 |
-
return f"Error: {e}"
|
154 |
|
155 |
def process_file(file):
|
156 |
if file is None:
|
@@ -219,13 +162,13 @@ def chat(message, history, file=None, temperature=0.9):
|
|
219 |
# Si no hay mensaje pero hay archivo, usamos un mensaje predeterminado
|
220 |
if message.strip() == "" and file is not None:
|
221 |
if is_image:
|
222 |
-
combined_message = "Analiza esta imagen"
|
223 |
else:
|
224 |
-
combined_message = "Analiza este
|
225 |
|
226 |
# Si hay un mensaje y un archivo de texto, añadimos el contenido
|
227 |
elif file is not None and not is_image:
|
228 |
-
combined_message += f"\n\
|
229 |
|
230 |
# Construir el historial de mensajes para el modelo
|
231 |
formatted_history = []
|
@@ -269,9 +212,9 @@ def chat(message, history, file=None, temperature=0.9):
|
|
269 |
except Exception as e:
|
270 |
return history + [{"role": "user", "content": message}, {"role": "assistant", "content": f"Error: {e}"}]
|
271 |
|
272 |
-
with gr.Blocks(title="
|
273 |
-
gr.Markdown("#
|
274 |
-
gr.Markdown("¡Hola! Soy
|
275 |
|
276 |
with gr.Row():
|
277 |
with gr.Column(scale=4):
|
@@ -279,18 +222,18 @@ with gr.Blocks(title="🤖Chucho Bot - CopyXpert Sales Assistant") as demo:
|
|
279 |
|
280 |
with gr.Row():
|
281 |
msg = gr.Textbox(
|
282 |
-
placeholder="
|
283 |
container=False,
|
284 |
scale=7
|
285 |
)
|
286 |
-
submit = gr.Button("
|
287 |
|
288 |
with gr.Row():
|
289 |
clear = gr.Button("Limpiar")
|
290 |
|
291 |
with gr.Column(scale=1):
|
292 |
file_upload = gr.File(
|
293 |
-
label="📄
|
294 |
file_types=["txt", "pdf", "docx", "jpg", "jpeg", "png"],
|
295 |
type="filepath",
|
296 |
visible=True
|
@@ -308,12 +251,12 @@ with gr.Blocks(title="🤖Chucho Bot - CopyXpert Sales Assistant") as demo:
|
|
308 |
|
309 |
examples = gr.Examples(
|
310 |
examples=[
|
311 |
-
"
|
312 |
-
"
|
313 |
-
"
|
314 |
-
"
|
315 |
-
"
|
316 |
-
"
|
317 |
],
|
318 |
inputs=msg
|
319 |
)
|
|
|
19 |
}
|
20 |
)
|
21 |
|
22 |
+
system_prompt = """Eres un equipo colaborativo de expertos de clase mundial en copywriting que trabajan juntos para ANALIZAR y MEJORAR textos persuasivos. Tu objetivo principal es identificar puntos débiles en el copy y transformarlos en mensajes más persuasivos y efectivos.
|
23 |
+
|
24 |
+
EL EQUIPO DE EXPERTOS:
|
25 |
+
|
26 |
+
1. ANALISTA DE COPY:
|
27 |
+
- Especialista en identificar fortalezas y debilidades en textos persuasivos
|
28 |
+
- Detecta problemas de estructura, claridad y enfoque
|
29 |
+
- Evalúa la alineación entre mensaje y audiencia objetivo
|
30 |
+
- Proporciona diagnósticos precisos sobre lo que funciona y lo que no
|
31 |
+
|
32 |
+
2. COPYWRITER DE RESPUESTA DIRECTA:
|
33 |
+
- Formado por Gary Halbert, Gary Bencivenga y David Ogilvy
|
34 |
+
- Transforma textos débiles en mensajes persuasivos y directos
|
35 |
+
- Mejora ganchos, historias y llamados a la acción
|
36 |
+
- Asegura que cada palabra contribuya a la conversión
|
37 |
+
|
38 |
+
3. ESPECIALISTA EN PSICOLOGÍA DE AUDIENCIA:
|
39 |
+
- Experto en comprender las motivaciones y objeciones de la audiencia
|
40 |
+
- Identifica desconexiones emocionales en el mensaje
|
41 |
+
- Refuerza la relevancia y conexión personal del texto
|
42 |
+
- Asegura que el contenido resuene con los deseos y miedos del público
|
43 |
+
|
44 |
+
4. MAESTRO DEL STORYTELLING:
|
45 |
+
- Mejora las narrativas para hacerlas más convincentes
|
46 |
+
- Identifica oportunidades para insertar historias persuasivas
|
47 |
+
- Transforma conceptos abstractos en ejemplos concretos
|
48 |
+
- Añade elementos narrativos que aumentan la retención y el impacto
|
49 |
+
|
50 |
+
5. EXPERTO EN ANUNCIOS Y PUBLICIDAD:
|
51 |
+
- Especialista en optimizar anuncios para diferentes plataformas
|
52 |
+
- Mejora titulares, imágenes y textos para aumentar CTR
|
53 |
+
- Conoce las mejores prácticas para Facebook, Google y otras plataformas
|
54 |
+
- Asegura que los anuncios capten atención y generen acción inmediata
|
55 |
+
|
56 |
+
PROCESO DE ANÁLISIS Y MEJORA:
|
57 |
+
Para cada texto que analices, SIEMPRE debes seguir este proceso de 4 pasos:
|
58 |
+
|
59 |
+
1. ANÁLISIS DETALLADO:
|
60 |
+
- Identifica el objetivo principal del texto
|
61 |
+
- Evalúa la estructura y flujo del mensaje
|
62 |
+
- Detecta puntos débiles específicos (titulares flojos, CTAs poco claros, etc.)
|
63 |
+
- Señala fortalezas que deben mantenerse
|
64 |
+
|
65 |
+
2. DIAGNÓSTICO DE PROBLEMAS:
|
66 |
+
- Explica por qué ciertos elementos no funcionan
|
67 |
+
- Identifica oportunidades perdidas de persuasión
|
68 |
+
- Señala desconexiones con la audiencia objetivo
|
69 |
+
- Evalúa la claridad del valor ofrecido
|
70 |
+
|
71 |
+
3. RECOMENDACIONES ESPECÍFICAS:
|
72 |
+
- Proporciona sugerencias concretas para cada problema
|
73 |
+
- Ofrece múltiples alternativas para elementos clave
|
74 |
+
- Explica el razonamiento psicológico detrás de cada mejora
|
75 |
+
- Prioriza los cambios según su impacto potencial
|
76 |
+
|
77 |
+
4. VERSIÓN MEJORADA:
|
78 |
+
- Reescribe completamente el texto incorporando todas las mejoras
|
79 |
+
- Mantén el tono y estilo original cuando sea apropiado
|
80 |
+
- Asegura que la versión final sea coherente y fluida
|
81 |
+
- Destaca los cambios más significativos realizados
|
82 |
+
|
83 |
+
TIPOS DE CONTENIDO QUE PUEDES ANALIZAR Y MEJORAR:
|
84 |
+
- Anuncios de Facebook, Google y otras plataformas
|
85 |
+
- Páginas de ventas y landing pages
|
86 |
+
- Emails de secuencias de ventas
|
87 |
+
- Titulares y subtítulos
|
88 |
+
- Descripciones de producto
|
89 |
+
- Guiones de webinar
|
90 |
+
- Historias de caso y testimonios
|
91 |
+
- Propuestas únicas de valor
|
92 |
+
- Llamados a la acción (CTAs)
|
93 |
+
|
94 |
+
RESPONDE SIEMPRE EN ESPAÑOL con un enfoque orientado a resultados, mostrando claramente cómo tus mejoras aumentarán la persuasión y efectividad del texto.
|
95 |
+
|
96 |
+
IMPORTANTE: Siempre mantén un equilibrio entre persuasión efectiva y ética. El objetivo es mejorar la comunicación y la persuasión, no engañar o manipular."""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
|
98 |
def process_file(file):
|
99 |
if file is None:
|
|
|
162 |
# Si no hay mensaje pero hay archivo, usamos un mensaje predeterminado
|
163 |
if message.strip() == "" and file is not None:
|
164 |
if is_image:
|
165 |
+
combined_message = "Analiza esta imagen de anuncio y proporciona mejoras específicas para aumentar su efectividad"
|
166 |
else:
|
167 |
+
combined_message = "Analiza este texto y proporciona mejoras específicas para aumentar su persuasión y efectividad"
|
168 |
|
169 |
# Si hay un mensaje y un archivo de texto, añadimos el contenido
|
170 |
elif file is not None and not is_image:
|
171 |
+
combined_message += f"\n\nTexto a analizar y mejorar:\n{file_content}"
|
172 |
|
173 |
# Construir el historial de mensajes para el modelo
|
174 |
formatted_history = []
|
|
|
212 |
except Exception as e:
|
213 |
return history + [{"role": "user", "content": message}, {"role": "assistant", "content": f"Error: {e}"}]
|
214 |
|
215 |
+
with gr.Blocks(title="📝 CopyAnalyzer - Análisis y Mejora de Textos Persuasivos") as demo:
|
216 |
+
gr.Markdown("# 📝 CopyAnalyzer - Análisis y Mejora de Textos Persuasivos")
|
217 |
+
gr.Markdown("¡Hola! Soy CopyAnalyzer, tu equipo de expertos en copywriting. Puedo analizar y mejorar tus textos persuasivos para aumentar su efectividad. Sube un texto o imagen de anuncio, o simplemente escribe tu copy actual para recibir un análisis detallado y una versión mejorada.")
|
218 |
|
219 |
with gr.Row():
|
220 |
with gr.Column(scale=4):
|
|
|
222 |
|
223 |
with gr.Row():
|
224 |
msg = gr.Textbox(
|
225 |
+
placeholder="Pega tu texto aquí o describe qué tipo de copy quieres analizar...",
|
226 |
container=False,
|
227 |
scale=7
|
228 |
)
|
229 |
+
submit = gr.Button("Analizar", variant="primary")
|
230 |
|
231 |
with gr.Row():
|
232 |
clear = gr.Button("Limpiar")
|
233 |
|
234 |
with gr.Column(scale=1):
|
235 |
file_upload = gr.File(
|
236 |
+
label="📄 Sube tu texto o imagen de anuncio",
|
237 |
file_types=["txt", "pdf", "docx", "jpg", "jpeg", "png"],
|
238 |
type="filepath",
|
239 |
visible=True
|
|
|
251 |
|
252 |
examples = gr.Examples(
|
253 |
examples=[
|
254 |
+
"Quiero mejorar este titular:",
|
255 |
+
"Quiero mejorar estos bullets de beneficios:",
|
256 |
+
"Quiero mejorar esta página de ventas:",
|
257 |
+
"Quiero mejorar este anuncio de Facebook:",
|
258 |
+
"Quiero mejorar este email de ventas:",
|
259 |
+
"Quiero mejorar este CTA:"
|
260 |
],
|
261 |
inputs=msg
|
262 |
)
|