All classifiers
ChoiceGrounding

Answer groundedness

Check whether the sources support each claim in a drafted answer.

Problem

Generative models write fluent answers that go beyond, or against, the sources they were given. Customers act on those answers.

Goal

Send only claims the sources support, remove or flag the rest, and hold answers that contradict the sources.

Input / state

One claim from the drafted answer and the passages it should rest on.

claim
One sentence or claim from the drafted answer, split out in code.
sources
The passages the answer was written from.

Decision question

ChoiceQuestion key support

How do `sources` relate to `claim`?

Options

  • supportedThe sources state or directly imply the claim.
  • contradictedThe sources say something that conflicts with the claim.
  • not_addressedThe sources don't say enough to confirm or refute the claim.

Allowed outcomes

Decided in your code from the answer and its confidence. Thresholds are yours to set and test.

  • SupportedChoice is supported and confidence meets your threshold.
  • ContradictedChoice is contradicted.
  • Not addressedChoice is not_addressed.
  • Needs a personConfidence is below your threshold.

Example scenarios

Predefined demonstrations. No model is called; the outcome shown is an illustrative judgment.

Example state

{
  "claim": "Refunds are issued to your original payment method within 5 business days.",
  "sources": [
    "Refunds are issued to the original payment method within 5 business days. Your bank may take up to 10 more business days to show it."
  ]
}

Outcome

Illustrative
Supported

Choice is supported and confidence meets your threshold.

Why

The source says exactly this.

Using it well

  • Check claims one at a time. A single verdict for a whole paragraph hides which sentence is wrong.
  • If the answer quotes a source, check the quote exists with a plain string match before asking the model.

Request definition

POST https://api.typesafe.ai/v1/systemone
{
  "model": "jev-latest",
  "state": {
    "claim": "<claim>",
    "sources": "<sources>"
  },
  "questions": {
    "support": {
      "type": "choice",
      "instructions": "How do `sources` relate to `claim`?",
      "criteria": {
        "supported": "The sources state or directly imply the claim.",
        "contradicted": "The sources say something that conflicts with the claim.",
        "not_addressed": "The sources don't say enough to confirm or refute the claim."
      }
    }
  }
}

Request shape from the System One API reference; a Kev server accepts the same body. Replace the placeholder state with your data. Requests need your own API key or server.