Compare commits
2 Commits
81bf44c6cc
...
547836e04b
| Author | SHA1 | Date | |
|---|---|---|---|
| 547836e04b | |||
| df128508a3 |
@ -80,6 +80,9 @@ class ResponseAreaPayload(BaseModel):
|
||||
] = None
|
||||
# Optional Context differentiation (v1 generic; future graph/chart/data_table/diagram/code_block/passage).
|
||||
context_type: Optional[str] = None
|
||||
# Rich recognition payload (75-exam-marker-region-meta.sql): figure name/description, OMR geometry, unit…
|
||||
# Carried on canvas save so a named context figure survives a round-trip.
|
||||
meta: Optional[Dict[str, Any]] = None
|
||||
source: Literal["manual", "ai"] = "manual"
|
||||
confirmed: bool = True
|
||||
confidence: Optional[float] = Field(default=None, ge=0, le=1)
|
||||
|
||||
@ -745,6 +745,9 @@ def _map_service_contract_to_rows(template_id: str, contract: Dict[str, Any],
|
||||
"bounds": _frac_box_to_canvas(q.get("bounds"), q.get("page") or 1, pages),
|
||||
"page": q.get("page"), "source": "ai", "confirmed": False,
|
||||
"confidence": _safe_confidence(q.get("confidence")), "derivation": "extract-service",
|
||||
# analyse contract v2 (migration 78): command verb + stem prose per part
|
||||
"command_word": (q.get("command_word") or None) if not q.get("is_container") else None,
|
||||
"preamble": q.get("preamble") or None,
|
||||
})
|
||||
for q in questions: # FK safety: de-parent a dangling parent_id
|
||||
if q["parent_id"] and q["parent_id"] not in q_ids:
|
||||
@ -1140,6 +1143,7 @@ async def replace_template(
|
||||
"kind": ra.kind,
|
||||
"response_form": ra.response_form,
|
||||
"context_type": ra.context_type, # 73: optional Context differentiation
|
||||
"meta": ra.meta, # 75: rich recognition payload (name/description/OMR/…)
|
||||
"source": ra.source,
|
||||
"confirmed": ra.confirmed,
|
||||
"confidence": ra.confidence,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user