The model is the smallest part

People who build with AI tend to ask the same question about GDPRchat, and it is a fair one: isn’t this a wrapper around somebody else’s model, hosted in Europe? Most AI products are. Here is what actually happens between your question and the answer, so you can judge for yourself.

What happens when you press send

  1. 1

    Something decides what kind of question this is

    Before any model writes a word, a routing step classifies the request and must commit to exactly one path: look something up on the web, read what is already in front of it, hand off to a specialist, or answer directly. It is forced to choose — there is no “do nothing and hope” branch, which is where a plain wrapper spends most of its time.

  2. 2

    The specialist is handed a small set of tools, not all of them

    Ask about a chart and the step that answers you can reach for charting tools; ask about a document and it gets document tools. This is a deliberate limit, not an oversight. Give a language model twenty tools and it picks the wrong one often enough to matter; give it the three that fit the question and it does not.

  3. 3

    Different work runs on different models

    Routing, answering, reading images, transcribing speech, generating code and turning text into vectors are separate jobs with separate requirements, and each is assigned its own model. None of them is hard-wired: the assignment is configuration, and the model serving any one of them can change without the rest moving.

  4. 4

    When a provider fails, the next one takes over

    Every job has an approved chain of models behind it. A provider erroring or timing out does not surface as a failed answer — the request moves down the chain automatically. This is the only thing in the system allowed to change models on its own; everything else needs a human.

  5. 5

    The output is corrected on its way to you

    Models invent things — a function that does not exist, a tool named slightly wrong, a stray fragment of machine formatting in the middle of a sentence. Rather than argue with the model in its instructions, the system recognises the known cases and repairs them in the stream. You see the answer; you do not see the correction.

No model serves you until it has been audited

A new model does not go live because it scored well on a public benchmark. It has to pass a scorecard first, run against the model already doing the job: does it route to the right place, does it hold up in every language we support rather than only in English, how fast is it, what does it cost per answer. A model that fails does not ship, and the one it was meant to replace stays in the chain behind it.

Part of that audit is about behaviour rather than accuracy. Some models, including some very capable ones, will not discuss subjects their makers find inconvenient, or answer as though a contested claim were settled. Those models are refused the jobs that write answers to you. It is checked before activation and again at runtime, because a model that quietly declines to engage is worse than one that is merely wrong — you cannot tell it happened.

Every decision has to survive 27 languages

GDPRchat answers in every official EU language, plus Norwegian, Icelandic and Ukrainian. That rules out a whole class of shortcut: nothing decides what you meant by looking for keywords, because a keyword list is a list in one language. Decisions about meaning are made by meaning — classification and vector search — so a Maltese question and a Finnish one take the same path as an English one.

So is it a wrapper?

The models are not ours, and we have never said otherwise — which ones run each job, who operates them and in which country is published on our transparency page, and it updates itself from the same configuration the product runs on.

What is ours is everything above: the routing, the tool dispatch, the fallback chains, the corrections, the audit a model has to pass, the refusal to let a censoring model answer you, and the requirement that all of it works in 27 languages. Swap the underlying model tomorrow and GDPRchat still works — that is not a defence of the architecture, it is a description of it. A wrapper has the opposite property.

The other half of the answer is where all this runs, and under whose law.

Which models run where