Articolo
Ricerca semantica in un DAM con Laravel: come l'ho costruita
Cercare video, immagini e testi per significato invece che per parola chiave, dentro un DAM in produzione. Scelte, limiti e cosa conta davvero.
Pubblicato 12 marzo 20266 min di letturaLaravelAIDAM
Nel DAM di BaseCamp Studio, dove lavoro come sviluppatore full-stack, ho costruito un package Laravel che indicizza video, immagini e testi e permette di cercarli per significato. Scrivi "persona che corre al tramonto sulla spiaggia" e trovi la clip anche se nessuno l'ha mai taggata così. Qui racconto come l'ho impostato e, soprattutto, cosa ho imparato sul fatto che la parte difficile non è il modello.
Niente modello da zero
La prima decisione è stata non addestrare nulla. I modelli di embedding già sul mercato trasformano un testo, un'immagine o un fotogramma in un vettore, e due contenuti simili finiscono vicini. Per un'azienda con un DAM in produzione, costruire un modello proprio sarebbe stato un progetto di ricerca; integrare quelli esistenti è stato un progetto di ingegneria. Il secondo si consegna, il primo si racconta ai convegni.
Come è fatto il package
Il flusso è lineare. Quando un asset entra nel DAM, un job in coda ne produce una rappresentazione testuale e vettoriale: per le immagini direttamente dal contenuto visivo, per i video campionando fotogrammi lungo la durata, per i testi dal testo stesso. I vettori finiscono in un indice interrogabile per vicinanza. Una ricerca fa la stessa trasformazione sulla frase dell'utente e restituisce gli asset più vicini, combinati con i filtri classici (cliente, progetto, formato, data) che un DAM ha già. L'audio è in prospettiva, con lo stesso schema passando dalla trascrizione.
Tutto in Laravel, dentro un package separato dall'applicazione, così si aggiorna da solo e si può spegnere senza toccare il resto. Accanto ci sono i tag generati automaticamente sugli asset, sempre con servizi AI esistenti: servono alle ricerche classiche e agli utenti che vogliono capire a colpo d'occhio cosa c'è dentro un file.
Cosa conta davvero
- I costi per asset. Ogni indicizzazione è una chiamata a pagamento. Con migliaia di video la domanda non è "funziona?" ma "quanto costa reindicizzare tutto se cambiamo modello?". Va deciso prima.
- La coda. L'indicizzazione non deve rallentare l'upload. Job asincroni, retry, e un modo per vedere cosa è in attesa.
- Il flusso di chi lo usa. La ricerca semantica è utile solo se sta dove la gente cerca già, con gli stessi filtri. Un pannello separato "ricerca AI" lo apre nessuno dopo la prima settimana.
- I falsi positivi. Per significato trovi anche cose che somigliano ma non c'entrano. Serve una soglia, e serve dirlo agli utenti.
La lezione, se devo sceglierne una: l'AI è stata il 20% del lavoro. L'80% è stato farla entrare nel flusso di chi usa il DAM ogni giorno senza che se ne accorga. È la stessa cosa che offro alle PMI quando parlo di AI nel lavoro vero: non un modello nuovo, ma funzioni che stanno dentro gli strumenti che già usate.