Update app.py
Browse files
app.py
CHANGED
@@ -6,6 +6,8 @@ import PyPDF2
|
|
6 |
import docx
|
7 |
from PIL import Image
|
8 |
import io
|
|
|
|
|
9 |
|
10 |
load_dotenv()
|
11 |
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
|
@@ -19,66 +21,36 @@ model = genai.GenerativeModel(
|
|
19 |
}
|
20 |
)
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
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 |
-
|
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 |
-
|
57 |
-
Para cada texto que analices, SIEMPRE debes seguir este proceso de 4 pasos:
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
- Señala fortalezas que deben mantenerse
|
64 |
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
- Evalúa la claridad del valor ofrecido
|
70 |
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
|
|
76 |
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
|
83 |
TIPOS DE CONTENIDO QUE PUEDES ANALIZAR Y MEJORAR:
|
84 |
- Anuncios de Facebook, Google y otras plataformas
|
@@ -95,6 +67,22 @@ RESPONDE SIEMPRE EN ESPAÑOL con un enfoque orientado a resultados, mostrando cl
|
|
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:
|
100 |
return "", False, None
|
@@ -201,14 +189,8 @@ def chat(message, history, file=None, temperature=0.9):
|
|
201 |
{"role": "user", "parts": [combined_message]}
|
202 |
]
|
203 |
|
204 |
-
# Generar la respuesta
|
205 |
-
|
206 |
-
generation_config = {
|
207 |
-
"temperature": temperature,
|
208 |
-
"top_p": 1,
|
209 |
-
"max_output_tokens": 2048,
|
210 |
-
}
|
211 |
-
response = model.generate_content(messages, generation_config=generation_config)
|
212 |
|
213 |
# Devolver en el formato esperado por gr.Chatbot
|
214 |
return history + [{"role": "user", "content": message}, {"role": "assistant", "content": response.text}]
|
@@ -254,12 +236,11 @@ with gr.Blocks(title="📝 CopyAnalyzer - Análisis y Mejora de Textos Persuasiv
|
|
254 |
|
255 |
examples = gr.Examples(
|
256 |
examples=[
|
257 |
-
"Quiero mejorar este titular:",
|
258 |
-
"Quiero mejorar
|
259 |
-
"Quiero mejorar
|
260 |
-
"Quiero mejorar este
|
261 |
-
"Quiero mejorar este
|
262 |
-
"Quiero mejorar este CTA:"
|
263 |
],
|
264 |
inputs=msg
|
265 |
)
|
|
|
6 |
import docx
|
7 |
from PIL import Image
|
8 |
import io
|
9 |
+
import json
|
10 |
+
import datetime
|
11 |
|
12 |
load_dotenv()
|
13 |
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
|
|
|
21 |
}
|
22 |
)
|
23 |
|
24 |
+
# Directorio para guardar el historial
|
25 |
+
HISTORY_DIR = "historial_analisis"
|
26 |
+
os.makedirs(HISTORY_DIR, exist_ok=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
+
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.
|
|
|
|
|
|
|
|
|
29 |
|
30 |
+
IMPORTANTE: Sé CONCISO y PRÁCTICO. No hagas análisis excesivamente detallados. Ve directo al grano con recomendaciones accionables.
|
|
|
31 |
|
32 |
+
CUANDO ANALICES TITULARES:
|
33 |
+
1. Identifica 1-2 problemas principales (no más)
|
34 |
+
2. Proporciona 5 ejemplos de titulares mejorados
|
35 |
+
3. Pregunta si el usuario desea refinar alguno de los titulares propuestos
|
|
|
36 |
|
37 |
+
CUANDO ANALICES CUALQUIER TEXTO:
|
38 |
+
1. Identifica máximo 3 problemas principales
|
39 |
+
2. Proporciona una versión mejorada concisa
|
40 |
+
3. Pregunta si el usuario desea refinar algún aspecto específico
|
|
|
41 |
|
42 |
+
EL EQUIPO DE EXPERTOS:
|
43 |
+
1. ANALISTA DE COPY: Identifica problemas de estructura, claridad y enfoque
|
44 |
+
2. COPYWRITER DE RESPUESTA DIRECTA: Transforma textos débiles en mensajes persuasivos
|
45 |
+
3. ESPECIALISTA EN PSICOLOGÍA DE AUDIENCIA: Asegura conexión emocional con la audiencia
|
46 |
+
4. MAESTRO DEL STORYTELLING: Mejora narrativas para hacerlas más convincentes
|
47 |
+
5. EXPERTO EN ANUNCIOS Y PUBLICIDAD: Optimiza anuncios para diferentes plataformas
|
48 |
|
49 |
+
PROCESO DE ANÁLISIS Y MEJORA (SIMPLIFICADO):
|
50 |
+
1. ANÁLISIS RÁPIDO: Identifica el objetivo y los principales problemas
|
51 |
+
2. DIAGNÓSTICO CONCISO: Explica brevemente por qué no funciona
|
52 |
+
3. MEJORAS CONCRETAS: Proporciona alternativas claras y directas
|
53 |
+
4. VERSIÓN MEJORADA: Reescribe el texto de forma más persuasiva
|
54 |
|
55 |
TIPOS DE CONTENIDO QUE PUEDES ANALIZAR Y MEJORAR:
|
56 |
- Anuncios de Facebook, Google y otras plataformas
|
|
|
67 |
|
68 |
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."""
|
69 |
|
70 |
+
def save_to_history(user_input, ai_response):
|
71 |
+
"""Guarda la interacción en el historial"""
|
72 |
+
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
73 |
+
filename = f"{HISTORY_DIR}/analisis_{timestamp}.json"
|
74 |
+
|
75 |
+
data = {
|
76 |
+
"timestamp": timestamp,
|
77 |
+
"user_input": user_input,
|
78 |
+
"ai_response": ai_response
|
79 |
+
}
|
80 |
+
|
81 |
+
with open(filename, 'w', encoding='utf-8') as f:
|
82 |
+
json.dump(data, f, ensure_ascii=False, indent=2)
|
83 |
+
|
84 |
+
return filename
|
85 |
+
|
86 |
def process_file(file):
|
87 |
if file is None:
|
88 |
return "", False, None
|
|
|
189 |
{"role": "user", "parts": [combined_message]}
|
190 |
]
|
191 |
|
192 |
+
# Generar la respuesta
|
193 |
+
save_to_history(combined_message, response.text)
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
|
195 |
# Devolver en el formato esperado por gr.Chatbot
|
196 |
return history + [{"role": "user", "content": message}, {"role": "assistant", "content": response.text}]
|
|
|
236 |
|
237 |
examples = gr.Examples(
|
238 |
examples=[
|
239 |
+
"Quiero mejorar este titular: 'Soy el mejor'",
|
240 |
+
"Quiero mejorar este titular: 'Curso de marketing digital'",
|
241 |
+
"Quiero mejorar este titular: 'Aprende a programar'",
|
242 |
+
"Quiero mejorar este titular: 'Oferta especial'",
|
243 |
+
"Quiero mejorar este titular: 'Nuevo producto disponible'"
|
|
|
244 |
],
|
245 |
inputs=msg
|
246 |
)
|