-

Milvus sur l’intranet : comment le RAG améliore la recherche dans la base de connaissances ?

Les intranets d'entreprise modernes stockent d'énormes quantités de documents, de procédures, d'instructions et de connaissances organisationnelles. La recherche traditionnelle basée sur des mots-clés échoue souvent lorsque les utilisateurs recherchent des informations en utilisant des termes autres que ceux trouvés dans les documents.

Problème : un employé recherche "comment configurer l'accès au système de paiement", mais le document contient la phrase "configuration de l'intégration des paiements". La recherche traditionnelle ne trouvera pas ce document, même s'il contient la réponse à la question.

Solution : RAG (Retrieval-Augmented Generation) avec une base de données vectorielle permet la recherche sémantique. Le système comprend le sens de la requête et trouve des documents basés sur le contexte, pas seulement sur des correspondances de mots exacts.

Dans cet article, nous vous montrerons comment intégrer la base de données vectorielle Milvus avec Open Intranet sur Drupal pour créer une recherche intelligente dans les bases de connaissances d'entreprise.


Dans cet article :


Qu'est-ce que RAG et pourquoi est-il important pour les intranets?

RAG (Retrieval-Augmented Generation) est une technologie qui combine la recherche sémantique avec des réponses générées par IA. Dans le contexte des intranets d'entreprise, RAG offre de nombreux avantages.

Recherche sémantique

Au lieu de rechercher des mots-clés exacts, le système comprend l'intention de l'utilisateur.

Exemple :

  • Requête utilisateur : "comment réinitialiser le mot de passe de l'administrateur".
  • Recherche traditionnelle : recherche des documents contenant exactement ces mots.
  • Recherche sémantique : trouve des documents sur "la récupération d'accès", "le changement d'identifiants", ou "la restauration des privilèges d'administrateur". Même s'ils ne contiennent pas exactement ces mots.

Meilleurs résultats pour les utilisateurs

L'analyse des requêtes des clients montre que 66% des organisations à la recherche de solutions pour l'intranet nécessitent une recherche avancée ou une recherche basée sur l'IA. Ce n'est pas un hasard – dans les grandes organisations avec des milliers de documents, la recherche traditionnelle n'est plus suffisante. L'intelligence artificielle comprend le contexte et l'intention de l'utilisateur, ce qui la rend idéale pour travailler avec d'importantes bases de connaissances.

Scalabilité

Les bases de données vectorielles, comme Milvus, peuvent gérer des millions de documents tout en maintenant des temps de réponse rapides. C'est crucial pour les organisations avec d'importantes bases de connaissances.

Performance

Recherche rapide de similarités même dans de grands ensembles de données. Milvus utilise des algorithmes d'indexation avancés (HNSW, IVF) pour optimiser les requêtes.

Flexibilité

Extensible avec des fonctionnalités d'IA supplémentaires :

  • Chatbots AI avec accès aux documents ou aux connaissances de l'entreprise.
  • Étiquetage automatique des documents
  • Recommandations pour du contenu similaire.
  • Analyse de sentiment dans le contenu de l'entreprise.

Open Intranet : kit de démarrage pour les intranets d'entreprise

Open Intranet est un kit de démarrage open source sur Drupal pour la construction d'intranets d'entreprise.

Il comprend des fonctionnalités d'intranet prêtes à l'emploi telles que :

  • la collaboration et la communication,
  • le système de nouvelles et d'événements,
  • le partage de documents
  • la base de connaissances,
  • le répertoire des employés.

Le système permet aux organisations de lancer rapidement un portail interne flexible sans avoir à tout construire à partir de zéro.

Open Intranet équipé d'une base de connaissances prête à l'emploi.

Système Open Intranet avec une base de connaissances prête à l'emploi

Qu'est-ce que Milvus ? Base de données vectorielle pour RAG

Milvus est une base de données vectorielle open source spécialement conçue pour stocker, indexer et rechercher des représentations vectorielles de texte (incrustations)

