Inspiration
Our inspiration primarily came from the presentation that the sponsors delivered during the opening ceremony, which truly caught our attention. We realized that implementing RAG in this sponsor project was essential, which motivated us to choose it as an opportunity to learn more about the technology.
What it does
Our product is designed to recommend accelerators to companies, our primary users. It features a sign-in and sign-up page for basic authentication, directing new users to a profile page where they can enter their company name, industry, and start date.
Upon logging in, existing users are directed to their dashboard, which displays all the products they are currently involved with. They can also access the profile page from the navbar if they need to update their information.
From the dashboard, users can click an "Add Accelerators" button that takes them to the recommendations page—the core of our project. On this page, users are prompted to describe what they are looking for and select a category and type for filtering. After they press the "search" button, we generate a list of accelerator recommendations based on their input, which is displayed below the search input component.
How we built it
We built the product using several technologies. The main project is based on Next.js and Tailwind CSS, and it is hosted on Vercel. For authentication and obtaining user IDs for the companies, we utilized Clerk. We used Firebase to store company information displayed on the dashboard.
To facilitate data entry, we created Python scripts that convert Excel sheets of demo data into entries for the vector database. Additionally, we employed LangChain and Sentence Transformers to implement text embedding in both our Python scripts and Next.js APIs.
The recommendation system is structured on two separate RAG database clusters, allowing for easier uploads to the databases. When a user performs a search, the products vector database is queried using the description as vectors and category as filters. The resulting data is then used as vectors to search the accelerators vector database, filtered by type.
Challenges we ran into
One of the main challenges we encountered was transferring XML data into the vector database. This issue arose primarily due to the lack of comprehensive documentation for the OpenPyXL library, making the process more complicated than anticipated.
Another challenge was finding the right embedding model that would be compatible with both Next.js and Python. This required significant research and experimentation to find the models that provide the same vector dimensions for the vector database.
Accomplishments that we're proud of
We’re really proud of finishing the recommendation engine for our project—it was a significant milestone for us! We’re also thrilled that we managed to do this while having a blast at the hackathon.
What we learned
We really honed our teamwork and collaboration skills, discovering how vital effective communication is and how much we can accomplish by leaning on each other’s strengths. During the process, we faced some interesting challenges, such as transferring XML data and finding the right embedding models, which encouraged us to research and learn more about the various technologies we were using and how they interact with each other.
What's next for RecEl
We plan to enhance the user interface to make it more intuitive and visually appealing. Additionally, we aim to add features that will improve user experience, such as the ability to filter recommended accelerators by industry relevance. This will allow companies to receive even more tailored suggestions based on their specific sector, ensuring they find the most suitable resources to support their growth.
Log in or sign up for Devpost to join the conversation.