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
- Deploy con Docker y Docker Compose
- 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 + Bot
├── Dockerfile # Imagen del Bot
├── .dockerignore
├── pyproject.toml # Configuración Poetry
└── README.md
Requisitos
- Python 3.13+
- Docker y Docker Compose
- MCP server ejecutándose en
http://localhost:8001/mcp
Instalación
Docker (Recomendado)
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus configuraciones
# Iniciar servicios
docker-compose up --build
# Ver logs
docker-compose logs -f naliia_bot
Local (Desarrollo)
# Instalar dependencias con Poetry
poetry install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus configuraciones
Uso
Docker
# Iniciar todos los servicios (PostgreSQL + Bot)
docker-compose up -d
# Detener servicios
docker-compose down
# Reconstruir imagen
docker-compose build --no-cache
Deploy
Build y Push a Registry
# Construir imagen
docker build -t gitea.onecluster.org/oneteam/naliia_bot:v1.0.0_pro .
# Push al registry
docker push gitea.onecluster.org/oneteam/naliia_bot:v1.0.0_pro
Desarrollo local
# Iniciar PostgreSQL
docker-compose up -d messages_db
# 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_HOST |
Host de PostgreSQL | localhost |
POSTGRES_USER |
Usuario PostgreSQL | postgres |
POSTGRES_PASSWORD |
Contraseña PostgreSQL | postgres |
POSTGRES_DB |
Base de datos | messages |
Servicios
| Servicio | Puerto | Descripción |
|---|---|---|
messages_db |
5432 | PostgreSQL para checkpointing |
naliia_bot |
8010 | API FastAPI del bot |
Tools disponibles
El agente cuenta con las siguientes herramientas:
get_current_datetime- Consulta fecha y hora actualget_tomorrow_date- Calcula la fecha de mañanafind_service_centers- Lista centros de servicio disponiblesfind_products_and_services- Lista productos y serviciosschedule_appointment- Agenda una cita
API Endpoints
GET /- RaízGET /health- Health checkPOST /api/v1/chat- Enviar mensaje al agentePOST /api/v1/webhooks/chat- Webhook para callbacks
Tests
# 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
Description
Languages
Python
97.6%
Jupyter Notebook
1.3%
Dockerfile
1.1%