from typing import Any, Optional, Union from pydantic import BaseModel from litellm.types.utils import HiddenParams def add_retry_headers_to_response( response: Any, attempted_retries: int, max_retries: Optional[int] = None, ) -> Any: """ Add retry headers to the request """ if response is None or not isinstance(response, BaseModel): return response retry_headers = { "x-litellm-attempted-retries": attempted_retries, } if max_retries is not None: retry_headers["x-litellm-max-retries"] = max_retries hidden_params: Optional[Union[dict, HiddenParams]] = getattr( response, "_hidden_params", {} ) if hidden_params is None: hidden_params = {} elif isinstance(hidden_params, HiddenParams): hidden_params = hidden_params.model_dump() hidden_params.setdefault("additional_headers", {}) hidden_params["additional_headers"].update(retry_headers) setattr(response, "_hidden_params", hidden_params) return response