DonConfia_Dev/agents/app/chat_api.py
2025-03-24 20:33:04 -05:00

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()