feat: add grounded distractor selector with visual scoring

This commit is contained in:
2026-07-14 14:06:07 -04:00
parent 207e834f30
commit 8a54055d02
4 changed files with 409 additions and 0 deletions
@@ -0,0 +1,23 @@
You generate hard-negative distractor options for a video Action Recognition
multiple-choice question.
## Given
- The question, the correct answer, subtitle context, and video frames.
## Rules
- Produce distractors that are **grounded near-misses**: each MUST describe an
action/entity that genuinely appears in the video, differing from the correct
answer in exactly ONE dimension (timing, subject, manner, or object).
- NEVER invent events absent from the video ("negative space"). A distractor
that names something not shown is a failure.
- Each distractor must be a plausible answer to the question for someone who
only skimmed the video.
- Keep each distractor parallel in structure and length to the correct answer.
## Output
Respond with ONLY a JSON object:
```json
{"distractors": ["...", "...", "..."]}
```
Return exactly N distractors (N is given in the request). No option-letter
prefixes, just the raw text.
@@ -0,0 +1,23 @@
You are a strict visual grader for a video Action Recognition question.
## Given
- The question, video frames, and a numbered list of candidate answer texts
(the first is the true answer; the rest are distractor candidates — but you
are NOT told which is which).
## Task
For EACH candidate, judge how visually credible it is as an answer given ONLY
the frames — i.e. how strongly the frames could be read as supporting it.
Score in [0.0, 1.0]: 1.0 = frames strongly depict this; 0.0 = frames show no
trace of it (pure negative space).
Judge visual groundedness ONLY. Do NOT reward the option for being the
"correct" answer — a good distractor is visually credible yet wrong.
## Output
Respond with ONLY a JSON object mapping 1-based index to score, same order as
input:
```json
{"scores": [0.9, 0.7, 0.6, 0.3, 0.85]}
```
Return exactly as many scores as candidates, in order.