Extract up to N key points from a document, each backed by a verbatim supporting quote — groundedness you can verify with a substring check, no judge needed.
Distill a document into up to N key points, each backed by a verbatim quote from the source. The quote contract makes groundedness mechanically checkable: every quote must survive a plain substring test against the document (document.includes(quote)), so you can verify the extraction in one line of code — no LLM judge, no trust required.
| Entrypoint | Renders | Inputs |
|---|---|---|
system | Extraction rules + the quote contract + embedded output schema | num_points |
user | The delimited document + point budget | document, num_points |
Render system as the system message and user as the user message. Pass num_points to both renders.
document (string, required) — the text to extract from; may be empty.num_points (integer, required) — maximum number of points; the prompt returns fewer when the document doesn't contain that many distinct substantive points.{
"reasoning": "The postmortem's substantive claims are the cause, the impact window, and the prevention step.",
"key_points": [
{ "point": "A cache misconfiguration caused the outage.", "quote": "the root cause was a misconfigured cache TTL" },
{ "point": "Errors were elevated for 43 minutes.", "quote": "error rates stayed elevated for 43 minutes" }
]
}
const ok = result.key_points.every(k => document.includes(k.quote));
A failed check means the model paraphrased or fabricated a quote — treat that extraction as unsupported. The published eval asserts exactly this, in CEL, over every dataset case: output.key_points.all(k, case.document.contains(k.quote)).
additionalProperties: false.<document> delimiter.rag-essentials citations.Part of the Summarization Essentials collection.