19/11/2022 –, A201
NucliaDB est une base de données conçue pour être utilisée dans des applications de recherche sémantique et de machine learning. Elle combine recherches full-text, fuzzy, sémantique et par graphe. Elle constitue le système de stockage parfait pour des datasets et des sorties de modèles de machine learning et de les rendre opérationnels dans des applications réelles.
NucliaDB utilise la recherche full-text et fuzzy fournie par Tantivy, mais elle permet aussi de stocker le représentation vectorielle qu'on peut obtenir en utilisant un modèle de machine learning, et de les indexer pour trouver les documents, les paragraphes ou les phrases qui correspondent sémantiquement à une question.
Elle fournit aussi une recherche relationnelle par graphe en identifiant les mots correspondant à des entités importantes (noms de personnes, dates, lieux, etc.) et en construisant un graphe de dépendances entre eux.
NucliaDB est écrite en Rust, elle s'utilise via une API REST, elle est distribuée sous licence AGPLv3, et elle met l'accent sur la performance et les gros volumes de données.
À titre d'exemple, on va importer des questions/réponses de StackOverflow, les analyser avec un modèle de langage d'Hugging Face, les indexer et ensuite poser des questions sur ces données.
Longtemps développeur Python, je me suis investi largement dans l'open source, en particulier au sein de la communauté Plone. Depuis quelques années, je suis passé du côté frontend, je développe en Svelte et Angular. J'ai rejoint il y a quelques mois la petite équipe catalano-occitane de Nuclia, fondée par des amis et membres de la communauté Plone.