Chatbot RAG (Retrieval-Augmented Generation) open source basé sur Weaviate, offrant une solution RAG de bout en bout, fluide et conviviale.

BSD-3-ClausePythonVerbaweaviate 7.4k Last Updated: July 14, 2025

Présentation détaillée du projet Verba

Aperçu du projet

Verba est une application open source de génération augmentée par récupération (RAG), développée par Weaviate et surnommée "The Golden RAGtriever". Elle offre une solution RAG de bout en bout, fluide et conviviale, permettant aux utilisateurs d'explorer des ensembles de données et d'en extraire des informations en quelques étapes simples, que ce soit en local avec Ollama et Huggingface, ou via des fournisseurs de LLM tels qu'Anthropic, Cohere et OpenAI.

Fonctionnalités clés

🤖 Prise en charge des modèles

  • Modèles locaux: Prend en charge les modèles Ollama (ex: Llama3) et HuggingFace
  • Modèles cloud: Intègre les principaux fournisseurs de services d'IA tels qu'OpenAI, Anthropic, Cohere, Groq, Novita AI, Upstage
  • Modèles d'intégration (Embedding): Prend en charge divers modèles d'intégration, y compris Weaviate, SentenceTransformers, VoyageAI, etc.

📁 Prise en charge des données

  • Types de fichiers: Prend en charge de nombreux formats tels que .txt, .md, .pdf, .csv, .docx, .pptx
  • Sources de données: Peut importer des données depuis le système de fichiers local, des dépôts GitHub, des URL, etc.
  • Fonctionnalités spéciales:
    • Web scraping via Firecrawl
    • Analyse de documents via UpstageDocumentParse
    • Traitement de fichiers audio via AssemblyAI

✨ Fonctionnalités RAG

  • Recherche hybride: Combine la recherche sémantique et la recherche par mots-clés
  • Suggestions d'autocomplétion: Offre une fonctionnalité de suggestion de requêtes
  • Filtrage intelligent: Prend en charge le filtrage par document, type de document, etc.
  • Métadonnées personnalisables: Contrôle total des paramètres de métadonnées
  • Ingestion asynchrone: Ingestion asynchrone des données pour améliorer la vitesse de traitement

🗡️ Techniques de découpage de documents (Chunking)

  • Découpage par tokens: Découpage de documents basé sur les tokens
  • Découpage par phrases: Utilise spaCy pour le découpage au niveau des phrases
  • Découpage par paragraphes: Prend en charge le découpage de documents au niveau des paragraphes

Architecture technique

Verba adopte une conception d'architecture modulaire, décomposant le processus RAG en plusieurs étapes modulaires indépendantes, notamment :

  1. ReaderManager: Reçoit une liste de chaînes de caractères (chemins, URL ou texte) et produit une liste de documents Verba.
  2. ChunkerManager: Reçoit une liste de documents et découpe le texte de chaque document en fragments plus petits.
  3. EmbeddingManager: Reçoit une liste de documents et les intègre (embeds) dans Weaviate.

Méthodes de déploiement

💻 Déploiement local

Exécutez localement avec Weaviate Embedded :

pip install goldenverba
verba start

🐳 Déploiement Docker

git clone https://github.com/weaviate/Verba
docker compose up -d --build

🌩️ Déploiement cloud

Connectez-vous à une instance Weaviate Cloud Services (WCS)

⚙️ Déploiement personnalisé

Prend en charge la connexion à une instance Weaviate auto-hébergée

Flux d'utilisation

1. Configuration de l'environnement

Créez un fichier .env pour configurer les clés API :

# Configuration OpenAI
OPENAI_API_KEY=votre_cle_openai

# Configuration Anthropic  
ANTHROPIC_API_KEY=votre_cle_anthropic

# Configuration Weaviate Cloud
WEAVIATE_URL_VERBA=votre_url_weaviate
WEAVIATE_API_KEY_VERBA=votre_cle_weaviate

# Configuration Ollama locale
OLLAMA_URL=http://localhost:11434

2. Importation des données

  • Via l'interface web, sélectionnez "Import Data"
  • Prend en charge l'ajout de fichiers, de répertoires ou d'URL
  • Chaque fichier peut être configuré individuellement

3. Configuration du pipeline RAG

Sur la page "Config", configurez :

  • Le modèle d'intégration (embedding)
  • Le modèle de génération
  • La stratégie de découpage (chunking)
  • Les paramètres de récupération (retrieval)

4. Démarrer la conversation

Sur la page "Chat" :

  • Saisissez une question pour obtenir des réponses pertinentes
  • Visualisez les fragments de documents sémantiquement pertinents
  • Obtenez une réponse synthétisée générée par l'IA

Fonctionnalités distinctives

📊 Visualisation vectorielle 3D

Offre une interface de visualisation 3D des données vectorielles pour aider les utilisateurs à comprendre la distribution des données.

🎨 Interface utilisateur personnalisable

Interface utilisateur entièrement personnalisable, prenant en charge l'adaptation à l'image de marque.

🔄 Cache sémantique

Utilise la fonctionnalité de cache sémantique de Weaviate pour intégrer les réponses et les requêtes générées, garantissant que les requêtes répétées sont traitées rapidement en vérifiant le cache pour des requêtes sémantiquement identiques précédemment traitées.

🤝 Intégration de bibliothèques RAG

  • LangChain: Le pipeline RAG de LangChain est déjà pris en charge
  • Haystack: Prise en charge prévue
  • LlamaIndex: Prise en charge prévue

Cas d'utilisation

  1. Gestion des connaissances personnelles: Construire un système de requête intelligent pour une bibliothèque de documents personnels.
  2. Récupération de documents d'entreprise: Aider les employés à trouver rapidement des documents et informations d'entreprise pertinents.
  3. Assistance à la recherche: Aider les chercheurs à analyser et interroger des documents de recherche.
  4. Service client: Construire un système de service client intelligent basé sur une base de connaissances d'entreprise.
  5. Éducation et formation: Créer un système de requête interactif pour les supports d'apprentissage.

État du projet

Ce projet est piloté par la communauté, avec le soutien open source de Weaviate. Bien que l'équipe s'efforce de résoudre rapidement les problèmes, l'urgence de la maintenance peut ne pas être la même que pour un logiciel de production. Les contributions de la communauté sont les bienvenues pour aider à la stabilité du projet.

Exigences techniques

  • Version de Python: >=3.10.0, <3.13.0
  • Système d'exploitation: Linux, macOS (Weaviate Embedded n'est pas encore pris en charge sur Windows)
  • Matériel: Varie en fonction du modèle choisi et du volume de données

Contributions open source

Le projet accueille les contributions sous diverses formes :

  • Améliorations des fonctionnalités et corrections de bugs
  • Amélioration de la documentation
  • Suggestions de nouvelles fonctionnalités
  • Tests et retours

Pour plus de détails, veuillez consulter le guide de contribution et la documentation technique du projet.

Développements futurs

Selon la feuille de route du projet, les fonctionnalités prévues incluent :

  • Fonctionnalités de requête avancées (délégation de tâches basée sur l'évaluation LLM)
  • Fonctionnalités de réordonnancement (réordonnancement des résultats basé sur le contexte)
  • Interface d'évaluation RAG
  • Davantage d'intégrations de bibliothèques RAG

Verba représente la meilleure implémentation des pratiques de la technologie RAG, offrant aux utilisateurs une solution de requête de documents intelligente, puissante et facile à utiliser.

Star History Chart