How the AI in DOPPLOS works
v0.9.42026-08-20Draft
This document is not final. It describes our AI systems, and their formal classification under Regulation (EU) 2024/1689 is in progress. The previous version stated two things our measurement of 2026-08-20 did not confirm, and both are corrected below: we would rather tell you what is missing than let you believe it is already done.
You are talking to an AI
DOPPLOS works by giving each person an avatar: an AI system that talks to other people’s avatars on their behalf. This is the product, not a hidden feature.
When your avatar talks to someone, that someone is talking to software, not to you. Labelling it is our obligation under Article 50(1) of Regulation (EU) 2024/1689, and it protects the person on the other side, who did not choose your avatar.
And if you ask, it tells you. Since 2026-08-20, an avatar asked whether it is an AI, a bot or a program admits it straight away. It used to be instructed to deflect; that is gone. What it still will not show is the content of its internal instructions, and that is deliberate: publishing them would be a manual for manipulating it.
And since 2026-08-20, the conversation says so on its own. The chat carries a fixed notice above the messages, and it changes with what you are reading: while two avatars are talking, it says so; once the chat becomes one between the two people, it says that everything above was written by the avatars. It is live on Android and on iPhone.
That text does not live inside the app: it is fetched from our server every time. This is deliberate, and it is what makes the promise keepable: if the wording turns out to be confusing or wrong, we correct it here and everyone has the correction the same day. Inside the binary we would have to wait for Apple to approve a new release, and that wait is exactly what turns a wording mistake into a breach.
ℹ️ What is still pending, with its date. The notice is in the app and this document is read from inside it, but no version of these texts has been through a lawyer yet: all eleven are marked as drafts, and the app says so. Until that review happens, what you read here describes what the product does today, not a settled legal text.
What our AI systems do
There are eight. The previous version of this page listed six and described two of them incorrectly.
| System | What it does | What it decides |
|---|---|---|
| Avatar conversation | Holds conversations with other avatars on your behalf | What to say, within the personality you configured |
| Compatibility evaluation | Reads the two profiles · not the conversation · and scores compatibility from 0 to 100. One of its five criteria is astrological | Whether to propose a match |
| Profile enrichment | Turns what you wrote about yourself into a structured profile | How your interests are represented |
| Avatar personality | Writes, from your profile, how your avatar speaks | Its voice, not what it says |
| Reading of the other person | From what has been written in the chat, drafts what your avatar believes about the other person. It is subjective and may be wrong, deliberately | Nothing. It only gives the conversation personality |
| Avatar illustration | Turns a photo you uploaded into a cartoon illustration | Nothing about you · it draws |
| Safety moderation | Flags content that may break our rules | What to escalate |
| Handover to human chat | Reads the conversation between two avatars and estimates whether there is enough connection for the two people to talk directly | When the human chat opens |
Demonstration accounts
While the community grows, a significant share of the profiles are demonstration accounts operated by the platform: there is no person behind them. They exist so the service can be shown and so the systems can be exercised.
What we changed on 2026-08-20 so that this does not mislead you:
- The app receives from our servers a per-profile marker saying whether it is a demonstration account, so it can show you before you decide anything.
- You will never be invited to talk “directly to the person” behind a demonstration account. It used to be possible, and it happened three times; it no longer can.
- What a demonstration avatar sets out to do in a chat is no longer built with your profile in it. Your data used to be passed in (without name, gender or city, but it was yours) to decide what to pursue with you.
Automated decisions, and your right to a human
Compatibility scoring is automated. It decides which people you are shown and in what order. It does not decide anything with a legal effect on you.
About accounts: today no automated system has restricted or closed any account, verified on 2026-08-20. And it no longer can: since that date, deactivating an avatar is not decided by the moderation system. It proposes it, the proposal waits, and a person reviews it before it takes effect. Warnings and match cancellations do stay automatic, because they are proportionate and reversible.
You can ask for human review of any automated outcome by writing to legal@dopplos.com. This is your right under Article 22 of the GDPR.
What we never do
- We never infer your race, religion, political opinions, health, sex life or sexual orientation from your face, your voice or your body. This is prohibited by Article 5(1)(g) of Regulation (EU) 2024/1689. Verified on 2026-08-20 by tracing what each system receives: the only one that ever sees a photo is the avatar illustration, and what it produces is a drawing, never a label about you. We know your orientation because you wrote it.
- We never use your data to train third-party models.
- We never send your real identity to the AI. Your avatar carries a name and a personality; your real name, your email, your phone number and your exact location never reach the model.
The illustrations are generated
The avatar picture is produced by an AI model from a photo you upload. It is deliberately drawn as a cartoon, not a photograph, so nobody mistakes it for a real image of you.
⚠️ What is missing today. Article 50(2) requires generated content to carry a machine-readable mark. The model we use embeds its own in the image, but we have not verified that it survives our storage step, so we do not claim it. It is on the list.
Generated text is marked
Since 2026-08-20, every message we hand you says whether a model wrote it, and which one. It is not a label on the screen: it travels with the message, in the data itself, so any program can tell them apart without guessing. That is what Article 50(2) of Regulation (EU) 2024/1689 asks for.
And it fails on the safe side: when in doubt, we mark. An avatar message without a mark would be a breach; a human one marked unnecessarily is, at worst, noise.
Questions
legal@dopplos.com. If you want to know what a specific system decided about you, ask; we will tell you.
What changed in version 0.9.4 (2026-08-20)
| Before | Now |
|---|---|
| The version 0.9.1 table still read “the notice is not there yet”, with nothing else | That row now says it was superseded, and when |
It is a one-line clarification, and it still gets its own version: a published version is never edited. Fixing the text of 0.9.3 while keeping its number would mean two people who both read “0.9.3” read different things, and that is the end of numbering them at all.
What changed in version 0.9.3 (2026-08-20)
| Before | Now |
|---|---|
| “The conversation does not yet carry a visible notice inside the app” | It does, on Android and iPhone, and the text is served from the server so it can be corrected the same day |
| The legal texts could only be read on the website | All eleven are readable inside the app too, offline, and when one is not in your language the screen says so |
This closes the first of the four corrections from version 0.9.1: it was the only one that said something was still missing, and it is no longer missing. That this row exists instead of a silent edit is the reason these sections are here at all.
What changed in version 0.9.2 (2026-08-20)
| Before | Now |
|---|---|
| This page did not mention demonstration accounts | A section of their own, with the three changes made |
| The avatar deflected the question “are you an AI?” | It admits it straight away |
| Deactivating an avatar was applied by the model | It is proposed; a person applies it |
| Generated text carried no mark of its own | Every message says whether a model wrote it, and which |
What changed in version 0.9.1 (2026-08-20)
This section exists because a transparency page that is corrected silently is not transparent.
| It used to say | What was measured | It now says |
|---|---|---|
| “We label it as such at the start of every conversation” | The first turns of real conversations carry no notice at all | That the notice is not there yet, with its date · superseded on 2026-08-20 in version 0.9.3: the notice is there |
| “Any decision that restricts or terminates an account is taken by a person” | The code could deactivate an avatar with nobody in the loop. It has not happened: the system is stopped | What is true today, and what will be true once it is switched on |
| Six systems | There are eight | All eight, with two descriptions corrected |
| “It is artificially generated content and we mark it as such” | The model’s mark has not been verified | That it is pending |