jev·agent

← All use cases

Use case · Mixed

Content moderation with Jev

Use Score for severity tiers and Noul for specific policy checks, then act on the probability rather than a hard label.

The problem

Moderation is never binary. You need "obviously fine", "borderline, show to a reviewer" and "block immediately" — and you need to move the line between them without retraining anything.

How Jev handles it

A Score question against an ordered rubric gives you the tier plus the full distribution. Separate Noul questions cover specific policies. Because the threshold lives in your code, tuning policy is a config change, not a model change.

python
response = client.system_one(
    model="jev-latest",
    state=user_post,
    questions={
        "severity": Score(
            instructions="How harmful is this content?",
            criteria=["Benign", "Questionable", "Harmful", "Severe"],
        ),
        "targets_person": Noul(
            instructions="Does this target a specific real person?",
            criteria=NoulCriteria(
                true="Names or clearly identifies an individual",
                false="No specific individual targeted",
            ),
        ),
        "is_spam": Noul(
            instructions="Is this commercial spam?",
            criteria=NoulCriteria(
                true="Unsolicited promotion or link farming",
                false="Genuine participation",
            ),
        ),
    },
)

a = response.answers
if a["severity"].score == "Severe" or a["is_spam"].noul > 0.9:
    block()

Notes from the field