Filtraggio dei metadati, ricerca ibrida o agente quando sviluppi la tua applicazione RAG
Che cos’è RAG?
Retrieval Augmented Generation (RAG) è una tecnica che potenzia gli LLM integrando fonti di dati aggiuntive. Una tipica applicazione RAG prevede:
Indicizzazione - una pipeline per acquisire dati da una fonte e indicizzarli, che di solito consiste nel caricare, suddividere e ordinare i dati in Milvus.
Recupero e generazione - In fase di esecuzione, RAG elabora la query dell’utente, recupera i dati rilevanti dall’indice archiviato in Milvus e l’LLM genera una risposta basata su questo contesto arricchito.
Esistono diversi modi per migliorare la tua applicazione RAG. In questo blog, discuteremo di come il database vettoriale Milvus possa potenziare le prestazioni delle tue app RAG con le sue funzionalità di Metadata Filtering, Hybrid Search e Agent.
Metadata Filtering
Quando inserisci i tuoi dati in Milvus, è utile includere metadati relativi ai tuoi dati. Ad esempio, se lavori con PDF, puoi inserire la pagina a cui appartengono i vettori, il nome del file PDF, l’autore, ecc.
Archiviare metadati in Milvus ti consente di filtrare i dati irrilevanti, rendendo il recupero più rapido ed efficiente. Questo approccio può essere particolarmente utile con la tua applicazione RAG, poiché puoi assicurarti di restituire all’LLM solo il contenuto pertinente alla query del tuo utente.
Milvus supporta la corrispondenza dei metadati su stringa completa, rendendo possibile abbinare stringhe usando ricerche per prefisso, infisso, suffisso o persino carattere jolly.
# Esempio di prefisso, corrisponde a qualsiasi stringa che inizia con “The”.
expression='title like "The%"'
# Esempio di infisso, corrisponde a qualsiasi stringa con la parola “the” in qualsiasi punto della frase.
expression='title like "%the%"'
# Esempio di suffisso, corrisponde a qualsiasi stringa che termina con “Rye”.
expression='title like "%Rye"'
# Esempio di carattere jolly singolo, corrisponde a un singolo carattere in una posizione specifica.
expression='title like "Flip_ed"'
È anche possibile usare valori array, tramite corrispondenze esatte oppure verificando se alcuni elementi nell’array corrispondono con contains_any().
Hybrid Search
Milvus consente fino a 10 campi vettoriali in una singola raccolta di dataset. Questo supporto abilita la ricerca ibrida, permettendo agli utenti di cercare simultaneamente su più colonne vettoriali. Questa capacità facilita la ricerca multimodale, la ricerca ibrida sparsa e densa e la ricerca ibrida densa e full-text, offrendo funzionalità di ricerca versatili e flessibili.
I vettori in colonne diverse rappresentano vari aspetti dei dati generati da diversi modelli di embedding con metodi di elaborazione distinti. I risultati della ricerca ibrida vengono quindi combinati e riordinati usando varie strategie di re-ranking.
Come funziona Hybrid Search in Milvus
Rappresenta molteplici prospettive delle informazioni. Ad esempio, nell’e-commerce, le immagini dei prodotti includono viste frontali, laterali e dall’alto. Viste diverse possono essere rappresentate con tipi o dimensioni di vettori diversi.
Utilizza vari tipi di embedding vettoriali. Ciò include embedding densi da modelli come BERT e Transformers ed embedding sparsi da algoritmi come BM25, BGE-M3 e SPLADE.
Supportare la fusione di vettori multimodali provenienti da vari tipi di dati non strutturati come immagini, video, audio e file di testo. Ad esempio, nelle indagini penali, i sospetti possono essere rappresentati attraverso modalità biometriche come impronte digitali, impronte vocali e riconoscimento facciale, aiutando a identificare individui attraverso diverse modalità.
Supportare la fusione della ricerca vettoriale e della ricerca full-text.
Agenti nelle applicazioni RAG
I modelli linguistici di grandi dimensioni non possono compiere azioni autonomamente: producono solo testo. Gli agenti sono sistemi che utilizzano gli LLM come motori di ragionamento per determinare quali azioni intraprendere e quali input fornire loro. Dopo l’esecuzione delle azioni, i risultati possono essere trasmessi nuovamente all’LLM per determinare se sono necessarie ulteriori azioni o se è possibile concludere.
Possono essere utilizzati per eseguire azioni come cercare sul web, navigare tra le tue email, correggere RAG per aggiungere auto-riflessione o auto-valutazione sui documenti recuperati, e molto altro.
Una volta configurati, gli agenti possono aggiungere nuovi dati in Milvus se i dati non sono già archiviati, oppure possono anche recuperarli e restituirli al tuo LLM. Questo permette al tuo sistema RAG di continuare a essere aggiornato. Milvus rende inoltre semplice aggiornare i tuoi dati, se necessario, con la funzione ``` upsert()` ``.
Ecco perché avere metadati nella tua collection è importante, poiché consente di eseguire upsert solo delle informazioni necessarie.
Sentiti libero di consultare il nostro blog dove mostriamo come costruire un sistema Local Agentic RAG con LangGraph, Llama 3 e Milvus
Conclusione
Per concludere, l’uso di Metadata Filtering, Hybrid Search e Agents, tutti integrati in Milvus, può migliorare la tua applicazione RAG.
Metadata Filtering ti consente di arricchire i tuoi dati con attributi aggiuntivi, permettendo ricerche precise ed efficienti. Hybrid Search amplia le capacità di ricerca consentendo query su più colonne vettoriali. Agents porta la funzionalità a un livello superiore automatizzando le azioni in base all’output dell’LLM.
Puoi costruire un’applicazione RAG più robusta ed efficiente utilizzando queste strategie.
Se questo post del blog ti è piaciuto, considera di lasciarci una stella su Github e di unirti al nostro Discord per condividere le tue esperienze con la community.
Continua a leggere

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

How to Use Anthropic MCP Server with Milvus
MCP + Milvus: Streamline AI agent development with standardized data access, eliminating integration hassles while enhancing context and flexibility.

DeepRAG: Thinking to Retrieval Step by Step for Large Language Models
Discover DeepRAG, an advanced retrieval-augmented generation (RAG) model that improves LLM accuracy by retrieving only essential data through step-by-step reasoning.



