UStackUStack
NodeDB icon

NodeDB

NodeDB, moteur de base de données universel en Rust, combine relationnel, vecteur, graph, document, colonne et tableaux scientifiques. GraphRAG en une requête via clients PostgreSQL.

NodeDB

Qu'est-ce que NodeDB ?

NodeDB est un moteur de base de données unique visant à remplacer plusieurs systèmes de données en combinant différents types de données — relationnel, vecteur (IA), graphe, document, colonne et tableau scientifique — dans une architecture unique basée sur Rust. Son objectif déclaré est de réduire la fragmentation entre bases de données séparées et d'éliminer le besoin de « pipelines » et de « colle Python » lors du travail avec des données mixtes.

Un positionnement clé est que les clients PostgreSQL existants peuvent être utilisés « simplement » pour se connecter, tandis que NodeDB prend en charge des requêtes de style GraphRAG qui fusionnent recherche vectorielle et expansion graphe en une seule requête. L'exemple affiché sur la page illustre la récupération sémantique plus contexte graphe dans le cadre du workflow au niveau de la base de données.

Fonctionnalités clés

  • Moteur unifié pour plusieurs modèles de données (relationnel, vecteur, graphe, document, colonne, tableau scientifique), pour stocker et interroger différents types de données sans basculer entre systèmes séparés.
  • Architecture basée sur Rust, décrite comme un moteur « hyper-efficace » implémenté dans un seul binaire Rust.
  • Compatibilité clients PostgreSQL : la page indique que votre client Postgres existant « fonctionne directement », visant à réduire la friction d'adoption d'un nouveau backend.
  • Support des requêtes GraphRAG combinant recherche vectorielle et expansion graphe en une seule instruction, positionné comme « GraphRAG au niveau de la base de données ».
  • Workflow de fusion GraphRAG en une requête avec contrôles pour top-k, profondeur d'expansion, étiquette et direction des arêtes, et paramètres de fusion des résultats (comme montré dans l'exemple).

Comment utiliser NodeDB

  1. Commencez par rejoindre le processus d'accès anticipé ou demandez l'accès via l'option « Get Early Access » du site.
  2. Utilisez un client PostgreSQL existant pour vous connecter, la page indiquant explicitement la compatibilité clients Postgres.
  3. Soumettez une requête unique de style GraphRAG effectuant une récupération sémantique depuis les vecteurs et une expansion via les arêtes graphe selon les paramètres de la requête.
  4. Utilisez les résultats fusionnés de cette requête comme base pour le contexte LLM, la page présentant cela comme récupération sémantique plus contexte graphe au niveau de la base de données.

Cas d'usage

  • Construire une récupération GraphRAG sans pipelines externes : exécutez une requête base de données unique effectuant récupération sémantique vectorielle, expansion d'entités liées via arêtes graphe, et fusion des résultats pour usage LLM en aval.
  • Répondre à des questions centrées sur les entités avec contexte graphe : récupérez les meilleures correspondances vectorielles puis étendez via relations (avec étiquettes et direction des arêtes) pour rassembler informations graphe proches en une seule requête.
  • Implémenter une récupération hybride où ranking et structure comptent : utilisez les paramètres de récupération fusionnée montrés (ex. top-k, profondeur d'expansion, paramètres de fusion) pour équilibrer correspondances vectorielles directes et résultats graphe étendus.
  • Réduire l'orchestration côté application : évitez « pipelines » et « colle Python » en déplaçant la fusion des opérations vecteur et graphe dans la requête base de données elle-même.
  • Consolider le stockage de données sur plusieurs types de modèles : quand une application repose actuellement sur systèmes séparés pour données relationnelles, vecteurs et relations graphe, utilisez NodeDB comme moteur unique couvrant ces catégories.

FAQ

  • NodeDB nécessite-t-il des pipelines séparés ou de la colle Python pour combiner récupération vectorielle et graphe ? La page indique que l'approche utilise « une requête » avec « Pas de pipelines » et « Pas de colle Python », décrivant la fusion au niveau de la base de données.

  • Que signifie « Your existing Postgres client just works » ? Le site revendique explicitement la compatibilité clients PostgreSQL, impliquant que vous pouvez utiliser les patterns clients Postgres courants pour vous connecter.

  • Qu'est-ce que GraphRAG dans ce contexte ? La page présente GraphRAG comme « recherche vectorielle + expansion graphe » fusionnés en une requête, produisant résultats de récupération sémantique avec contexte graphe pour un LLM.

  • Quels types de modèles de données NodeDB supporte-t-il ? La page liste relationnel, vecteur, graphe, document, colonne et données tableaux scientifiques.

Alternatives

  • Base de données vectorielle séparée + base de données graphe séparée : cela garde la recherche vectorielle et la traversée de graphe dans des systèmes différents, nécessitant généralement une couche applicative pour orchestrer la récupération et la fusion (la page positionne NodeDB comme évitant les pipelines et le collage).
  • Services de recherche hybride avec reclassement/fusion externe : certaines solutions offrent la recherche sémantique plus reclassement, mais le flux de travail peut encore nécessiter une orchestration entre les étapes de récupération et d’expansion graphe/contexte.
  • Bases de données SQL traditionnelles avec extensions pour vecteurs/graphes : vous pouvez approximer des requêtes multi-modèles avec des add-ons, mais l’argumentaire de la page met l’accent sur un moteur unifié et une fusion en une requête entre types de données.
  • GraphRAG implémenté dans la couche applicative : au lieu d’effectuer la recherche vectorielle et l’expansion graphe à l’intérieur de la base de données, une application peut exécuter plusieurs étapes de récupération puis assembler le contexte pour le LLM.