MovieMind 🎥🍿

Say goodbye to endless scrolling!


MongoDB Atlas x AWS Sagemaker x LangChain x LlamaIndex


🌟 Inspiration

In a world overflowing with movies and TV shows, even advanced search features on streaming platforms often fall short—rigid filters and generic algorithms make it hard to find something that truly matches your mood. MovieMind is different. You can simply type in exactly what you’re looking for—whether it’s "a movie about Mars and an invasion" or "a feel-good film with a dog" —and our AI-powered tool will find movies that match your description by leveraging the semantic understanding capabilities of MongoDB Atlas Vector Search. 🛸✨ Search bar

💡 What It Does

Discover movies through AI-powered search!

MovieMind is an AI-powered movie discovery platform that allows users to search for movies using natural language descriptions. You can describe the type of movie you’re in the mood for—whether it’s "a feel-good family adventure" or "a science fiction thriller with mind-bending concepts"—and MovieMind uses MongoDB's Atlas Vector Search to find the best matches. With an intuitive interface, you can explore preset search prompts, receive AI-enhanced search suggestions, and view movie mood and theme analyses. It’s the ultimate AI-powered movie matching tool!

🛠️ How I Built It

  • MongoDB Atlas Vector Search: I used MongoDB’s Atlas Vector Search on AWS to handle complex semantic search queries. By embedding movie plot data (sample dataset on MongoDB) as vectors, I could match user intent with relevant movie suggestions based on descriptive queries.
    Vector Search
  • Amazon SageMaker: I deployed an All MiniLM L6 v2 embedding model using Amazon SageMaker to generate the vector embeddings for movie plots and user queries. SageMaker studio's fully managed environment streamlined the process of creating, hosting, and querying the model endpoint.
  • AWS Lambda and API Gateway: I created a REST API using AWS Lambda to wrap the SageMaker model endpoint, to ensure communication between the frontend and backend. AWS API Gateway exposed this Lambda function, making it easily accessible for the application.
  • Flask and JavaScript: The backend is powered by Flask, which handles API requests, integrates with MongoDB Atlas, and processes embeddings via SageMaker. The frontend is built using Tailwind CSS and JavaScript, creating a smooth, interactive user experience. I also used the TMDB API to fetch movie posters and additional metadata.

MAAP Partner Tech Used

  • LangChain: I integrated LangChain to enhance the search query, making it more semantically accurate for vector matching. This allowed me to transform simple text input into richer queries that are better understood by the vector search system.
  • LlamaIndex: MovieMind leveraged LlamaIndex for efficient data indexing, enabling fast and scalable retrieval of movies based on thematic and emotional criteria.

🚧 Challenges I Ran Into

  • Optimizing Vector Search for Relevance: It took me a while to configure Atlas Vector Search to accurately match nuanced user descriptions. I iteratively fine-tuned the embedding configurations, adjusted cosine similarity thresholds, and tested multiple scenarios to ensure high-quality results.
  • Integrating AWS Services: It was my first time working with AWS so combining SageMaker, Lambda, and API Gateway required a lot of efforts. Setting up the permissions for Lambda to access SageMaker securely took several iterations. I also ran into issues while creating knowledge bases on Bedrock in my first attempts, so iterated to a more programmatic approach using Sagemaker.

🏆 Accomplishments That I'm Proud Of

  • Successfully implemented an AI-driven movie discovery platform that understands user intent beyond traditional search filters.
  • Achieved seamless integration of MongoDB Atlas with external tools like LangChain and LlamaIndex to optimize for better search results.

📚 What I Learned

  • Vector Search and Semantic Understanding: I gained deep insights into how vector databases, like MongoDB Atlas, can be used to power semantic search and personalize content discovery.
  • I learned AWS!!!: I gained practical experience deploying and working with ML models with SageMaker Studio. Using AWS Lambda and API Gateway, I created a serverless architecture to handle embedding creation and query processing efficiently.
  • Multimodal AI Integration: I learned to effectively integrate various AI technologies, including LangChain for query enhancement and LlamaIndex for efficient indexing, into a cohesive application.

🚀 What's Next for MovieMind

  • Enhanced Personalization: I plan to add user profiles that allow MovieMind to learn from users' preferences and make even better recommendations over time.
  • Additional Media Types: Expanding beyond movies, I could also include series and documentaries, making MovieMind a comprehensive discovery platform for all types of content.

MovieMind: Transforming "I kind of want to watch..." into "Let’s watch this!" ✨

Built With

Share this project:

Updates