Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 24 additions & 5 deletions src/gabriel/utils/openai_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4384,6 +4384,7 @@ def _effective_parallel_ceiling() -> int:
first_timeout_logged = False
first_rate_limit_logged = False
first_connection_logged = False
first_json_parse_logged = False
current_tokens_per_call = float(estimated_tokens_per_call)
last_rate_limit_concurrency_change = 0.0
restart_requested = False
Expand Down Expand Up @@ -4539,6 +4540,28 @@ def _log_connection_once(detail: Optional[str] = None) -> None:
else:
logger.debug("Connection error encountered.")

def _log_json_parse_once(detail: Optional[str] = None) -> None:
nonlocal first_json_parse_logged
if not first_json_parse_logged:
if detail:
_emit_first_error(
f"JSON parse error encountered: {detail}",
dedup_key="json-parse-error",
)
msg = (
"Encountered first JSON parse error. Future JSON parse errors will be silenced and tracked in periodic updates."
)
if message_verbose:
print(msg)
else:
logger.warning(msg)
first_json_parse_logged = True
else:
if detail:
logger.debug("JSON parse error: %s", detail)
else:
logger.debug("JSON parse error encountered.")

def _halt_ramp_up(reason: str) -> None:
nonlocal ramp_up_halted, concurrency_cap
if not ramp_up_enabled or ramp_up_halted:
Expand Down Expand Up @@ -5699,7 +5722,6 @@ async def _handle_rate_limit_error(error_text: str) -> None:
)
if "connection error" not in detail_lower:
_emit_first_error(base_message, dedup_key=error_key)
logger.warning(base_message)
else:
logger.debug(base_message)
if attempts_left - 1 > 0:
Expand Down Expand Up @@ -5740,10 +5762,7 @@ async def _handle_rate_limit_error(error_text: str) -> None:
if e.snippet:
error_detail = f"{error_detail} Snippet: {e.snippet}"
json_parse_errors_since_last_status += 1
_emit_first_error(
f"JSON parse error encountered: {error_detail}",
dedup_key="json-parse-error",
)
_log_json_parse_once(error_detail)
error_logs[ident].append(error_detail)
if attempts_left - 1 > 0:
backoff = random.uniform(1, 2) * (2 ** (max_retries - attempts_left))
Expand Down
Loading