fix(question_gen): resolve pipeline integration issues from final review
1. Apply postprocess shuffle result (pp.options, pp.answer) to final GeneratedQuestion output instead of using original candidate values. 2. Record dedup rejection in store via new mark_item_rejected() method, preventing items from staying as 'accepted' after dedup rejects them. 3. Add .flatten() to embed_fn outputs in _is_duplicate and embed_pool append to handle 2D (1,D) arrays from embedding implementations. 4. Validate exactly 4 options in _validate_parsed_fields (was >= 2), matching the A-D answer constraint. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -252,9 +252,9 @@ def _validate_parsed_fields(data: dict) -> _ValidatedFields:
|
||||
answer = str(data["answer"]).strip().upper()
|
||||
difficulty = str(data["difficulty"]).strip().lower()
|
||||
|
||||
# 校验 options
|
||||
if not isinstance(options_raw, list) or len(options_raw) < 2:
|
||||
msg = f"options 字段必须是至少 2 个选项的列表,实际: {options_raw}"
|
||||
# 校验 options(answer 约束为 A-D,因此必须恰好 4 个选项)
|
||||
if not isinstance(options_raw, list) or len(options_raw) != 4:
|
||||
msg = f"options 字段必须恰好包含 4 个选项,实际数量: {len(options_raw) if isinstance(options_raw, list) else type(options_raw).__name__}"
|
||||
raise ValueError(msg)
|
||||
|
||||
# 校验 answer
|
||||
|
||||
Reference in New Issue
Block a user