JeCabrera commited on
Commit
181e1e3
·
verified ·
1 Parent(s): 347722b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -68
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
- 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
@@ -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 - AQUÍ ESTÁ EL CAMBIO
205
- # En lugar de modificar model.generation_config, pasamos la temperatura como parámetro
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 estos bullets de beneficios:",
259
- "Quiero mejorar esta página de ventas:",
260
- "Quiero mejorar este anuncio de Facebook:",
261
- "Quiero mejorar este email de ventas:",
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: 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
  )