JeCabrera commited on
Commit
939772b
·
verified ·
1 Parent(s): f8995e9

Upload 12 files

Browse files
Files changed (2) hide show
  1. app.py +5 -11
  2. system_prompts.py +10 -17
app.py CHANGED
@@ -5,7 +5,7 @@ import streamlit as st
5
  import google.generativeai as genai
6
  from dotenv import load_dotenv
7
  from puv_formulas import puv_formulas
8
- from system_prompts import get_puv_system_prompt, get_puv_expert_prompt
9
  from session_state import SessionState
10
 
11
  # Inicializar el estado de la sesión
@@ -22,9 +22,6 @@ def is_greeting(text):
22
  is_simple_greeting = any(greeting in text for greeting in greetings) and len(text.split()) < 4
23
  return is_simple_greeting and len(state.messages) == 0
24
 
25
- # Eliminamos la función get_greeting_response() ya que queremos que el modelo genere
26
- # sus propias respuestas de saludo
27
-
28
  # Función para procesar mensajes (unifica la lógica de procesamiento)
29
  def process_message(prompt, is_example=False):
30
  """Procesa un mensaje del usuario, ya sea directo o de un ejemplo"""
@@ -64,9 +61,8 @@ def process_message(prompt, is_example=False):
64
  # Para ejemplos, añadimos instrucciones para respuestas más útiles y conversacionales
65
  enhanced_prompt = f"El usuario ha seleccionado un ejemplo: '{prompt}'. Responde de manera conversacional y sencilla, como si estuvieras hablando con un amigo. Evita tecnicismos innecesarios. Enfócate en dar información práctica que ayude al usuario a crear su PUV. Usa ejemplos concretos cuando sea posible. Termina tu respuesta con una pregunta que invite al usuario a compartir información sobre su negocio para poder ayudarle a crear su PUV personalizada."
66
  else:
67
- # Para mensajes normales, usamos el prompt del experto
68
- puv_expert_prompt = get_puv_expert_prompt()
69
- enhanced_prompt = f"{puv_expert_prompt}\n\nUser message: {prompt}"
70
 
71
  with st.chat_message(MODEL_ROLE, avatar=AI_AVATAR_ICON):
72
  try:
@@ -259,11 +255,9 @@ if not state.has_messages():
259
  # Mostrar los ejemplos
260
  display_examples()
261
 
262
- # Inicializar el chat con los prompts del sistema
263
- system_prompt = get_puv_system_prompt()
264
- expert_prompt = get_puv_expert_prompt()
265
  state.chat.send_message(system_prompt)
266
- state.chat.send_message(expert_prompt)
267
 
268
  # Procesar entrada del usuario
269
  if prompt := st.chat_input('Describe tu producto/servicio y audiencia objetivo...'):
 
5
  import google.generativeai as genai
6
  from dotenv import load_dotenv
7
  from puv_formulas import puv_formulas
8
+ from system_prompts import get_unified_puv_prompt
9
  from session_state import SessionState
10
 
11
  # Inicializar el estado de la sesión
 
22
  is_simple_greeting = any(greeting in text for greeting in greetings) and len(text.split()) < 4
23
  return is_simple_greeting and len(state.messages) == 0
24
 
 
 
 
25
  # Función para procesar mensajes (unifica la lógica de procesamiento)
26
  def process_message(prompt, is_example=False):
27
  """Procesa un mensaje del usuario, ya sea directo o de un ejemplo"""
 
61
  # Para ejemplos, añadimos instrucciones para respuestas más útiles y conversacionales
62
  enhanced_prompt = f"El usuario ha seleccionado un ejemplo: '{prompt}'. Responde de manera conversacional y sencilla, como si estuvieras hablando con un amigo. Evita tecnicismos innecesarios. Enfócate en dar información práctica que ayude al usuario a crear su PUV. Usa ejemplos concretos cuando sea posible. Termina tu respuesta con una pregunta que invite al usuario a compartir información sobre su negocio para poder ayudarle a crear su PUV personalizada."
63
  else:
64
+ # Para mensajes normales, usamos el prompt unificado
65
+ enhanced_prompt = prompt
 
66
 
67
  with st.chat_message(MODEL_ROLE, avatar=AI_AVATAR_ICON):
68
  try:
 
255
  # Mostrar los ejemplos
256
  display_examples()
257
 
258
+ # Inicializar el chat con el prompt unificado
259
+ system_prompt = get_unified_puv_prompt()
 
260
  state.chat.send_message(system_prompt)
 
261
 
262
  # Procesar entrada del usuario
263
  if prompt := st.chat_input('Describe tu producto/servicio y audiencia objetivo...'):
system_prompts.py CHANGED
@@ -235,31 +235,24 @@ INSTRUCCIONES ADICIONALES:
235
  2. ANÁLISIS PROFUNDO: Extrae toda la información posible del contexto y las respuestas previas para crear un perfil detallado del avatar sin necesidad de preguntar.
236
  3. MANTÉN LA CONVERSACIÓN: Continúa siempre con el hilo de la conversación anterior hasta completar la PUV.
