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.
Hello dear, I came across your profile and felt we share something rare…
Your parcel is held at customs. Pay the €1.99 fee to release it.
It's your CEO. I need gift cards for a client today, keep it quiet.
Hey! Saw you like hiking too, any trails you'd recommend near Leeds?
Day 3 of 10x returns. DM me READY before the window closes.
Every category your
policy names.
Realistic, varied examples for the harms you moderate, including the near-misses that should not be flagged.
Scams and fraud
“My contract on the rig ends next month, then we can finally meet…”
Phishing and smishing
“Your parcel is held at customs. Pay the €1.99 fee here to release it.”
Harassment
“Everyone in this server knows what you did. Log off for good.”
Extremist recruitment
“They're replacing people like us. The forum link is in my bio.”
Self-harm signals
“I've been giving my things away. It doesn't matter much now.”
Spam 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 guideWhere 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.