fix: PEP8 Style

This commit is contained in:
2026-03-04 16:20:56 -05:00
parent aab046b2ef
commit 6fc6338413
17 changed files with 1086 additions and 217 deletions

View File

@@ -1,67 +1,70 @@
import asyncio
from datetime import datetime
from fastmcp import Client
from langchain.tools import tool
from ..logger import logger
from .schemes import ScheduleSchema
MCP_SERVER_URL = "http://localhost:8000/mcp"
_MCP_CLIENT = Client(MCP_SERVER_URL)
class NaliiaTools:
def __init__(self):
self._session_active = False
def get_tools(self):
return [
self.verificar_usuario_registrado,
self.registrar_usuario_nuevo,
self.consultar_sedes,
self.consultar_agenda_disponible,
self.agendar_cita
self.get_current_datetime,
self.schedule_appointment
]
@tool
def verificar_usuario_registrado(phone: str) -> bool:
def get_current_datetime() -> datetime:
"""
Verifica si el usuario esta registrado.
Args:
phone: Numero de contacto del cliente ejemplo 30123334
Consulta la fecha actual, no se aceptan fechas
en el pasado con respecto a esta fecha.
"""
logger.info("Llamando a Verificar usuario.")
return datetime.now()
return False
@tool
def registrar_usuario_nuevo(full_name: str, phone: str) -> bool:
@tool(args_schema=ScheduleSchema)
def schedule_appointment(
schedule_date, schedule_time,
service_center, customer,
professional, description
) -> bool:
"""
En caso de que no se haya podido verificar el usuario, sera necesario
registrarlo como un usuario nuevo.
Args:
full_name: Nombre completo del cliente.
phone: Numero de contacto del cliente.
"""
logger.info("Llamando a Registrar Nuevo Usuario.")
return True
@tool
def consultar_sedes() -> list:
"""
Brinda informacion al usuario acerca de las sedes disponibles y sus horarios.
"""
logger.info("Llamando a consultar sedes.")
return []
@tool
def consultar_agenda_disponible() -> list:
"""
Ayuda a consultar al cliente los horarios de atencion disponibles para agendar su cita.
"""
logger.info("Llamando a consultar agenda disponible.")
return []
@tool
def agendar_cita() -> bool:
"""
Ayuda al cliente a confirmar su cita.
Permite al Cliente al Agendar una Cita
"""
logger.info("Llamando a agendar cita.")
logger.info([
schedule_date,
schedule_time,
service_center,
customer,
professional,
description
])
example_schedule = {
'professional': 6,
'description': "Bien Bonito Todo!",
'customer': 4,
'date': '2026-03-25 14:00',
'service_center': 11
}
async def call_tool():
async with _MCP_CLIENT:
result = await _MCP_CLIENT.call_tool(
"create_schedule", example_schedule)
logger.info(result)
asyncio.run(call_tool())
return True