noulComing soon
PII guardrail
A company’s internal chat assistant checks every prompt before it reaches an LLM. Personal data that slips through is a leak. The prompts are exactly what must not be stored, so reviewers open them in the company’s own tool.
“Does this text contain personal data?”
The request · POST /v1/systemone
{
"model": "jev-latest",
"state": {
"text": "…"
},
"questions": {
"personal_data": {
"type": "noul",
"instructions": "Does this text contain personal data?"
}
}
}
The policy
- p < loACCEPTsend the prompt
- lo ≤ p < hiESCALATEredact it, or ask a person
- p ≥ hiBLOCKstop the prompt
target
False passes ≤ 1% with 95% confidence.
lo = [X], hi = [X]: proposed by the refit. trimset keeps only a keyed hash of each prompt.
When the truth arrives
- nowSent, redacted or stopped.proxy
- daysThe leak scanner flags what got through.downstream
- weeklyThe privacy team reviews a sample of passed prompts.human_review
In your app · Python SDK, gate() from M3
d = ts.gate("personal_data", answer=resp["answers"]["personal_data"],
model_served=resp["model"], decision_id=ids[0])
if d.action == "BLOCK":
refuse(prompt)
elif d.action == "ESCALATE":
prompt = redact(prompt)
[ dashboard screenshot ]
False passes against the weekly review sample, from the demo.
This use case is on the way. The roadmap shows where trimset is.
See the roadmap