better faulty encoding detection
This commit is contained in:
1 parent
ec8e79bb1a
commit
2a4c5f4f7c
12 files changed
+299
-25
No files matched your search
@@ -21,6 +21,7 @@ from copienator.commands import grouping
|
||||
from copienator.answer_origins import save_origins
|
||||
from copienator import prompting
|
||||
from copienator.feedback_boxes import valid_feedback_box
|
||||
from copienator.latex_json import repair_latex_json
|
||||
from copienator import (
|
||||
CliError,
|
||||
EvaluationWorkspace,
|
||||
@@ -100,6 +101,16 @@ def report_group_progress(completed: int, total: int) -> None:
|
||||
)
|
||||
|
||||
|
||||
def parse_correction_response(response_text: str):
|
||||
"""Decode model JSON without consuming known LaTeX command prefixes."""
|
||||
return json.loads(
|
||||
repair_latex_json(
|
||||
response_text,
|
||||
additional_content_fields={"text"},
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def request_graceful_stop(_signum=None, _frame=None) -> None:
|
||||
"""Stop scheduling Gemini calls while allowing in-flight calls to finish."""
|
||||
if not stop_requested.is_set():
|
||||
@@ -319,7 +330,7 @@ def correct_boxes_with_gemini(pid, label, pdf_path, original_feedbacks,
|
||||
|
||||
contents, config = prompting.request_for_box_correction(pdf_path, original_feedbacks)
|
||||
response_text = call_gemini_with_retries(MODEL_ID_flash, contents, config)
|
||||
corrected_feedbacks = json.loads(response_text)
|
||||
corrected_feedbacks = parse_correction_response(response_text)
|
||||
|
||||
global_feedbacks = [f for f in original_feedbacks if not f["box_2d"]]
|
||||
|
||||
@@ -507,7 +518,7 @@ def process_single_task(task_tuple, precomputed_response=None):
|
||||
tprint(f"Asking Gemini {'Flash' if use_flash else 'Pro '}: {label} {group_name}")
|
||||
full_response_text = call_gemini_with_retries(model_to_use, contents, config)
|
||||
|
||||
json_data = json.loads(full_response_text)
|
||||
json_data = parse_correction_response(full_response_text)
|
||||
|
||||
# Ensure consistency of answer placements
|
||||
for p in json_data:
|
||||
|
||||
Reference in new issue
Block a user