Inspiration
The inspiration for PlotFinder came from the need to easily find movies based on their plot, rather than just by title or genre. With nearly a million movies in existence, finding one based on a vague memory of its storyline can be a daunting task. This challenge sparked the idea to leverage cutting-edge technology, like vector databases and natural language processing, to create a tool that simplifies the search for movies by their plots.
What it does
PlotFinder allows users to search for movies by simply describing the plot. By leveraging the power of vector search, the application identifies movies that match the given plot description. Once a match is found, PlotFinder fetches detailed information about the movie, including its title, release date and more, using the Movie Database API.
How we built it
We built PlotFinder using a combination of advanced technologies:
- Dataset: We started with a movie dataset from Kaggle, containing nearly a million movies.
- Vector Database: We created a vector database using TiDB to store the embedded movie plots.
- Embedding: The plots were embedded using Jina.ai to convert textual descriptions into vector representations.
- Search API: We developed a search API using Flask that leverages TiDB's vector search capabilities. This API identifies movies that match the user's plot description.
- Movie Information: Once a match is found, the API calls the Movie Database API to retrieve detailed information about the movie.
- Frontend: Finally, we built a Vue.js web app that interacts with the API, allowing users to input plot descriptions and view the search results in a user-friendly interface.
Challenges we ran into
One of the main challenges we faced was the unfamiliarity with vector databases. This was our first time using such a technology, and there was a steep learning curve involved in understanding how to effectively store and query vector data. Integrating all the different components to work seamlessly together also required careful planning and troubleshooting.
Accomplishments that we're proud of
We’re proud of successfully building a fully functional and innovative movie search tool within the timeframe of the hackathon. Despite the challenges, we managed to integrate advanced technologies like vector databases and natural language processing to create a user-friendly application. The experience of working with new tools like TiDB and Jina.ai, and overcoming the associated learning curve, is an accomplishment in itself.
What we learned
Throughout the development of PlotFinder, we learned a great deal about vector databases and their practical applications in search technologies. We gained hands-on experience with TiDB and Jina.ai, understanding their strengths and how to utilize them in a real-world project. Additionally, we deepened our knowledge of integrating various APIs and building a cohesive system that delivers accurate and relevant results.
What's next for PlotFinder
Moving forward, we plan to enhance PlotFinder by expanding its database to include even more movies, refining the search algorithms for greater accuracy, and possibly introducing features like user reviews and ratings. We also aim to explore further use cases for vector databases, leveraging the technology in other areas of natural language processing and search.
Built With
- jina.ai
- langchain
- tidb
- vuejs
Log in or sign up for Devpost to join the conversation.