131 lines
3.4 KiB
Markdown
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
|