Fix KeyError when successful model is not updated after retry

- Add successful_model variable to track which model actually worked
- Update successful_model when request succeeds in retry loop
- Log which model was successfully used
- Prevents KeyError when trying to access provider_id from selected_model
- Ensures proper model tracking across retry attempts
parent 02d66b50
...@@ -275,6 +275,7 @@ class RotationHandler: ...@@ -275,6 +275,7 @@ class RotationHandler:
max_retries = 2 max_retries = 2
tried_models = [] tried_models = []
last_error = None last_error = None
successful_model = None
for attempt in range(max_retries): for attempt in range(max_retries):
logger.info(f"") logger.info(f"")
...@@ -332,8 +333,13 @@ class RotationHandler: ...@@ -332,8 +333,13 @@ class RotationHandler:
) )
logger.info(f"Response received from provider") logger.info(f"Response received from provider")
handler.record_success() handler.record_success()
# Update successful_model to the one that worked
successful_model = current_model
logger.info(f"=== RotationHandler.handle_rotation_request END ===") logger.info(f"=== RotationHandler.handle_rotation_request END ===")
logger.info(f"Request succeeded on attempt {attempt + 1}") logger.info(f"Request succeeded on attempt {attempt + 1}")
logger.info(f"Successfully used model: {successful_model['name']} (provider: {successful_model['provider_id']})")
return response return response
except Exception as e: except Exception as e:
last_error = str(e) last_error = str(e)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment