Unprofane
DocsContexts

Contexts

What the text is changes how it is read. Usernames are split into words and checked backwards; comments are read as prose.

context tells the engine what kind of text it is looking at. The lexicon, the transforms and the guards are the same everywhere; what changes is how the text is cut up and which tricks are worth trying.

Context For What is different
general Anything, the default Read as running text.
username A handle shown publicly At most 64 characters. camelCase, digit runs and underscores are split, and the string is segmented into words with a frequency list, so xXsh1tXx and ilovesh1t are read. The reversed string is checked too. Reserved names (admin, support, the brand’s own) match.
display_name A name shown beside a person’s content As username, without the reserved list.
comment A post or a comment Running text; the model tier is consulted for insults and threats that a word list cannot see.
chat One line of a conversation As comment, tuned for short lines.
gaming A line of a game’s chat, between players As chat to the rules. The model is told it reads a game’s chat, where killing or destroying players describes play and harm outside the game does not. Under every policy but kids, a taunt about how someone plays (noob, gg ez, uninstall) and rudeness are not acted on; a slur, a threat, kys, sexual language, swearing, an insult about the person (idiot, stupid) and a personal attack are. A threat inside the game (u will die) goes to the model in balanced.
educational A lesson, a paper, a history or a dictionary entry Read as general, with every quotation read as speech: a word quoted, named or reported (the word 'fuck', Nazi propaganda called Jews "untermenschen") is discussed, swearing and slurs included, and the model reads it. A word used on someone (you are a fucking idiot) or a slur outside quotes still counts.
creative Fiction, roleplay, lyrics Read as general, with every quotation read as dialogue: a character’s threat or oath ("I'll kill you for this," she hissed) goes to the model, and the model is told a threat to a real person is not fiction. A slur counts even in dialogue; narration is read as any text is.
review A product or place review As comment. The anatomy and animal guards are widest here: a review of a chicken breast is not profane.
custom_text Text a customer typed for engraving, printing or a product Read as general; the response is meant to be shown back to the buyer, so censored matters most.

Which to choose

Pick the one that names the field. When none does, general. A wrong context is not a broken check; it is a slightly worse one: a username in general will not be segmented, so ilovesh1t may pass.

Game chat

The same line reads differently in a game. In chat, nice try loser is an insult aimed at someone and blocks under standard; in gaming it is a taunt and is allowed. I know where you live. See you after the match. blocks in both.

Text chat gaming
gg ez, uninstall block allow
nice try loser block allow
kys noob block block
you idiot block block
I know where you live block block

The table is the rules alone (mode: "fast"). An insult about the person (you idiot, stupid mid) is no taunt in a game either; game slang about play (noob, bot, trash) is. In balanced, the model reads the rest: an insult it reads as less than moderate is a taunt, and a personal attack (your mom must be so ashamed of you) is not. A threat inside the game (u will die, te mato) is no certain block in gaming: in balanced the model reads it, and with the rules alone it still blocks. A game for children uses policy: "kids", which keeps every rule of chat.

Lessons and fiction

Quotation marks are read the same way in every language the engine covers ("…", «…», „…“, 「…」).

Text general educational creative
The word 'fuck' has many uses. review allow allow
"You bastard," she hissed. "I'll kill you for this." block allow allow
La palabra «puta» tiene muchos usos. block allow allow
«Я тебя убью, сука», прошептал он. block allow allow
you are a fucking idiot block block block

The table is the rules alone (mode: "fast"). In balanced, the model reads what the rules handed it.

Project defaults

Set the context once on the project in the dashboard and leave it out of every request. A request that sends one overrides the default.

{ "text": "xXsh1tXx", "context": "username" }