Comment Milvus fonctionne-t-il dans le cadre de RAG ?

  1. Indexation : les documents provenant de l'intranet sont traités par un modèle d'IA (par exemple, OpenAI text-embedding-3-small), qui crée des vecteurs représentant le sens du texte.
  2. Stockage : les vecteurs sont stockés dans Milvus avec des métadonnées (titre, URL, date).
  3. Recherche : quand un utilisateur pose une question, la requête est également convertie en un vecteur, et Milvus trouve les documents les plus similaires basés sur la distance vectorielle.
  4. Retour des résultats : le système renvoie des documents triés par similarité sémantique.

Pourquoi la base de données vectorielle Milvus ?

  • Open Source : contrôle total des données, pas de verrouillage du fournisseur.
  • Scalabilité : supporte des millions de vecteurs avec des temps de réponse rapides.
  • Intégration prête à l'emploi : le module ai_vdb_provider_milvus pour Drupal facilite l'intégration.
  • Mode autonome : pour les petites organisations, il peut être exécuté en mode autonome sur un serveur unique.
  • Prêt pour l'utilisation en production : extensible à un cluster pour les grandes organisations.

Lire aussi : Bases de données vectorielles recommandées (VDB) pour Drupal - Aperçu des fournisseurs d'IA


À quoi ressemble l'architecture d'intégration ? Open Intranet + Milvus RAG

Le diagramme ci-dessous montre l'architecture d'intégration complète :

Le diagramme de la sirène montrant l'architecture d'intégration complète de Open Intranet et Milvus.

Diagramme créé à l'aide de l'outil Mermaid

Quels sont les composants spécifiques du système d'intégration ?

Chaque élément de l'architecture joue un rôle spécifique, assurant un traitement fluide des requêtes et une gestion des données sur l'ensemble de l'environnement RAG. Ci-dessous, nous décrivons comment les différents composants travaillent ensemble au sein d'Open Intranet.

Pile d'applications DDEV

Cet environnement de développement fournit une infrastructure clé en main pour exécuter un intranet avec Milvus, automatisant la plupart de la configuration. Cela permet de faire fonctionner l'ensemble du système localement en quelques minutes.

Conteneur Web (Application Drupal)

  • Drupal 11 avec PHP 8.3.
  • nginx-fpm comme serveur web.
  • Ports : 80 (HTTP), 443 (HTTPS), 8025 (Mailpit).
  • Intégration avec Milvus via le module ai_vdb_provider_milvus.

MariaDB (Base de données)

  • Base de données pour Drupal.
  • Version : MariaDB 10.11.
  • Stocke toutes les données de Drupal (contenu, configuration, utilisateurs).

Pile RAG Milvus

L'ensemble de services qui constitue la pile RAG Milvus est responsable du stockage des vecteurs, des métadonnées et de l'exécution des requêtes de recherche. Chaque composant du système joue un rôle distinct pour assurer une haute performance et une stabilité.

etcd (Couche de stockage)

  • Stockage des métadonnées et coordination.
  • Port : 2379.
  • Stocke : schémas de collection, index, configurations.
  • Pourquoi etcd ? C'est un magasin de valeurs clés distribué utilisé par Milvus pour stocker les métadonnées et coordonner entre les composants. Sans etcd, Milvus ne peut pas fonctionner.

MinIO (Couche de stockage)

  • Stockage d'objets pour les données vectorielles.
  • Ports : 9000 (API S3), 9001 (Console Web).
  • Stocke : vecteurs, segments, fichiers binaires.
  • Pourquoi MinIO ? C'est un stockage de données d'objets compatible avec l'API S3. Milvus l'utilise pour stocker les données vectorielles réelles et les segments. MinIO permet de scaler et de gérer efficacement de grandes quantités de données vectorielles.

