> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sdvm.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Question and answer

> QuestionAnswerSample: a question and the answer a dataset publishes for it, with no choices to pick from.

`QuestionAnswerSample` is the shape with no choices: a `question` and an `answer`.

## Shape

```python theme={"theme":{"light":"material-theme-lighter","dark":"material-theme-darker"}}
from sdvm.types import QuestionAnswerSample

sample = QuestionAnswerSample(
    question="Natalia sold 48 clips in April and half as many in May. How many altogether?",
    answer="She sold 48 / 2 = 24 clips in May, so 48 + 24 = 72 altogether.",
)
```

On the wire:

```json wrap theme={"theme":{"light":"material-theme-lighter","dark":"material-theme-darker"}}
{
  "task_type": "question_answer",
  "question": "Natalia sold 48 clips in April and half as many in May. How many altogether?",
  "answer": "She sold 48 / 2 = 24 clips in May, so 48 + 24 = 72 altogether."
}
```

`answer` is whatever the dataset publishes as the answer — a bare value, a sentence, or a worked solution. Nothing about the type is specific to one corpus. Both fields must be non-empty strings.

## Extra columns

Anything beyond the two fields goes in `extra` and comes back untouched, exactly as on a multiple-choice item:

```python theme={"theme":{"light":"material-theme-lighter","dark":"material-theme-darker"}}
QuestionAnswerSample(
    question="...", answer="72",
    extra={"reasoning": "48 / 2 = 24, and 48 + 24 = 72.", "source_id": "gsm8k-train-0"},
)
```

That is also how a corpus that separates a reasoning trace from the value it arrives at is loaded: the value goes in `answer`, the trace rides along in `extra` and is returned as you sent it.

## What the models return

<CardGroup cols={3}>
  <Card title="sdvm-audit-1" icon="magnifying-glass" href="/models/audit">
    What it returns for this sample.
  </Card>

  <Card title="sdvm-fix-1" icon="wrench" href="/models/fix">
    What it changes, and what it never does.
  </Card>

  <Card title="Refine" icon="arrows-rotate" href="/models/refine">
    Audit, fix and re-audit in one call.
  </Card>
</CardGroup>
