Add bounded contextual entity resolution before interpretation
This commit is contained in:
1 parent
87581e5cd2
commit
4fa7fb6e74
21 files changed
+1166
-14
No files matched your search
@@ -98,6 +98,22 @@ class CaseAssembler:
|
||||
or any(doc[f] != manifest[f] for f in ("case_id", "package_id"))):
|
||||
raise CaseBuildError("PREVIOUS_CASE", "Invalid correction artifact checkpoint")
|
||||
excluded.add(ref)
|
||||
if details.get("operation") == "entity-resolution":
|
||||
from viano_bug_analysis.analysis.entity_resolution import digest
|
||||
ref = details.get("artifact_ref")
|
||||
prefix = f"analysis/interpretations/{checkpoint['analysis_revision']:04d}/entity-resolution/"
|
||||
doc = load(ref, "entity-resolution")
|
||||
if (ref != prefix + doc["stage"] + ".json" or digest(doc) != details.get("artifact_sha256")
|
||||
or doc["analysis_revision"] != checkpoint["analysis_revision"]
|
||||
or any(doc[k] != manifest[k] for k in ("case_id", "package_id"))):
|
||||
raise CaseBuildError("PREVIOUS_CASE", "Invalid entity resolution checkpoint")
|
||||
excluded.add(ref)
|
||||
if doc["stage"] == "search":
|
||||
for capture_ref in doc["payload"]["capture_refs"]:
|
||||
capture = read_json(reader, capture_ref, "project-capture", self.limits.max_json_bytes)
|
||||
if capture_ref != prefix + "captures/" + hashlib.sha256(reader.read_bytes(capture_ref)).hexdigest() + ".json":
|
||||
raise CaseBuildError("PREVIOUS_CASE", "Invalid entity resolution capture")
|
||||
excluded.add(capture_ref)
|
||||
if details.get("operation") in {"change-request-start", "change-request-complete", "change-request-rejected", "output-validated"}:
|
||||
fields = ("context_ref", "decision_ref", "change_request_ref", "summary_ref", "failure_ref", "error_ref", "validation_ref")
|
||||
for field in fields:
|
||||
|
||||
Reference in new issue
Block a user