# NaliiaBot Agente conversacional basado en LangGraph para gestión de agenda y atención al cliente. ## Características - Agente conversacional inteligente basado en LangGraph - Sistema de herramientas (tools) con integración MCP - Integración con modelos LLM (Anthropic Claude, DeepSeek) - API FastAPI para interacción - Checkpointing con PostgreSQL para persistencia de estado - Tests completos con pytest ## Estructura del proyecto ``` NaliiaBot/ ├── src/ │ ├── naliiabot/ │ │ ├── bot/ │ │ │ ├── agent/ # Agente LangGraph │ │ │ │ ├── agent.py │ │ │ │ └── schemas.py │ │ │ ├── tools/ # Herramientas del agente │ │ │ │ ├── naliia_tools.py │ │ │ │ └── schemes.py │ │ │ ├── factories/ # Factorías (LLM) │ │ │ └── prompts/ # Prompts del agente │ │ └── bot/ │ ├── naliiabotapi/ # API FastAPI │ │ ├── main.py │ │ ├── api/ │ │ │ ├── v1/endpoints/ │ │ │ └── v1/webhooks/ │ │ └── schemes/ │ ├── mcp/ # Servidor MCP │ └── ui/ # Frontend ├── tests/ ├── docker-compose.yaml # PostgreSQL para checkpointing ├── pyproject.toml # Configuración Poetry └── README.md ``` ## Requisitos - Python 3.13+ - PostgreSQL (via Docker) - MCP server ejecutándose en `http://localhost:8001/mcp` ## Instalación ```bash # Instalar dependencias con Poetry poetry install # Configurar variables de entorno cp .env.example .env # Editar .env con tus configuraciones ``` ## Uso ### Iniciar servicios ```bash # Iniciar PostgreSQL docker-compose up -d # Iniciar servidor MCP # (configurar según implementación) # Iniciar API task dev ``` ### Comandos disponibles | Comando | Descripción | |---------|-------------| | `task dev` | Iniciar servidor API en puerto 8010 | | `task test` | Ejecutar todos los tests | | `task test-cov` | Ejecutar tests con coverage | ### Variables de entorno | Variable | Descripción | Valor por defecto | |----------|-------------|-------------------| | `LLM_MODEL` | Modelo LLM a usar | `deepseek` | | `POSTGRES_USER` | Usuario PostgreSQL | `postgres` | | `POSTGRES_PASSWORD` | Contraseña PostgreSQL | `postgres` | | `POSTGRES_DB` | Base de datos | `messages` | ## Tools disponibles El agente cuenta con las siguientes herramientas: - `get_current_datetime` - Consulta fecha y hora actual - `get_tomorrow_date` - Calcula la fecha de mañana - `find_service_centers` - Lista centros de servicio disponibles - `find_products_and_services` - Lista productos y servicios - `schedule_appointment` - Agenda una cita ## API Endpoints - `GET /` - Raíz - `GET /health` - Health check - `POST /api/v1/chat` - Enviar mensaje al agente - `POST /api/v1/webhooks/chat` - Webhook para callbacks ## Tests ```bash # Ejecutar todos los tests pytest -v # Tests con coverage task test-cov ``` ## Desarrollo El proyecto sigue una arquitectura basada en: - **LangGraph**: Grafo de estados para el agente conversacional - **FastAPI**: API REST sincrónica - **PostgreSQL**: Persistencia de estado via checkpointing - **MCP**: Modelo de contexto para herramientas externas ## Licencia MIT