import requests import sys class ChatClient: def __init__(self, base_url="http://127.0.0.1:8000"): self.base_url = base_url # Verificar conexión try: response = requests.get(f"{self.base_url}/status") if response.status_code != 200: raise ConnectionError("No se pudo conectar al servidor") print(f"✓ Conectado al servidor exitosamente") except requests.RequestException as e: print(f"Error: No se pudo conectar al servidor. {str(e)}") sys.exit(1) def send_message(self, phone: str, message: str) -> str: """Envía un mensaje al servidor y retorna la respuesta""" try: print(f"Enviando mensaje al servidor...") response = requests.post( f"{self.base_url}/chat", json={ "phone": phone, "message": message, "source": { "channel": "test", "channel_data": {} } }, timeout=60 # Aumentado a 60 segundos ) response.raise_for_status() return response.json()["response"] except requests.RequestException as e: print(f"Error detallado: {e.__class__.__name__}: {str(e)}") return f"Error de comunicación: {str(e)}" def main(): print("¡Bienvenido a DonConfiao - Asistente Virtual de Tienda La Ilusión!") print("(Escribe 'salir' para terminar)") # Inicializar cliente try: client = ChatClient() except Exception as e: print(f"Error al iniciar el cliente: {e}") return # Solicitar número de teléfono while True: phone = input("\nIngresa tu número de teléfono: ").strip() if len(phone) >= 8: break print("Por favor ingresa un número de teléfono válido (mínimo 8 dígitos)") print("\n¡Hola! ¿En qué puedo ayudarte hoy?") # Bucle principal de chat while True: try: message = input("\nTú: ").strip() if message.lower() == 'salir': print("¡Hasta luego! ¡Que tengas un excelente día!") break if message: response = client.send_message(phone, message) print(f"\nDonConfiao: {response}") except KeyboardInterrupt: print("\n\n¡Hasta luego! ¡Que tengas un excelente día!") break except Exception as e: print(f"\nError: {str(e)}") print("Intenta de nuevo o escribe 'salir' para terminar") if __name__ == "__main__": main()