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

# 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
No description provided
Readme 1.6 MiB
Languages
Python 97.6%
Jupyter Notebook 1.3%
Dockerfile 1.1%