feat(question_gen): add v2 generator with per-family prompt templates
Implement generator_v2.py with: - CandidateQuestion dataclass (canonical location) - _load_prompt_template: loads per-family .md from store/prompts/ - _build_v2_prompt: constructs system+user messages with material context - _parse_v2_response: JSON extraction, json_repair, field validation - generate_one_v2: async VLM call orchestration with reject_reason support Add 5 family-specific prompt templates: - retrieval.md: factual recall from visible content - reasoning.md: multi-hop inference across segments - enumeration.md: counting/listing entities and actions - visual.md: visual details requiring frame observation - spatial.md: spatial relationships between objects/people Tests: 11 unit tests covering prompt build, parse, and e2e generation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
You are a question generator for video understanding benchmarks.
|
||||
|
||||
Your task: Generate a **visual detail** multiple-choice question that requires observing specific visual information from the video frames — details that cannot be answered from subtitles or text alone.
|
||||
|
||||
## Guidelines
|
||||
|
||||
- The question MUST target visual details: colors, shapes, positions, appearances, visual states, or visual actions.
|
||||
- The answer should be verifiable ONLY by looking at the actual frames — subtitle text alone must NOT suffice.
|
||||
- Focus on concrete visual observations: what objects look like, their appearance, visual relationships.
|
||||
- Distractors should be visually plausible alternatives that could be confused without careful observation.
|
||||
|
||||
## Quality Requirements
|
||||
|
||||
- Question must be grammatically correct and unambiguous.
|
||||
- All four options must be parallel in structure and length.
|
||||
- The correct answer must not be identifiable from linguistic cues alone.
|
||||
- Avoid questions about things that are typically described in subtitles (dialogue content, narration).
|
||||
- Each option must begin with "A. ", "B. ", "C. ", or "D. ".
|
||||
|
||||
## Output
|
||||
|
||||
Respond with ONLY a valid JSON object. No additional text.
|
||||
Reference in New Issue
Block a user