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

  1. nowSent, redacted or stopped.proxy
  2. daysThe leak scanner flags what got through.downstream
  3. 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)

This use case is on the way. The roadmap shows where trimset is.

See the roadmap