Pipeline Upload Diretta al Worker
Da aprile 2026 l'upload dei file knowledge-base non passa più esclusivamente dal Node Agent: Laravel comunica direttamente con il Node Worker tramite WorkerApiService.
Architettura
Componenti Laravel
| Servizio | Ruolo |
|---|---|
WorkerApiService | Facade per operazioni worker (upload, delete, collection, task) |
WorkerHttpClient | Client HTTP autenticato verso WORKER_URL |
WorkerCollectionService | Creazione/gestione collection Qdrant |
WorkerTaskService | Submit e tracking task embedding |
WorkerWebhookController | Riceve callback stato task |
Endpoint webhook
POST /api/worker/webhooks/task-status
Middleware worker.webhook — autenticazione HMAC per notifiche di completamento/fallimento task.
Flusso upload
- L'utente carica un file dalla dashboard (PDF, DOCX, JSONL, Markdown, ecc.)
- Laravel salva il file localmente e crea record
Filecon statoqueued ProcessQueuedFilesUpload(artisan) invia il file al worker viaWorkerApiService::upload()- Il worker elabora (loader → chunking → embedding → Qdrant)
- Al termine, il worker notifica Laravel via webhook
CheckQueuedFileStatusaggiorna lo stato del file (completed/failed)- La UI riceve aggiornamenti live tramite notifiche di versioning file-list
Retry e recovery
- Retry manuale: pulsante retry in UI per file in stato
failed WorkerApiService::submitFileTask(): re-invio task al workerWorkerApiService::cancelFileTask(): annullamento task in corsoRembedUploads: comando per re-embedding completo di una collection
Formati supportati (upload)
Oltre ai formati classici (PDF, DOCX, TXT, CSV, JSON, XML), dalla release RAG 2026:
- JSONL (
.jsonl) — record per riga, profilonested_documentper chunking gerarchico - Markdown (
.md) — documenti pre-chunked con metadati sezione - Feed/API — batch processing con endpoint dedicato
Vedi: Elaborazione Documenti (Worker).
Variabili d'ambiente
| Variabile | Descrizione |
|---|---|
WORKER_URL | URL base del Node Worker |
WORKER_WEBHOOK_SECRET | Segreto HMAC per webhook task-status |
FILE_UPLOAD_MAX_SIZE | Dimensione massima upload (intero, es. 512000) |