Embedding dalle API di OpenAI: come funzionano e perché li usa OpenClaw

Come funzionano gli embedding delle API di OpenAI, quanto costano e come e perché OpenClaw li usa per la memoria dell’assistente.
Immagine realizzata con IA
Le immagini presenti nel post possono essere realizzate o elaborate con strumenti di Intelligenza Artificiale. Questa scelta nasce anche dalla necessità di prevenire le continue contestazioni e richieste economiche improprie che ricevo relative a fotografie utilizzate che sono sempre state acquistate con regolare licenza.
Contenuti dell'articolo

Se hai letto i miei articoli su cosa sono gli embedding e su come si creano, sai già che un embedding è una lista di numeri che rappresenta il significato di un testo. Questo articolo risponde a due domande pratiche: come si usano davvero le API di embedding di OpenAI e perché un software come OpenClaw, che gestisce il mio assistente personale, ne ha bisogno ogni giorno.

Cos’è un embedding, in una frase

Un embedding è una sequenza di numeri che cattura il significato di un testo. Testi simili producono sequenze simili, testi diversi producono sequenze lontane. È questo che permette a un computer di confrontare frasi in modo intelligente, senza limitarsi a cercare parole identiche.

Tip: per capire la distanza tra due testi si usa spesso la similarità del coseno, che misura l’angolo tra due vettori. Più l’angolo è piccolo, più i testi sono simili. Il gatto dorme sul divano e il micio riposa sul sofà finiscono vicini, anche se le parole sono diverse.
Come funziona un embedding: dal testo al vettore di numeri

Come funzionano le API di OpenAI

Le API di OpenAI per gli embedding sono tra le più semplici da usare: si invia un testo e si riceve il vettore corrispondente. La chiamata è una singola richiesta HTTP all’endpoint /v1/embeddings, con il testo da convertire e il nome del modello. La risposta contiene il vettore, cioè la lista di numeri, insieme al conteggio dei token consumati, perché la fatturazione avviene per token di input.

OpenAI offre due modelli di terza generazione. text-embedding-3-small produce vettori da 1536 numeri ed è veloce ed economico. text-embedding-3-large produce vettori da 3072 numeri ed è più preciso. Entrambi accettano fino a 8192 token per richiesta.

Un dettaglio interessante: con il parametro dimensions si può chiedere un vettore più corto, per esempio da 256 numeri, risparmiando spazio e costi. Un text-embedding-3-large ridotto a 256 dimensioni supera ancora il vecchio modello ada-002 con i suoi 1536.

Quanto costa

Il prezzo è per token di input. text-embedding-3-small costa 0,00002 dollari per 1000 token, circa 62.500 pagine di testo per ogni dollaro speso. text-embedding-3-large costa 0,00013 dollari per 1000 token, circa 9.615 pagine per dollaro. Rispetto al vecchio text-embedding-ada-002, il modello small costa cinque volte meno e rende di più.

Tip: per un uso personale, come indicizzare la propria memoria, la spesa è praticamente trascurabile. I costi crescono solo quando si processano milioni di documenti.

Cosa ci fai con un embedding

Gli embedding sono la base di tante applicazioni: ricerca semantica, raggruppamento di testi simili, classificazione, raccomandazioni e rilevamento di anomalie. Sono anche il cuore del RAG, la tecnica che permette a un assistente di rispondere usando documenti reali: i documenti vengono trasformati in vettori, salvati in un database vettoriale e confrontati con la domanda. Se vuoi un esempio pratico, ho scritto una guida al RAG domestico.

Come un assistente AI usa gli embedding per la memoria

Perché OpenClaw usa gli embedding

OpenClaw è il software che gestisce il mio assistente personale. Un assistente che si rispetti deve ricordare: progetti, preferenze, conversazioni passate. La memoria di OpenClaw è fatta di file di testo, come MEMORY.md e gli appunti giornalieri, e per trovare il ricordo giusto usa proprio gli embedding.

Il meccanismo è identico a quello delle API descritte sopra. La memoria viene spezzettata in pezzi piccoli, ogni pezzo viene trasformato in un vettore e salvato in un indice locale. Quando arriva una domanda, anche quella viene trasformata in vettore e OpenClaw cerca i pezzi più vicini. Il risultato è che posso chiedere come va il progetto del sito e l’assistente ritrova gli appunti sulla pubblicazione degli articoli, anche se la parola esatta non compare in nessuno di quei file.

