Inspiration
The inconvenience and inaccuracy of traditional email search methods inspired this project. Conventional search often yields irrelevant results, requiring significant time and effort to locate the desired emails.
What it does
The app features user authentication to simulate an email account and leverages AI to transform key email details—such as the sender's name, organization, email, subject, content, and attachments—into individual vector embeddings of 256 dimensions (can be set to 768 or higher for real-world applications). For querying, the app converts the input query string into a vector embedding of the same size, and then ranks the emails from highest to lowest based on the vector search score. For the traditional categories, such as friends, family, work etc. We implemented an AI model to automatically adds the "category" attribute to the email upon creation. ## How we built it We utilized MongoDB as our database and employed Flask to bridge the frontend and backend components. The frontend was developed using HTML, CSS, and JavaScript to construct the webpage layout. The backend was built with Python and connects to AI models through API integration, while Ajax is used for data transfer.
Challenges we ran into
- Vector Search: Implementing vector search required determining the optimal dimension and search method. For this demo, we settled on a 256-dimensional space and cosine similarity after tuning the embedding generation model. Additionally, formatting the vector search results for proper display on the frontend was a critical step.
- Lack of Data: To optimize the vector search parameters, we needed sample emails. We developed an automatic email-generating model using the Gemini API to produce emails on various topics. However, the model initially generated emails with repetitive names and topics. To resolve this, we adjusted the model’s tuning parameters (temperature, top_p, top_k) and implemented a random topic generator.
- Frontend Styling: Managing the pagination and labels to split and categorize emails required careful store management. We needed to design a clear logic for managing the state to avoid confusion and ensure the interface was intuitive and responsive.
Accomplishments that we're proud of
- Fully functional vector search and embedding generation.
- Emails are ranked in order of search score. 3. Emails are correctly categorized for "Flagged", "Family", "Social", "Friends", "Work", "Other". 4. Beautiful styling for the UI and great design for the UX.
What we learned
- Vector Search.
- Use API to create custom models.
- Flask.
- Teamwork and version control with git and virtual environment.
- Pitch and video creation.
What's next for InboxGenius
Here's a refined version of your statement: InboxGenius can be fine-tuned and adapted for various industries. The vector search feature can be further optimized through testing with larger datasets. The embedding vector search method is highly scalable, making it suitable for diverse applications across different sectors. Its capacity to handle large volumes of information ensures that it is well-suited for businesses of all sizes. Furthermore, the system can be developed into an application and deployed on cloud services, facilitating easy access and management. Moreover, the vector search method can be applied to other fields such as student-tutor matching for eduction, finding the perfect doctor in health etc.
Log in or sign up for Devpost to join the conversation.