Milvus (Moteur principal)

  • Le moteur principal de recherche de vecteurs.
  • Ports : 19530 (API), 9091 (Vérification de l'état de santé).
  • Fonctions:
    • stockage des embeddings sous forme de vecteurs,
    • recherche de similarité sémantique,
    • indexation et optimisation des requêtes,
    • API RESTful pour l'intégration avec Drupal.

Attu (Interface de gestion)

  • Interface web pour gérer Milvus.
  • Port : 8521 (exposé par DDEV).
  • Caractéristiques:
    • navigation dans les collections et les données,
    • surveillance des performances,
    • gestion des index,
    • visualisation des résultats de recherche.

À quoi ressemble le flux de données dans un intranet intégré avec la base de données de vecteurs Milvus ?

Le flux de données entre Drupal, le modèle d'incrustations et la base de données de vecteurs Milvus implique plusieurs étapes clés qui ensemble créent un processus de recherche intelligent. Ci-dessous, nous décrivons comment cela fonctionne du moment où une requête est faite jusqu'à la présentation des résultats.

Recherche sémantique

  1. L'utilisateur pose une question dans l'interface de l'intranet.
  2. Drupal convertit la requête en un vecteur en utilisant le modèle d'incrustations (OpenAI text-embedding-3-small).
  3. La requête est envoyée à Milvus via le module ai_vdb_provider_milvus.
  4. Milvus recherche des vecteurs similaires dans la base de données.
  5. Milvus renvoie les résultats triés par similarité sémantique.
  6. Drupal affiche les résultats à l'utilisateur avec le titre, un extrait de contenu et le score de similarité.

Indexation du contenu

  1. Un nouveau document est ajouté à la base de connaissances sur l'intranet.
  2. Drupal génère automatiquement une incorporation en utilisant l'API OpenAI.
  3. L'incorporation est enregistrée dans Milvus avec des métadonnées (titre, URL, date).
  4. Le document est prêt pour la recherche sémantique.

Lire aussi : Comment nous avons amélioré la précision des réponses du chatbot RAG de 40%


Comment installer Open Intranet avec l'option Milvus RAG ? Étape par étape

Le processus d'installation a été simplifié au maximum grâce à un script prêt à l'emploi qui configure automatiquement tous les composants nécessaires. Il suffit de suivre quelques commandes pour exécuter une démonstration complète de RAG dans votre environnement.

Prérequis

Avant de commencer, assurez-vous que vous avez :

  1. Docker Desktop — en cours d'exécution et actif.
  2. DDEV — installé (brew install ddev/ddev/ddev sur macOS).
  3. Clé API OpenAI — nécessaire pour générer des incrustations.

Processus d'installation de la démo Open Intranet RAG

Utilisez la commande suivante :

git clone https://github.com/droptica/openintranet_rag_demo.git
cd openintranet_rag_demo
./launch_openintranet_with_rag_demo.sh

Le script effectue automatiquement les opérations suivantes :

  1. Clonage de Open Intranet de Drupal.org.
  2. Téléchargement de la configuration docker-compose pour la base de données vectorielle Milvus.
  3. Configuration de DDEV (Drupal 11, PHP 8.3).
  4. Démarrage des conteneurs (web, db, Milvus).
  5. Installation des dépendances Composer.
  6. Ajout du module drupal/ai_vdb_provider_milvus:^1.1@beta.
  7. Copie de la recette (Recette Drupal) openintranet_milvus_rag.
  8. Installation de Drupal avec du contenu de démonstration.
  9. Application de la configuration de la recette Milvus RAG.
  10. Demande interactive de la clé API OpenAI (validation du format).
  11. Enregistrement de la clé API dans le module Key de Drupal.
  12. Indexation du contenu de la base de connaissances dans Milvus.
  13. Génération d'un lien de connexion unique.

Pendant l'installation, on vous demandera de coller la clé API OpenAI. Le script valide le format et la stocke de manière sécurisée.

Vérification de l'installation

Une fois l'installation terminée, il est utile de s'assurer que tous les éléments fonctionnent correctement et communiquent entre eux. Quelques commandes simples permettront de vérifier rapidement que l'indexation et la recherche sémantique fonctionnent correctement.

1. Vérification du statut de l'index

cd openintranet_source_code/openintranet
ddev drush search-api:status

Résultat attendu :

knowledge_base_content   Knowledge Base Content   100%         24        24

Si vous voyez 100% — tout fonctionne !

2. Vérification de la connexion à Milvus

  1. Ouvrez l'interface utilisateur de Milvus Attu : vérifiez le port en utilisant ddev describe (recherchez le port du service Attu).
  2. Connectez-vous à : http://milvus:19530.
  3. Trouvez la collection : openintranet_knowledge_base.
  4. Vérifiez : le compte d'entités > 0

3. Test de l'API OpenAI

cd openintranet_source_code/openintranet
ddev drush php:eval "
$provider = Drupal::service('ai.provider')->createInstance('openai');
$result = $provider->embeddings('test', 'text-embedding-3-small', []);
echo count($result->getNormalized()) . ' dimensions';
"

Le résultat attendu est : 1536 dimensions

Écran avec la base de données vectorielle Milvus en fonctionnement pour Open Intranet

Écran avec la base de données vectorielle Milvus en fonctionnement pour Open Intranet

Vous avez besoin de plus d'informations techniques ?

Pour plus d'informations techniques, y compris des conseils de dépannage détaillés, consultez le README du projet sur GitHub : https://github.com/droptica/openintranet_rag_demo.

Comment fonctionne la recherche RAG ? Exemples d'utilisation

La recette prête à l'emploi de Droptica pour Drupal comprend une page de recherche RAG exemple à /search-rag-example. Pour la tester:

  1. Ouvrez la page: https://your-site.ddev.site/search-rag-example.
  2. Entrez une requête de recherche (par exemple, "configuration milvus").
  3. Vérifiez l'affichage des résultats à partir de:
    • titre (lien vers la page source),
    • extrait de contenu,
    • résultat de similarité.

Exemple de recherche

Pour montrer comment RAG fonctionne en pratique, l'exemple suivant illustre la différence entre la recherche traditionnelle et les résultats obtenus en utilisant la base de données vectorielle Milvus.

Requête de l'utilisateur: "comment configurer l'accès au système."

La recherche traditionnelle ne trouvera que des documents contenant exactement ces mots.

La recherche RAG trouvera des documents sur:

  • configuration des autorisations,
  • gestion de l'accès,
  • paramètres du système d'autorisation,
  • instructions de connexion.

Même si les documents ne contiennent pas la phrase exacte "comment configurer l'accès au système."

Comment Milvus RAG peut-il être utile dans les organisations?

Milvus permet aux organisations d'utiliser RAG dans divers scénarios commerciaux, de la recherche de documents à l'analyse de contenu. Voici quelques exemples.

1. Recherche de documents

Trouver des documents en fonction du sens et du contexte plutôt que des mots clés. Exemple: un employé cherche "procédure d'urgence" et le système trouve des documents sur "plans de continuité des activités" et "scénarios de crise."

2. Chatbots avec connaissance de l'entreprise

Création de chatbots ayant accès au savoir actuel de l'organisation. Le chatbot peut répondre aux questions des employés en utilisant des documents de l'intranet comme source de connaissance.

3. Recommandations de contenu

Suggérer un contenu similaire aux utilisateurs en fonction de la similarité sémantique. Exemple: après avoir lu un document sur "la sécurité des données", le système suggère des documents sur "le RGPD" et "la protection de la vie privée."

4. Étiquetage automatique

Attribution automatique de tags en fonction du contenu du document. Le système analyse le sens du texte et attribue les catégories appropriées sans intervention manuelle.

5. Analyse des sentiments

Analyse du sentiment dans le contenu de l'entreprise. Le système peut identifier les documents qui doivent être mis à jour ou ceux qui peuvent construire une culture organisationnelle positive.

Quelles technologies ont été utilisées dans la démo de Open Intranet + la base de données vectorielle Milvus?

Consultez la liste détaillée des technologies utilisées.

Drupal 11

  • Version: 11.x
  • PHP: 8.3
  • Base de données: MariaDB 10.11
  • Serveur Web: nginx-fpm

Milvus

  • Version: 2.5.18
  • Mode: Standalone (pour le développement)
  • API: RESTful sur le port 19530
  • Incorporations: 1536 dimensions (text-embedding-3-small)

OpenAI

  • Modèle d'incorporation: text-embedding-3-small
  • Dimensions: 1536
  • Coût: ~$0.01-0.10 pour la totalité de la démo

DDEV

  • Version: v1.24.10
  • Plateforme: Docker Desktop
  • Réseau: ddev_default (réseau externe)

Questions fréquemment posées (FAQ) sur la base de données vectorielle Milvus sur l'intranet?

Découvrez les questions les plus fréquemment posées et leurs réponses sur l'intégration de Milvus avec votre intranet.

Est-ce que RAG nécessite une connexion internet constante pour l'API OpenAI?

Dans la version démo du projet sur GitHub, une connexion à l'API OpenAI est nécessaire. Cependant, la solution peut être configurée avec d'autres modèles d'incorporation en fonction des besoins de l'organisation, par exemple, avec des modèles locaux (Transformateurs de phrases) fonctionnant sans connexion internet ou d'autres APIs cloud (Claude, serveurs IA locaux).

Quels sont les coûts d'utilisation de l'API OpenAI pour les incorporations?

Le modèle text-embedding-3-small coûte $0.02 par 1M de tokens. Pour une base de connaissances typique de 1 000 documents (moyennant 500 mots chacun), le coût d'indexation est d'environ $0.10-0.50 une seule fois. La recherche nécessite uniquement la génération d'une incorporation pour la requête (quelques mots), donc les coûts sont minimaux.

Lisez aussi : Comment nous avons réduit les coûts de l'API IA de 95% avec le routage intelligent des questions

Comment passer à l'échelle la solution pour une organisation plus grande?

Pour les organisations plus grandes, vous pouvez:

  • passer du mode autonome au cluster Milvus (plusieurs nœuds),
  • utiliser des instances MinIO plus grandes pour une plus grande capacité,
  • séparer etcd en nœuds distincts pour de meilleures performances,
  • ajouter des équilibreurs de charge devant l'API Milvus.

Peut-on utiliser d'autres modèles d'incorporation à la place d'OpenAI?

Oui, le module ai_vdb_provider_milvus est agnostique de la source des incorporations. Vous pouvez utiliser d'autres fournisseurs (Claude, modèles locaux) tant qu'ils renvoient des vecteurs dans le bon format.

À quelle fréquence le contenu doit-il être réindexé?

Cela dépend de la fréquence des changements dans la base de connaissances. Pour les intranets dynamiques avec des mises à jour fréquentes, vous pouvez configurer une réindexation automatique à chaque changement de contenu. Pour les bases de données plus statiques, une réindexation une fois par jour ou une fois par semaine suffit.

La solution fonctionne-t-elle pour les organisations ayant des exigences de conformité (RGPD, secteur de la santé)?

Oui, parce que tous les composants (Drupal, Milvus, etcd, MinIO) peuvent fonctionner sur place, les données ne quittent jamais l'infrastructure de l'organisation. C'est crucial pour les organisations ayant des exigences de conformité. L'API OpenAI nécessite l'envoi du contenu du document, donc pour les données hautement sensibles, des modèles d'incorporation locaux peuvent être envisagés.

Quelles sont les exigences matérielles pour Milvus en mode autonome?

Pour les petites organisations (jusqu'à 10 000 documents), le suivant est suffisant:

  • 4 GB de RAM
  • 2 cœurs de CPU
  • 20 GB de disque

Pour les organisations plus grandes, les exigences augmentent proportionnellement au nombre de documents et de requêtes.

Base de données vectorielle Milvus sur l'intranet – récapitulatif

L'intégration de Milvus RAG avec Open Intranet ouvre de nouvelles possibilités pour les plateformes d'entreprise. Les avantages les plus importants comprennent:

  • Recherche intelligente basée sur le sens, pas seulement sur les mots clés.
  • Meilleure expérience utilisateur dans l'intranet grâce à la compréhension du contexte et de l'intention.
  • Scalabilité pour les organisations avec de grandes bases de connaissances.
  • Flexibilité dans l'expansion avec des fonctionnalités IA supplémentaires.

Tous les composants sont open source, ce qui signifie un contrôle total des données et aucune dépendance à un fournisseur. La solution est prête pour une utilisation en production et peut être mise à l'échelle en fonction des besoins de l'organisation.

Avez-vous besoin d'implémenter une base de données vectorielle sur votre intranet?

Chez Droptica, nous concevons et mettons en œuvre des solutions basées sur l'IA en utilisant LLM, des bases de données vectorielles et des pipelines RAG avancés. Nous vous aidons à choisir la bonne technologie, à intégrer la recherche sémantique, à créer des chatbots d'entreprise, et à optimiser la qualité des réponses générées. Découvrez notre service de développement d'IA générative et voyez comment nous pouvons soutenir votre organisation dans la construction de solutions intelligentes basées sur les données.

-