Previously published on Nuclia.com. Nuclia is now Progress Agentic RAG.
Hello, This is Ramon Navarro Bosch, CTO and Co-Founder at Nuclia. Together with Eudald Camprubí, my Co-Founder and companion in battles for many years, we’ve been building something for the last two years. Our vision is to deliver an engine that allows engineers and builders to search on any domain-specific set of data, focusing on unstructured data like video, text, PDFs, links, conversations, layouts and many other sources.
For many years, we’ve been fighting with general-purpose indexing tools to answer questions on top of a set of files/text/web/etc., but kept failing because general purpose- indexing tools and AI models do not have the same interface, the same goal, speed or scaling story. That’s why we decided to build an end-to-end solution to deliver this service as an API.
First, we need to know what it means to answer a question on top of a set of data (i.e., information retrieval, or IR, for those in the know.)
It’s a four-step process:
We want to make this technology available for everybody, so we made a big effort to create an easy-to-use workflow for self-hosting, NucliaDB-hosting or using our Cloud.
Once the data has been processed, you can search via our custom widget generator, the Nuclia SDKs or via HTTP Rest API. In order to do semantic search or relations search, you will need a Nuclia API key so it can use the Predict API and generate the embeddings at query time. The Nuclia Predict API is designed to be fast (from 5 to 10ms of computation time) to add the least overhead possible on the search query. And there's no need to deploy a graphics processing unit (GPU) or a specific prediction architecture.
If you want to generate new models, you can play with our Nuclia Learning API:
Once the model is computed, you can predict using the Cloud Predict API or download in TensorflowJS format—only for intent detection right now—and use it with the Typescript SDK.
With the nucliadb_dataset Python package, you can create your own stream of data for any of the supported tasks and create a partitioned set of Apache Arrow files that can be used on any of the common datasets NLP libraries to train, evaluate and compute new models.
Ranking is our main goal. You can already use a classical ranking for full-text search (e.g., boosting and BM25), and a good generic multilingual semantic search. We know we can do better, so we will add the option to train your own bi-encoder with your domain data/languages and annotated data/queries.
We are working to deliver the best experience in our Cloud and self-hosted OSS environments, and to provide tooling for moving from one to the other easily with a dump and a restore of a KnowledgeBox.
We believe Nuclia and NucliaDB are the perfect match to train a model that can act like Chat GPT, but with real up-to-date data from your own environment. The bi-encoder helps to use your custom data and provides context for our approach to generative AI (GenAI), so we can provide a good qualified answer. No bias, only proper information.
Our goal is to make it feasible to create a model, small enough to run in multiple edge devices and push the question answering to the client side.
Integrations via the Nuclia desktop applications are easy to develop and we invite everybody to help by adding integrations that would be useful to you!
We would like to invite all data scientists to test our nucliadb-sdk and nucliadb-dataset to create crazy models, give feedback and test the first NLP-focused open source DB (pypi/docker).
Any use case you have in mind, please come share on our Discord server.
We will continue to publish more articles explaining how to use all the power of Nuclia and NucliaDB on our Cloud and OSS.
Subscribe to get all the news, info and tutorials you need to build better business apps and sites