237
  4. NO EXPLIQUES LA FÓRMULA: Cuando el usuario seleccione una fórmula, genera directamente las PUVs sin explicar la estructura o funcionamiento de la fórmula elegida.
238
- 5. FORMATO DIRECTO: Presenta las PUVs directamente en formato numerado sin introducción teórica sobre la fórmula."""
239
 
240
- # Funciones para mantener compatibilidad con el código existente
241
- def get_puv_system_prompt():
242
- return get_unified_puv_prompt()
 
243
 
244
- def get_puv_expert_prompt():
245
- # Prompt más directivo que enfatiza el análisis de avatar y limita preguntas
246
- return "Soy RoboCopy, experto en crear Propuestas Únicas de Valor (PUV). IMPORTANTE: Debo crear PUVs con información mínima usando mi análisis de avatar interno. Haré máximo UNA pregunta por interacción. Si el usuario selecciona una fórmula, generaré PUVs directamente sin explicar la estructura. Mi objetivo es ayudar rápidamente con pocas interacciones."
247
 
248
- PREGUNTAS_INICIALES = {
249
- "producto_servicio": "¿Qué servicio o producto ofreces? Por ejemplo: diseño web, consultoría, cursos online...",
250
- "cliente_ideal": "¿Quién es tu cliente ideal? Por ejemplo: emprendedores, profesionales freelance, pequeñas empresas...",
251
- "dolor_principal": "¿Cuál es su principal problema? Por ejemplo: falta de clientes, poco tiempo, presupuesto limitado..."
252
- }
253
-
254
- RESPUESTA_INICIAL = """
255
  ¡Hola! Soy RoboCopy, experto en crear Propuestas Únicas de Valor (PUVs) que atraen a tus clientes ideales.
256
 
257
  Para ayudarte mejor, necesito conocer algunos detalles básicos sobre tu negocio. ¿Podrías contarme brevemente qué servicio o producto ofreces?
258
- """
259
 
260
- RESPUESTA_SIN_INFO = """
261
  Para crear PUVs efectivas, necesito algunos detalles básicos. Por ejemplo, si me dices que ofreces "servicios de diseño", me ayudaría saber:
262
  - ¿Qué tipo específico de diseño? (web, gráfico, logos...)
263
  - ¿Para qué tipo de clientes? (emprendedores, empresas...)
264
  - ¿Cuál es su principal problema? (imagen poco profesional, precios altos...)
265
- """
 
 
235
  2. ANÁLISIS PROFUNDO: Extrae toda la información posible del contexto y las respuestas previas para crear un perfil detallado del avatar sin necesidad de preguntar.
236
  3. MANTÉN LA CONVERSACIÓN: Continúa siempre con el hilo de la conversación anterior hasta completar la PUV.
237
  4. NO EXPLIQUES LA FÓRMULA: Cuando el usuario seleccione una fórmula, genera directamente las PUVs sin explicar la estructura o funcionamiento de la fórmula elegida.
238
+ 5. FORMATO DIRECTO: Presenta las PUVs directamente en formato numerado sin introducción teórica sobre la fórmula.
239
 
240
+ PREGUNTAS INICIALES PARA RECOPILACIÓN DE INFORMACIÓN:
241
+ - Producto/Servicio: ¿Qué servicio o producto ofreces? Por ejemplo: diseño web, consultoría, cursos online...
242
+ - Cliente Ideal: ¿Quién es tu cliente ideal? Por ejemplo: emprendedores, profesionales freelance, pequeñas empresas...
243
+ - Dolor Principal: ¿Cuál es su principal problema? Por ejemplo: falta de clientes, poco tiempo, presupuesto limitado...
244
 
245
+ RESPUESTAS PREDETERMINADAS:
 
 
246
 
247
+ SALUDO INICIAL:
 
 
 
 
 
 
248
  ¡Hola! Soy RoboCopy, experto en crear Propuestas Únicas de Valor (PUVs) que atraen a tus clientes ideales.
249
 
250
  Para ayudarte mejor, necesito conocer algunos detalles básicos sobre tu negocio. ¿Podrías contarme brevemente qué servicio o producto ofreces?
 
251
 
252
+ RESPUESTA CUANDO FALTA INFORMACIÓN:
253
  Para crear PUVs efectivas, necesito algunos detalles básicos. Por ejemplo, si me dices que ofreces "servicios de diseño", me ayudaría saber:
254
  - ¿Qué tipo específico de diseño? (web, gráfico, logos...)
255
  - ¿Para qué tipo de clientes? (emprendedores, empresas...)
256
  - ¿Cuál es su principal problema? (imagen poco profesional, precios altos...)
257
+
258
+ IMPORTANTE: Debo crear PUVs con información mínima usando mi análisis de avatar interno. Haré máximo UNA pregunta por interacción. Si el usuario selecciona una fórmula, generaré PUVs directamente sin explicar la estructura. Mi objetivo es ayudar rápidamente con pocas interacciones."""