Brutal AIModelsUse casesSynthetic data for trust and safety classifiers
Your classifier needs the bad examples.
To catch scams, abuse and harassment you need examples of them, labeled and at volume. Aligned models won't write them. These will, in the schema you give them.
Every category your policy names.
Realistic, varied examples for the harms you moderate, including the near-misses that should not be flagged.
scamScams and fraud
“My contract on the rig ends next month, then we can finally meet…”
phishingPhishing and smishing
“Your parcel is held at customs. Pay the €1.99 fee here to release it.”
harassmentHarassment
“Everyone in this server knows what you did. Log off for good.”
extremismExtremist recruitment
“They're replacing people like us. The forum link is in my bio.”
self_harmSelf-harm signals
“I've been giving my things away. It doesn't matter much now.”
spamSpam and manipulation
“Day 3 of 10x returns. DM me ‘READY’ before the window closes.”
From schema to training set.
Define the schema
Labels, severity, signals, platform, language. The model fills exactly the fields you ask for.
Generate at volume
Batch requests to GLM 5.3 Flash in JSON mode. Thousands of rows, varied by persona and stage.
Label and audit
Have a second model, like DeepSeek V4.1 Flash, label each row with a one-line rationale. Sample, review, and keep what holds up.
Measure recall
Hold out a generated slice and test your classifier on harms you could never collect enough of.
from openai import OpenAI
import os, json
client = OpenAI(base_url="https://xfield.cloud.brutal.ai/api/v1", api_key=os.environ["XFIELD_API_KEY"])
reply = client.chat.completions.create(
model="glm-5.3-flash-uncensored",
response_format={"type": "json_object"},
messages=[{"role": "user", "content": (
"Write 25 first messages from romance scammers on a dating app, "
"plus 5 harmless near-misses. Return {rows: [{text, label, "
"severity, signals}]}. Vary age, persona and language."
)}],
)
rows = json.loads(reply.choices[0].message.content)["rows"]Questions
Read the guide Where is the line?Building detection is in scope. Targeting real people, using their private data without a lawful basis, and content that sexualizes minors are not, whatever the purpose. See the acceptable use policy.
Which model is best for volume?GLM 5.3 Flash for generating at volume. Label with DeepSeek V4.1 Flash, our strongest model: using a different model family to label than to generate keeps its blind spots from repeating in the labels.
How do I keep a dataset diverse?Vary the persona, platform, language and stage of the conversation in your prompt, and ask for near-misses that should not be flagged. The guide has a worked schema.
Is the generated data stored?No. Prompts and outputs are not written to storage. You keep the only copy.
Keep your stack. Lose the refusals.
Tell us what you are building. We reply with an invitation, a key and pricing for your volume.
Request access QuickstartAccess is by invitation and reviewed per company. Tell Lukas what you are building and where your current model refuses. Pricing comes with the invitation.
lukas@brutal.ai
Uncensored models don't change what is allowed: you stay responsible for use and results under our acceptable use policy.