81 lines
2.7 KiB
Python
81 lines
2.7 KiB
Python
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()
|