Files
NaliiaBot/README.md

131 lines
3.4 KiB
Markdown

# 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