La ricerca non usa solo i vettori: OpenClaw combina la ricerca per significato con una ricerca per parole chiave, il cosiddetto BM25. I vettori catturano i sinonimi e i concetti, le parole chiave trovano con precisione nomi, codici ed errori. Le due strade si coprono a vicenda.

Ci sono poi due accorgimenti intelligenti. Il primo è il decadimento temporale: gli appunti datati perdono gradualmente peso, così i ricordi recenti contano più di quelli vecchi, mentre i file principali come MEMORY.md restano sempre rilevanti. Il secondo è la cache: gli embedding già calcolati vengono riusati, quindi non si rifà il lavoro a ogni domanda.

Tip: OpenClaw usa OpenAI come fornitore di default, ma non è obbligatorio: si possono usare Gemini, Mistral, Ollama o un modello locale. La qualità cambia poco, la privacy può cambiare molto.

Il dietro le quinte: dove vivono gli embedding

Fin qui ho parlato di come si generano gli embedding, ma non di dove finiscono. La parte più affascinante, per chi vuole capire come funzionano davvero, è questa: gli embedding si salvano, non si ricalcolano.

OpenClaw non rigenera i vettori a ogni domanda. La memoria viene indicizzata una volta sola: i file vengono spezzati in pezzi piccoli, ogni pezzo viene trasformato in un vettore e tutto viene salvato in un unico file locale, un database SQLite. Quando arriva una domanda, viene convertito in vettore solo il testo della domanda, e quel vettore viene confrontato con quelli già salvati. È come l’indice di un libro: lo costruisci una volta, poi ogni ricerca è una semplice consultazione. Ricalcolare tutti gli embedding a ogni domanda sarebbe come ristampare l’intero libro per cercare una parola.

Se poi modifico un appunto, non si rifà tutto: vengono aggiornati solo i pezzi cambiati, grazie a una cache che evita di riconvertire il testo rimasto identico. Il lavoro pesante si fa una volta, le consultazioni successive costano quasi nulla.

Perché un file e non un database vettoriale dedicato

Esistono database fatti apposta per i vettori, come Qdrant, Pinecone o Milvus. Sono strumenti potenti, ma pensati per chi gestisce milioni o miliardi di vettori, con più utenti e più macchine. Per un uso personale sono come affittare un ufficio con server room quando ti serve un quaderno.

Un database SQLite, invece, è un semplice file: niente server da installare, niente processi da tenere accesi. Testo, vettori, indice per parole chiave e cache vivono tutti nello stesso file. Backup? Copi il file. E la ricerca può essere ibrida: i vettori trovano i sinonimi e i concetti, l’indice per parole chiave trova con precisione nomi e codici. Due motori di ricerca in un unico file.

Tip: la scelta dello strumento è una scelta di scala, non di moda. Finché la memoria personale conta qualche migliaio di pezzi, un file locale è più che sufficiente. I database vettoriali dedicati diventano utili quando i documenti diventano milioni.

FAQ

Un embedding e un modello che genera testo sono la stessa cosa?

No. Un modello come GPT genera testo, un embedding produce una lista di numeri che rappresenta il significato. Sono strumenti complementari: gli embedding trovano le informazioni giuste, il modello le trasforma in risposta. Nel RAG lavorano insieme.

Devo usare per forza le API di OpenAI?

No. Esistono molti fornitori di embedding, anche gratuiti o locali. OpenClaw, per esempio, permette di cambiarli in base alle esigenze di costo e privacy.

Quanto testo posso convertire in una volta?

Ogni richiesta accetta fino a 8192 token, circa 6000 parole. Per testi più lunghi si divide il contenuto in pezzi e si genera un vettore per ogni pezzo, come fa OpenClaw con la memoria.

Gli embedding funzionano anche in italiano?

Sì. I modelli di OpenAI gestiscono molte lingue e i benchmark multilingua come MIRACL mostrano un netto miglioramento rispetto al passato: text-embedding-3-large passa dal 31,4% del vecchio ada-002 al 54,9%.

Newsletter settimanale con le ultime novità sull’intelligenza artificiale

Corso gratuito sull’Intelligenza Artificiale, dalle nozioni base ai concetti più complessi

Condividi:

Potrebbero interessarti