feat: add als generator chatbot and storage

This commit is contained in:
renato97
2025-12-01 03:03:22 +00:00
parent 5dafb7fcbf
commit a87347475a
14 changed files with 941 additions and 6 deletions

View File

@@ -100,3 +100,21 @@ Se añadió un flow en `data/flows.json` que usa Node-RED Dashboard para mostrar
- Si intentas subir el mismo `.als`, el flujo detecta el hash duplicado, responde `409` y el dashboard avisa sin sobrescribir la biblioteca.
- Para consultar el inventario (por ejemplo, desde una IA) usa `GET /als/library`; el endpoint devuelve el arreglo completo de proyectos almacenados.
- Como el archivo vive dentro de `/data`, puedes versionarlo o respaldarlo fácilmente según tu flujo de trabajo.
### Chatbot y generación de nuevos `.als`
- Coloca tus stems/loops en `data/sources/` (el contenedor los comparte con Node-RED). Los `.als` creados se guardan en `data/generated/` y las plantillas descomprimidas viven en `data/library/`.
- Configura en `.env` las credenciales de MiniMax/GLM (`ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`, etc.). Si la IA falla, el generador recurre a heurísticas locales con las plantillas existentes.
- Nuevo endpoint `POST /als/chat`:
```json
{ "prompt": "generame un als de reggaeton 2001" }
```
Devuelve el resumen del proyecto creado (nombre, hash y ruta del archivo). En el dashboard aparece la tarjeta **Chatbot ALS** para conversar visualmente.
- Internamente se usa `data/lib/alsGenerator.js`: el bot elige una plantilla (`als-library.json`), edita el XML del `.als` (nombre del proyecto, tempo, anotaciones con los sources) y registra el resultado llamando otra vez a `/als/upload` para mantener la deduplicación.
- También puedes usarlo desde terminal:
```bash
set -a && source .env
node scripts/chatbot.js # modo interactivo
node scripts/generate-als.js "generame un als tribal"
```
Ambos comandos generan el archivo dentro de `data/generated/` y lo añaden automáticamente a la biblioteca.