@@ -147,11 +147,9 @@ def _check_safety_blocks(self, response) -> None:
147147 safety_info .append (f'{ category } : { probability } ' )
148148
149149 safety_details = (
150- ', ' .join (
151- safety_info ) if safety_info else 'Content blocked for safety reasons'
150+ ', ' .join (safety_info ) if safety_info else 'Content blocked for safety reasons'
152151 )
153- raise Exception (
154- f'Response blocked by Gemini safety filters: { safety_details } ' )
152+ raise Exception (f'Response blocked by Gemini safety filters: { safety_details } ' )
155153
156154 def _check_prompt_blocks (self , response ) -> None :
157155 """Check if prompt was blocked and raise appropriate exceptions."""
@@ -282,8 +280,7 @@ async def _generate_response(
282280 for m in messages :
283281 m .content = self ._clean_input (m .content )
284282 gemini_messages .append (
285- types .Content (role = m .role , parts = [
286- types .Part .from_text (text = m .content )])
283+ types .Content (role = m .role , parts = [types .Part .from_text (text = m .content )])
287284 )
288285
289286 # Get the appropriate model for the requested size
@@ -322,8 +319,7 @@ async def _generate_response(
322319 if not raw_output :
323320 raise ValueError ('No response text' )
324321
325- validated_model = response_model .model_validate (
326- json .loads (raw_output ))
322+ validated_model = response_model .model_validate (json .loads (raw_output ))
327323
328324 # Return as a dictionary for API consistency
329325 return validated_model .model_dump ()
@@ -332,16 +328,13 @@ async def _generate_response(
332328 logger .error (
333329 '🦀 LLM generation failed parsing as JSON, will try to salvage.'
334330 )
335- logger .error (self ._get_failed_generation_log (
336- gemini_messages , raw_output ))
331+ logger .error (self ._get_failed_generation_log (gemini_messages , raw_output ))
337332 # Try to salvage
338333 salvaged = self .salvage_json (raw_output )
339334 if salvaged is not None :
340- logger .warning (
341- 'Salvaged partial JSON from truncated/malformed output.' )
335+ logger .warning ('Salvaged partial JSON from truncated/malformed output.' )
342336 return salvaged
343- raise Exception (
344- f'Failed to parse structured response: { e } ' ) from e
337+ raise Exception (f'Failed to parse structured response: { e } ' ) from e
345338
346339 # Otherwise, return the response text as a dictionary
347340 return {'content' : raw_output }
@@ -424,14 +417,11 @@ async def generate_response(
424417 last_error = e
425418
426419 # Check if this is a safety block - these typically shouldn't be retried
427- error_text = str (e ) or (
428- str (e .__cause__ ) if e .__cause__ else '' )
420+ error_text = str (e ) or (str (e .__cause__ ) if e .__cause__ else '' )
429421 if 'safety' in error_text .lower () or 'blocked' in error_text .lower ():
430- logger .warning (
431- f'Content blocked by safety filters: { e } ' )
422+ logger .warning (f'Content blocked by safety filters: { e } ' )
432423 span .set_status ('error' , str (e ))
433- raise Exception (
434- f'Content blocked by safety filters: { e } ' ) from e
424+ raise Exception (f'Content blocked by safety filters: { e } ' ) from e
435425
436426 retry_count += 1
437427
@@ -452,10 +442,8 @@ async def generate_response(
452442
453443 # If we exit the loop without returning, all retries are exhausted
454444 logger .error ('🦀 LLM generation failed and retries are exhausted.' )
455- logger .error (self ._get_failed_generation_log (
456- messages , last_output ))
457- logger .error (
458- f'Max retries ({ self .MAX_RETRIES } ) exceeded. Last error: { last_error } ' )
445+ logger .error (self ._get_failed_generation_log (messages , last_output ))
446+ logger .error (f'Max retries ({ self .MAX_RETRIES } ) exceeded. Last error: { last_error } ' )
459447 span .set_status ('error' , str (last_error ))
460448 span .record_exception (last_error ) if last_error else None
461449 raise last_error or Exception ('Max retries exceeded' )
0 commit comments