aserrador d328d801f4 fix: mock LLM clients in test_llm_factory to avoid API key requirement
- Add mock_chat_anthropic and mock_chat_deepseek fixtures to conftest.py
- Update test_llm_factory to use monkeypatch and mock fixtures
- Import ChatAnthropic and ChatDeepSeek in conftest.py for spec creation
- Tests now pass without requiring ANTHROPIC_API_KEY or DEEPSEEK_API_KEY
- Execution time reduced from failing after 0.12s to passing in 0.01s

This change allows factory tests to run in isolation without external
dependencies, making them consistent with the API test approach and
suitable for any development environment or CI/CD pipeline.
2026-06-10 16:16:14 -05:00
2026-02-11 18:43:49 -05:00

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%