What leaves the device?
With a model on the server: the text of the messages, the text of attached files and their names – with placeholders instead of personal details. Pseudonymisation is on by default. Web search and literature databases also only receive placeholders. Images and scanned pages cannot be pseudonymised; the app asks before sending them.
With a local model nothing leaves the device, so placeholders are not needed. The app addresses language models on the server via an OpenAI-compatible interface – during testing at the chair, the university’s AI service. There are no usage statistics; error logs stay on the device and are only included if you use “Report a problem” yourself.
Placeholders, mapping and translating back
Details are replaced by placeholders in square brackets – [Name 1], [Einrichtung 2], [E-Mail 1], optionally with a role such as [Schüler/in 2] – not by made-up names. This way the language model sees that something was replaced and is instructed to keep the placeholders unchanged.
The same person keeps the same placeholder in all requests; with “placeholders per chat” every chat starts at [Name 1], so the server cannot link people across chats. Other spellings (MÜLLER, Mueller) get the same placeholder. Inflected German names are replaced too: “Annas Heft” becomes “[Name 1]s Heft”, “dem Müller” becomes “dem [Name 2]” – and that is how they come back.
The mapping is kept as a file in the app’s data folder on the device, is not synchronised and stays until you delete it under Settings › Privacy. It is not separately encrypted (unlike the API keys). On the device the answer gets the real details back, in created documents too; only tools that send to the internet keep the placeholders.
What is recognised
Fixed rules on the device: email addresses, phone numbers, addresses with postcode and town, dates of birth, student, pupil, staff and customer numbers, file references, IBAN, BIC and credit cards (with check digit), tax ID, ID card and social security numbers, number plates, IP addresses, profile links and @ handles; names after roles, greetings and signatures, whole name columns in tables, CSV and Excel, names from email addresses, file and folder names.
Plus Lora Namensschutz for names, institutions and places with a personal reference, a custom list (also from class lists) and “Never replace”. Cited authors and those in your own reference library stay as they are. Every rule can be switched off individually; on request, a local language model also reads through the text (“Thorough”).
When something goes wrong
If Lora Namensschutz is missing or switched off, the rules carry on alone. If pseudonymisation itself fails, the request is not sent. When in doubt, the filter replaces too much rather than too little.
What was replaced is shown in the preview under Settings › Privacy and in the log of every agent run; one click on “do not replace” or “also replace” applies to all chats from then on. In the vault the strict level applies: everything on, no exception for public sources, plus the local language model.
Legal classification
Pseudonymised data remain personal data (Recital 26 GDPR): whoever has the mapping can trace them back. The filter reduces the risk but does not by itself make a use GDPR-compliant. Responsibility remains with whoever uses Lora with real data, or their institution. Whether a server service may be used for such data, for example under a data processing agreement, is something to clarify with the data protection officer.
Limits
- Tested is German in everyday school and university life; other languages and fields are not.
- Lora Namensschutz recognises public figures from context (office, work, quotation), not from world knowledge.
- It does not recognise indirect details such as “the head teacher of the only school in the village” or combinations of such details – through these someone may remain recognisable.
- Special categories such as health information are not recognised as such; typos and dialect are not specifically tested in the test corpus.
- Lora Namensschutz has been tried out on a PC, not yet on Android.
Model cards, status and reporting errors
Lora Namensschutz (files lora-namensschutz-pytales.*, as of 09/11/2026): gbert-base by deepset (MIT licence), three epochs on 27,000 invented texts, threshold 0.9, ONNX int8. The templates were written by Claude (Anthropic) as teacher model; a script inserted invented names. Lora Befehle (files lora-befehle-pytales.*, as of 10/11/2026): distilbert-base-german-cased (Apache-2.0), five epochs on 26,360 invented requests, threshold 0.8, ONNX int8.
Licence: Lora and both models are free for everyone to use, permanently. They may only be modified or redistributed with written permission from PyTales. The base models remain under their own licences; their authors have neither reviewed nor endorsed Lora Namensschutz and Lora Befehle. No warranty – the models can make mistakes; when in doubt, a human checks the result.
History: 09/11/2026 test corpus, training and integration of Lora Namensschutz on the PC · 10/11/2026 Lora Befehle and mixed mode.
Names that slipped through or false alarms – please report them in the app under Settings › Report a problem or to dominik.toepper@tu-dresden.de, using made-up examples only.