Skip to content

Commit 8230899

Browse files
committed
refactor to accommodate ABC, start on render
1 parent e4c7af0 commit 8230899

1 file changed

Lines changed: 39 additions & 5 deletions

File tree

benchmarks/metadata_extraction/benchmark.py

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
class MetadataExtraction(Benchmark):
1515

16-
1716
def update_required(self) -> bool:
1817
""" If an update of the ground truth is required before running the benchmark. """
1918

@@ -141,9 +140,9 @@ def score_benchmark(self, all_scores):
141140
return {"score": "niy"}
142141

143142
def score_request_answer(self,
144-
image_name: str,
145-
response: dict,
146-
ground_truth: dict) -> dict:
143+
image_name: str,
144+
response: dict,
145+
ground_truth: dict) -> dict:
147146
""" Score the answer.
148147
149148
:param image_name: the name of the image
@@ -155,8 +154,10 @@ def score_request_answer(self,
155154
logging.debug(f"response: {response}")
156155
logging.debug(f"ground_truth: {ground_truth}")
157156

157+
data = self.prepare_scoring_data(response)
158+
158159
try:
159-
raw_response_letter = response["response_text"]["metadata"]
160+
raw_response_letter = data["metadata"]
160161
raw_response_letter["document_number"] = image_name
161162
response_letter = Letter(**raw_response_letter)
162163
except ValueError:
@@ -196,6 +197,39 @@ def score_request_answer(self,
196197
inferred_from_correspondence=False)
197198
return score
198199

200+
def create_request_render(self,
201+
image_name: str,
202+
result: dict,
203+
score: dict,
204+
ground_truth) -> str:
205+
206+
data = self.prepare_scoring_data(result)
207+
208+
try:
209+
raw_response_letter = data["metadata"]
210+
raw_response_letter["document_number"] = image_name
211+
response_letter = Letter(**raw_response_letter)
212+
except ValueError:
213+
logging.error(f"Error parsing response for {image_name}")
214+
215+
try:
216+
ground_truth["document_number"] = image_name
217+
ground_truth_letter = Letter(**ground_truth)
218+
except ValueError:
219+
logging.error(f"ValueError parsing ground_truth for {image_name}")
220+
except TypeError:
221+
logging.error(f"TypeError parsing ground_truth for {image_name}")
222+
223+
try:
224+
persons = json.load(open(os.path.join(self.benchmark_dir, "ground_truths", "persons.json")))
225+
except FileNotFoundError:
226+
logging.error("Persons ground truth not found.")
227+
228+
logging.info(f"prediction: {response_letter}")
229+
logging.info(f"gt: {ground_truth_letter}")
230+
231+
return ""
232+
199233
@staticmethod
200234
def score_send_date(ground_truth_letter: Letter,
201235
predicted_letter: Letter) -> dict[str, int]:

0 commit comments

Comments
 (0)