QDrant est une base vectorielle rapide et moderne, idéale pour les projets .NET souhaitant intégrer un moteur de recherche sémantique local. Dans cet article, nous allons installer QDrant via Docker, vérifier qu’il fonctionne, et effectuer une requête simple pour valider le setup.
📦 Étape 1 – Prérequis
Avant de commencer, assurez-vous d’avoir :
- Un système compatible avec Docker (Windows 10/11, macOS, Linux)
- Docker Desktop installé et en fonctionnement :
docker version
Si cette commande retourne des informations sur la version, Docker est opérationnel.
🐳 Étape 2 – Lancer QDrant avec Docker
L’image officielle de QDrant est disponible sur Docker Hub : https://hub.docker.com/r/qdrant/qdrant
Pour lancer un conteneur local :
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
Explication des options :
- -p 6333:6333 : expose l’API HTTP (port d’écoute principal)
- -p 6334:6334 : expose l’API gRPC (optionnelle, pour clients avancés)
- qdrant/qdrant : nom de l’image Docker officielle
Docker télécharge automatiquement l’image si elle n’est pas présente localement.
Attendez quelques secondes : vous devriez voir un message dans la console du type :
Qdrant server started
REST API listening on 0.0.0.0:6333
🔍 Étape 3 – Vérifier le bon fonctionnement
Dans un navigateur ou via curl, ouvrez l’URL suivante :
http://localhost:6333/collections
Réponse attendue :
{
"status": "ok",
"result": []
}
Cela indique que le serveur est lancé correctement mais qu’aucune collection n’a encore été créée.
🧪 Étape 4 – Créer une collection de test
Utilisez Postman ou une ligne de commande pour créer une collection :
curl -X PUT http://localhost:6333/collections/test -H "Content-Type: application/json" -d '{
"vectors": {"size": 4, "distance": "Cosine"}
}'
Cette commande crée une collection test contenant des vecteurs de taille 4 et utilisant la similarité cosinus.
Vérification :
curl http://localhost:6333/collections
Réponse attendue :
{
"result": ["test"]
}
🧩 Étape 5 – Interagir depuis un client C#
Créer un vecteur simple et l’insérer :
var vector = new[] { 0.1f, 0.2f, -0.1f, 0.9f };
var doc = new
{
id = 1,
vector,
payload = new { contenu = "document test" }
};
var httpClient = new HttpClient();
var content = new StringContent(JsonSerializer.Serialize(new { points = new[] { doc } }),
Encoding.UTF8, "application/json");
await httpClient.PutAsync("http://localhost:6333/collections/test/points?wait=true", content);
Effectuer une recherche :
var search = new
{
vector = new[] { 0.1f, 0.2f, -0.1f, 0.9f },
top = 1
};
var response = await httpClient.PostAsync("http://localhost:6333/collections/test/points/search",
new StringContent(JsonSerializer.Serialize(search), Encoding.UTF8, "application/json"));
Console.WriteLine(await response.Content.ReadAsStringAsync());
✅ Conclusion
En moins de 10 minutes, vous avez :
- Installé Docker Desktop
- Téléchargé et exécuté QDrant
- Créé une collection
- Indexé un vecteur
- Vérifié une requête de recherche
Vous êtes maintenant prêt à intégrer QDrant dans une application .NET, à des fins de recherche vectorielle locale, moteur RAG ou classification sémantique.
La technique du RAG est essentielle, elle impose de connaître les vecteurs et leur stockage dans des bases vectorielles. QDrant est l'outil idéal pour s'entraîner ou mettre en place des Apps utilisant cette technique qui est appelée à se généraliser.
Stay Tuned !