Inspiration
We wanted to build a bot that would break the mould of the traditional, predictable dating applications available and also aimed to use the bot to encourage users to embrace the lighter side of relationships, turning awkward encounters into memorable experiences. Therefore, we decided to go against the grain by matching them with people they would least expect and arranging dates that would bring them out of their comfort zone.
What it does
Why settle for predictable love when chaos is so much more thrilling? Buckle up for a dating experience and say goodbye to the mundane with Unhinged where unpredictability meets romance. Be prepared to open your mind to the fullest as you go on the most unexpected dates with your least compatible match as Unhinged flips the script on the Pulitzer-winning Gale-Shapely algorithm.
How we built it
- We built a telegram bot that would be responsible for querying users for their profile details and preferences which were then used as input to our matching algorithm
- Our algorithm is based on the Gale-Shapely algorithm that some popular dating sites such as Project Aphrodite leverage but modified to output pairs that were the least mutually compatible
- Using the attributes of each pair, we leveraged Mistral - a large language model - in order to generate a possible date, inclusive of an activity and meal, that would not be ideal for each party
- In order to ensure that the response was appropriately undesirable for each party, coherent and humorous enough to excite users, we spent a significant amount of time tinkering with the prompts that were provided to Mistral until we got our desired response and could ensure consistency in the quality of the responses.
Challenges we ran into
- Refining the responses of Mistral with prompt engineering was tricky and required us to tinker with different variations of a prompt that would allow us to deliver the most desirable response i.e. one that is humorous, succinct, relevant to our goal of creating the "worst possible dates" as well as consistent in quality. We had to experiment with various prompt engineering tactics including the construct of the prompt, using sample etc.
- Originally, we had plans to reward users once they have completed the "worst possible dates" that were arranged by the bot but due to time constraints and how complex for us, we decided to shelve this idea for future plans and focus on our key features and unique selling points.
Accomplishments that we're proud of
- We are proud of being able to successfully modify the Gale-Shapely algorithm to output the least mutually compatible pairs as well as take into account the attributes of users in doing so.
- We are also proud of building our first ever Telegram bot and integrating the necessary components
- We are also satisfied with the quality of the responses that we were able to achieve using prompt engineering and the input collected from users
What we learned
- It was the first time for all of us creating a Telegram bot so we learnt a lot navigating the documentation and tailoring the bot for our use case
- After upturning the logic of the Gape-Shapely algorithm, we also learnt more about the intricacies of it
- We learnt more about the use of prompt engineering to refine responses generated by Mistral
What's next for Unhinged
- We are keen to extend this project with more criteria and a more comprehensive list of preferences that we can use to accurately score the compatibility of participants with each other.
- We also hope to scale the project to efficiently handle thousands of users.
- There is definitely room for optimising the matching algorithm and we believe that one way could be by incorporating feedback loops using data from engagement with candidates as well as using weights to reflect the importance of certain profile attributes and preferences in deriving a "suitable" (read suitably least compatible) match.
Just for fun
Initially, we prompted Mistral to provide us with ideas for the worst dates based on users' preferences. However, it misinterpreted our intentions literally and advised us that it is unconstructive to pursue "worst date" ideas. This is where prompt engineering came in handy in allowing us to concisely express our good intentions and advise the model to provide appropriate responses to delight our users with non-deterministic responses.
Built With
- colab
- gpt
- mistral
- python
Log in or sign up for Devpost to join the conversation.