Evidence array schema
Every flagged sentence carries an evidence array — machine-readable reason codes that explain why it was flagged, instead of a bare probability. This is the EssayDetector difference: the output is reviewable, not just a number.
Sentence object
{
"text": "The aforementioned paradigm shift necessitates a comprehensive reevaluation.",
"score": 0.87,
"evidence": [
{ "reason_code": "low_perplexity", "detail": "token-level surprise below human baseline" },
{ "reason_code": "burstiness", "detail": "uniform sentence rhythm across the paragraph" }
]
} Reason codes are stable identifiers you can branch on; the detail string is human-readable. Codes vary by method (model or deterministic fallback), and the response always labels which method ran.
Why evidence, not a score
A bare probability is unactionable and unverifiable. An evidence array lets you show your users why a sentence was flagged, audit the detector against your own samples, and build review workflows where a human makes the call. Detection remains a review cue — never proof of authorship.
Academic basis
The signal families behind the evidence codes (perplexity, burstiness, log-rank) build on published detection research. These references are the public basis for the method; the response always labels which method ran for a given request.
- Gehrmann S, Strobelt H, Rush A M. GLTR: Statistical detection and visualization of generated text[J]. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics: System Demonstrations, 2019: 111-116.
- Solaiman I, Brundage M, Clark J, 等. Release strategies and the social impacts of language models[J]. arXiv preprint arXiv:1908.09203, 2019.
- Mitchell E, Lee Y, Khazatsky A, 等. DetectGPT: Zero-shot machine-generated text detection using probability curvature[J]. Proceedings of the 40th International Conference on Machine Learning, 2023: 4993-5001.