P

Weaviate : Définition et Exemples

Weaviate est une base de données vectorielle open source conçue pour stocker, indexer et rechercher des données sous forme de vecteurs (embeddings), permettant des recherches sémantiques rapides à grande échelle.

Définition complète

Weaviate est une base de données vectorielle open source qui permet de stocker des objets de données accompagnés de leurs représentations vectorielles (embeddings). Contrairement aux bases de données traditionnelles qui s'appuient sur des correspondances exactes de mots-clés, Weaviate utilise la similarité vectorielle pour retrouver des informations sémantiquement proches d'une requête, même si les termes exacts diffèrent.

Le fonctionnement de Weaviate repose sur des algorithmes d'indexation vectorielle comme HNSW (Hierarchical Navigable Small World), qui permettent d'effectuer des recherches de plus proches voisins en temps quasi réel, même sur des millions d'objets. Weaviate propose également une recherche hybride combinant recherche vectorielle et recherche par mots-clés (BM25), offrant ainsi le meilleur des deux approches.

Weaviate s'intègre nativement avec les principaux fournisseurs de modèles d'embeddings (OpenAI, Cohere, Hugging Face, etc.) et peut vectoriser automatiquement les données à l'insertion. Il supporte la multi-tenancy, la réplication, et expose une API RESTful ainsi qu'une API GraphQL pour interroger les données de manière flexible.

Dans l'écosystème de l'IA générative, Weaviate joue un rôle central dans les architectures RAG (Retrieval-Augmented Generation). Il sert de mémoire externe aux grands modèles de langage en leur fournissant un contexte pertinent extrait d'une base de connaissances, améliorant ainsi la précision et la fiabilité des réponses générées.

Étymologie

Le nom « Weaviate » s'inspire du verbe anglais « to weave » (tisser), évoquant l'idée de tisser des liens entre les données grâce aux vecteurs et à la similarité sémantique. Le projet a été créé en 2019 par Bob van Luijt et la société SeMI Technologies (aujourd'hui Weaviate B.V.), basée aux Pays-Bas.

Exemples concrets

Construction d'un système RAG pour un chatbot d'entreprise

Tu es un assistant qui répond aux questions des employés. Utilise uniquement le contexte suivant, récupéré depuis notre base Weaviate, pour formuler ta réponse :

{contexte_weaviate}

Question : {question_utilisateur}

Recherche sémantique dans une documentation technique

Recherche dans Weaviate les 5 articles de documentation les plus pertinents pour la requête suivante : « comment configurer l'authentification SSO ». Résume chaque résultat en une phrase.

Classification automatique de tickets de support

En utilisant la recherche vectorielle Weaviate, trouve les 3 tickets résolus les plus similaires au ticket entrant suivant et suggère une catégorie ainsi qu'une solution probable.

Usage pratique

En prompt engineering, Weaviate est utilisé comme couche de récupération dans les architectures RAG : on stocke des documents vectorisés, puis on interroge Weaviate pour extraire les passages les plus pertinents avant de les injecter dans le prompt du LLM. Cette approche permet de fournir un contexte précis et à jour au modèle, réduisant les hallucinations et permettant de travailler avec des bases de connaissances privées sans fine-tuning.

Concepts liés

Base de données vectorielleEmbeddingRAG (Retrieval-Augmented Generation)Recherche sémantique

FAQ

Quelle est la différence entre Weaviate et une base de données classique comme PostgreSQL ?
PostgreSQL stocke et recherche des données via des requêtes SQL sur des champs structurés (texte exact, nombres, dates). Weaviate stocke des vecteurs numériques représentant le sens des données et effectue des recherches par similarité sémantique. Par exemple, une recherche « véhicule électrique » dans Weaviate retrouvera aussi des documents parlant de « voiture à batterie », ce qu'une recherche SQL classique ne ferait pas. PostgreSQL propose toutefois l'extension pgvector pour ajouter des capacités vectorielles basiques.
Weaviate est-il gratuit ?
Oui, Weaviate est open source sous licence BSD-3-Clause et peut être auto-hébergé gratuitement via Docker ou Kubernetes. Weaviate propose également un service cloud managé (Weaviate Cloud) avec un tier gratuit limité (sandbox) et des plans payants pour la production avec support, haute disponibilité et scaling automatique.
Pourquoi utiliser Weaviate plutôt que Pinecone ou Qdrant ?
Weaviate se distingue par sa recherche hybride native (vectorielle + BM25), sa vectorisation intégrée via des modules (pas besoin de pré-calculer les embeddings), son API GraphQL flexible et son caractère open source permettant l'auto-hébergement. Pinecone est un service entièrement managé (pas d'auto-hébergement), tandis que Qdrant est également open source mais avec un écosystème de modules moins étendu. Le choix dépend des besoins spécifiques : contrôle total, facilité d'utilisation ou fonctionnalités hybrides.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.