Qdrant
Qdrant è un database vettoriale open source progettato per applicazioni di intelligenza artificiale. Permette di memorizzare e cercare vettori (embeddings) generati da modelli di machine learning.
Cos'è Qdrant
Qdrant è un vector database che:
- Memorizza vettori (embeddings) ad alta dimensionalità
- Esegue ricerche di similarità in modo efficiente
- Supporta filtri per ricerche ibride
- Offre API REST e gRPC per integrazione
- Scala orizzontalmente per grandi dataset
Configurazione Base
| Campo | Descrizione |
|---|---|
| Enabled | Attiva o disabilita Qdrant |
| Version | Versione di Qdrant da utilizzare |
Configurazione Docker
| Campo | Descrizione |
|---|---|
| CPU Cores Limit | Limite CPU per il container |
| Memory Limit (MB) | Limite memoria per il container (importante per performance) |
File di Configurazione
| File | Descrizione |
|---|---|
| config.yaml | Configurazione principale di Qdrant |
| Dockerfile | File Docker per la build dell'immagine |
Casi d'Uso
1. Ricerca Semantica
Trova documenti simili per significato, non solo per parole chiave.
2. Sistemi di Raccomandazione
Suggerisci contenuti simili basandosi su embeddings.
3. RAG (Retrieval Augmented Generation)
Fornisci contesto ai modelli LLM per risposte più accurate.
4. Ricerca Immagini
Trova immagini simili usando embeddings visivi.
5. Rilevamento Anomalie
Identifica elementi che si discostano dalla norma.
Concetti Chiave
Collection
Una collection è un insieme di punti (vettori) con la stessa dimensionalità.
Point
Un point è un singolo record che contiene:
- ID: Identificatore univoco
- Vector: Il vettore numerico (embedding)
- Payload: Metadati associati (JSON)
Distanze Supportate
| Metrica | Descrizione | Uso |
|---|---|---|
| Cosine | Similarità del coseno | Testo, NLP |
| Euclidean | Distanza euclidea | Generale |
| Dot | Prodotto scalare | Quando i vettori sono normalizzati |
Connessione dall'Applicazione
Dalla rete Docker interna:
- REST API:
http://qdrant:6333 - gRPC:
qdrant:6334
Porte
| Porta | Protocollo | Descrizione |
|---|---|---|
| 6333 | HTTP | REST API |
| 6334 | gRPC | API ad alte prestazioni |
Best Practices
- Scegli la dimensione vettore in base al modello di embedding
- Usa la metrica corretta - Cosine per testo, Euclidean per altri
- Indicizza il payload per filtri efficienti
- Configura memoria adeguata per dataset grandi
- Usa batch insert per grandi quantità di dati