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!