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

  1. Scegli la dimensione vettore in base al modello di embedding
  2. Usa la metrica corretta - Cosine per testo, Euclidean per altri
  3. Indicizza il payload per filtri efficienti
  4. Configura memoria adeguata per dataset grandi
  5. Usa batch insert per grandi quantità di dati

Prossimi Passi

  • Ollama - Genera embeddings con LLM locali
  • Node.js - Integra Qdrant con applicazioni Node.js