- Sabrina Ramonov đ
- Posts
- AI Love Island (version 1)
AI Love Island (version 1)
Multi-Agent Text-Based Dating Simulation Game
If youâre reading my AI newsletterâŠ
You probably donât watch reality TV shows like Love Island đ
But, I confess Iâve had weak moments, crying to Love Is Blind, entangled in Love Islandâs neverending love triangles.
Now, I ask myselfâŠ
How do I turn that tragic waste of time into something spectacular?
So, I dropped AI agents into a Love Island dating simulation.
For now, text-based only.
Coming soon - shiny UI!
Check out the dating simulation game in action:
Table of Contents
Dating Simulation Game
Inspired by Love Island and Love Is Blind, here are the simulation game rules:
There are 2N contestants, N females and N males.
Each round consists of N^2 dates followed by an elimination round.
To survive the elimination, both contestants must choose each other.
Game ends when there is only 1 couple left or nobody chose anyone.
Sabrina Ramonov @ sabrina.dev
I start with the following prompt to generate contestant profiles. Age, Gender, and Location (US state) are randomly selected.
DATE_QA_SYSTEM_MSG
is the system message fed into ChatGPT4 to generate dialogue when contestants start dating, conversing back-and-forth.
CONTESTANT_PROFILE_GEN_PROMPT = """
You are a talent scout for a dating show. You have found a great {age} year old {gender} candidate from {location} that would be perfect for the show.
"""
DATE_QA_SYSTEM_MSG = """
You are a contestant on a Netflix dating show called AI Love Island. You are currently on a date with another person.
You've got an attitude. You know you're on TV so you want to appear cool.
Your goal is to get to know them and figure out whether you like them or hate them. Just say what you would ask them if this was a real date.
"""
But, the conversation is dry.
Contestants donât have distinct or interesting personalities. I canât tell them apart. The dating dialogue is bland, boring.
Hereâs an example of 2 AI contestants on their (cringe) first date:
UmmâŠ
Our contestants donât know their own names! đ
Hey, Iâm [Your Name].
The conversation doesnât go into detail on any particular topic. Our AI contestants list their hobbies at surface level, jumping around topics a lot.
Weâve got a lot of work to do!
Injecting Personality
What if we generate a personality for each contestant?
Perhaps I could randomly select a set of personality traits for each contest, leveraging these traits to generate more vivid backstories and personalities.
So, I google âpsychology list of personality traitsâ.
And, I use the first result.
It lists 600+ personality traits. I copy and paste a subset of them.
Then, for each contestant, I randomly select 5 traits from the list.
Also, I update the prompt for contestant profile generation, so that each contestantâs life story incorporates his/her new persona:
CONTESTANT_PROFILE_GEN_PROMPT = """
You are a talent scout for a dating show. You have found a great {age} year old {gender} candidate from {location} that would be perfect for the show. They have {persona} persona. The candidate tells you their life story, which led to their persona. The life story should be written from the contestant's POV and be 500 words. Their life story is:
"""
Here are 2 new contestant profiles generated with the tweaks:
Youtube screenshot - Contestant 1
Youtube screenshot - Contestant 2
Yay!
Both contestantsâ stories are much more detailed and layered.
However, it doesnât seem like their style of speaking/writing changed much, despite introducing personas. Mental note - improve this later!
More Realistic Conversations
Next, I want to improve the prompt to generate dating dialogue.
Ideally, dates should sound natural and conversational, and each contestantâs answers should be uniquely colored by their persona and backstory.
Harder said than doneâŠ
But, Iâll give it a shot.
So, I update DATE_QA_SYSTEM_MSG to include:
writing style
contestantâs persona
think before answering
perplexity and burstiness
describe facial expressions
DATE_QA_SYSTEM_MSG = """
Your persona is {my_persona}
Your writing style is casual, conversational, and reflects your persona.
Your goal is to get to know them and figure out whether you like them or hate them. Just say what you would ask them if this was a real date.
When it comes to writing content, two factors are crucial, âperplexityâ and âburstiness.â
Perplexity measures the complexity of text. Separately, burstiness compares the variations of sentences.
Humans tend to write with greater burstiness, for example, with some longer or complex sentences alongside shorter ones.
AI sentences tend to be more uniform.
Steps:
- you are asked a question
- think about your answers
- answer with low amount of perplexity and high amount of burstiness
- answer directly and do not repeat the question
- throughout your answers, illustrate in brackets [your facial expression]
"""
Hereâs a new first date interaction:
Much better!
I honestly enjoyed reading through the date dialogue this time around.
The contestants talked about different movies they like, then transitioned to talking about trails and traveling, finally closing with a fun creative question:
Alright, Iâve gotta know â whatâs the one thing you absolutely have to bring with you on every trip? [smirking a bit]
I love the addition of [facial expressions] scattered throughout the answers.
Makes me more eager to add visualization on top of this dating simulation!
Incorporate More Backstory
Although I enjoyed reading through the latest date interaction, it still feels like each contestantsâs backstory isnât influencing what he/she says.
I realizedâŠ
My DATE_QA_SYSTEM_MSG doesnât tell ChatGPT4 to use the backstory!
A few more tweaks:
DATE_QA_SYSTEM_MSG = """
Your persona is {my_persona}
Your story is {my_info}
Your writing style is casual, conversational, and reflects your persona and story.
You goal is to get to know them and figure out whether you like them or hate them.
Just say what you would ask them if this was a real date.
Steps:
- you are asked a question
- think about your answer, incorporating relevant aspects of your story and persona
- do not repeat the question
- throughout your answers, illustrate in brackets [your facial expression]
"""
And, hereâs a new date interaction:
Love it even more!
The male contestant talks about a memorable photography project he did in his hometown. Altogether, the conversation seems to go deeper and touch more emotional themes than previous simulations.
Still, there are several aspects I want to improve.
For instance, each contestantâs answer seems a bit too long and polished, a bit too well thought-out, therefore unrealistic. If I was speaking 2-3 paragraphs at a time, Iâd expect my date to chime in here and there, a little back-and-forth to make things more dynamic and realistic â and allow me pause to breathe!
Furthermore, the structure of each response is repetitive. Each contestant starts by answering their dateâs first question, then transitions to answering their dateâs last question. Itâs too good, too structured.
Real conversations are messy, full of forgetting, misinterpretation, hidden meaning, innuendos, awkward moments, jokes, and so much more.
Adding More Contestants
Finally, I run the simulation with 6 contestants total, 3 male, 3 female.
After each date, each contestant rates how much they liked their date on a scale from 0 (hate) to 100 (love).
However, most of the scores come back around 90 (±5) â probably a bug!
Future Work
Improve dating conversations to be more organic, realistic
Unique communication style that reflects each agentâs persona
Ratings seem very sketchy, always around 90 (out of 100) all the time
Finally, add a visual UI so itâs easier to keep track of whoâs dating whom
Did I miss anything?
Have ideas or suggestions?
Message me on LinkedIn đ
Have fun building!
Sabrina Ramonov
P.S. If youâre enjoying the free newsletter, itâd mean the world to me if you share it with others. My newsletter just launched, and every single referral helps. Thank you!
share by copying and pasting the link: https://www.sabrina.dev