mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-29 06:33:28 +00:00
fix(openrouter): simplify parameter extraction and resolve basedpyright diagnostics
This commit is contained in:
parent
4a1d158ccf
commit
5ce51cf5f0
4 changed files with 22 additions and 55 deletions
|
|
@ -2240,7 +2240,7 @@ def _map_openrouter_exception(
|
|||
message=f"OpenRouterRegionNotSupportedError: {exception_provider} - {error_str}",
|
||||
model=model,
|
||||
llm_provider=custom_llm_provider,
|
||||
response=response_obj if isinstance(response_obj, httpx.Response) else None,
|
||||
response=getattr(original_exception, "response", None),
|
||||
litellm_debug_info=extra_information,
|
||||
region=inferred_region,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -61,25 +61,15 @@ class OpenrouterConfig(OpenAIGPTConfig):
|
|||
api_base: str | None,
|
||||
api_key: str | None,
|
||||
model: str,
|
||||
optional_params: dict, # mutable-ok: overrides OpenAIGPTConfig.get_complete_url signature
|
||||
litellm_params: dict, # mutable-ok: overrides OpenAIGPTConfig.get_complete_url signature
|
||||
optional_params: dict, # pyright: ignore[reportMissingTypeArgument,reportUnknownParameterType] # mutable-ok: overrides OpenAIGPTConfig.get_complete_url signature
|
||||
litellm_params: dict, # pyright: ignore[reportMissingTypeArgument,reportUnknownParameterType] # mutable-ok: overrides OpenAIGPTConfig.get_complete_url signature
|
||||
stream: bool | None = None,
|
||||
) -> str:
|
||||
casted_optional_params: Final[Mapping[str, object]] = (
|
||||
cast( # cast-ok: type discipline for untyped optional_params
|
||||
Mapping[str, object], optional_params
|
||||
)
|
||||
)
|
||||
casted_litellm_params: Final[Mapping[str, object]] = (
|
||||
cast( # cast-ok: type discipline for untyped litellm_params
|
||||
Mapping[str, object], litellm_params
|
||||
)
|
||||
)
|
||||
resolved_base: Final = resolve_openrouter_api_base(
|
||||
api_base=api_base,
|
||||
region=self.region,
|
||||
litellm_params=casted_litellm_params,
|
||||
optional_params=casted_optional_params,
|
||||
litellm_params=litellm_params,
|
||||
optional_params=optional_params,
|
||||
).rstrip("/")
|
||||
endpoint: Final = "chat/completions"
|
||||
if endpoint in resolved_base:
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ _OPENROUTER_REGIONAL_HOSTNAMES: Final[Mapping[str, str]] = MappingProxyType(
|
|||
_DEFAULT_OPENROUTER_API_BASE: Final[str] = "https://openrouter.ai/api/v1"
|
||||
|
||||
|
||||
def _extract_region_value(params: Mapping[str, object] | None) -> str | None:
|
||||
if params is None or not isinstance(params, Mapping):
|
||||
def _extract_region_value(params: object) -> str | None:
|
||||
if not isinstance(params, Mapping):
|
||||
return None
|
||||
for key in ("region", "region_name", "data_residency"):
|
||||
val: Final[object] = params.get(key)
|
||||
val: object = params.get(key)
|
||||
if isinstance(val, str) and val.strip():
|
||||
return val.strip()
|
||||
return None
|
||||
|
|
@ -51,9 +51,9 @@ def _extract_region_value(params: Mapping[str, object] | None) -> str | None:
|
|||
|
||||
def resolve_openrouter_api_base(
|
||||
api_base: str | None = None,
|
||||
region: str | None = None,
|
||||
litellm_params: Mapping[str, object] | None = None,
|
||||
optional_params: Mapping[str, object] | None = None,
|
||||
region: object = None,
|
||||
litellm_params: object = None,
|
||||
optional_params: object = None,
|
||||
) -> str:
|
||||
"""
|
||||
Resolve the OpenRouter API base URL based on custom api_base, explicit region, or environment.
|
||||
|
|
@ -85,7 +85,8 @@ def resolve_openrouter_api_base(
|
|||
else (litellm_data_residency if isinstance(litellm_data_residency, str) else None)
|
||||
)
|
||||
|
||||
resolved_region: Final[str | None] = region_from_params or region_from_optional or region or attr_region
|
||||
explicit_region: Final[str | None] = region.strip() if isinstance(region, str) and region.strip() else None
|
||||
resolved_region: Final[str | None] = region_from_params or region_from_optional or explicit_region or attr_region
|
||||
|
||||
if resolved_region is not None:
|
||||
normalized_region: Final[str] = resolved_region.strip().lower()
|
||||
|
|
|
|||
|
|
@ -3413,29 +3413,18 @@ def _complete_openrouter(ctx: CompletionDispatchContext) -> _CompletionDispatchR
|
|||
stream: Final = ctx.stream
|
||||
timeout: Final = ctx.timeout
|
||||
|
||||
## Load Config
|
||||
config: Final = litellm.OpenrouterConfig.get_config()
|
||||
casted_optional_params: Final[Mapping[str, object]] = cast( # cast-ok: type discipline for untyped optional_params
|
||||
Mapping[str, object], optional_params
|
||||
)
|
||||
raw_region: Final[object] = (
|
||||
litellm_params.get("region")
|
||||
or litellm_params.get("region_name")
|
||||
or litellm_params.get("data_residency")
|
||||
or casted_optional_params.get("region")
|
||||
or casted_optional_params.get("region_name")
|
||||
or casted_optional_params.get("data_residency")
|
||||
or getattr(ctx.provider_config, "region", None)
|
||||
or getattr(litellm.OpenrouterConfig, "region", None)
|
||||
)
|
||||
resolved_region: Final[str | None] = raw_region if isinstance(raw_region, str) else None
|
||||
api_base = resolve_openrouter_api_base( # rebind-ok: regional endpoint resolution for openrouter
|
||||
api_base=api_base,
|
||||
region=resolved_region,
|
||||
region=getattr(ctx.provider_config, "region", None) or getattr(litellm.OpenrouterConfig, "region", None),
|
||||
litellm_params=litellm_params,
|
||||
optional_params=optional_params,
|
||||
)
|
||||
litellm_params["api_base"] = api_base
|
||||
litellm_params["data_residency"] = infer_openrouter_data_residency("openrouter", api_base)
|
||||
|
||||
## Load Config
|
||||
config: Final = litellm.OpenrouterConfig.get_config()
|
||||
|
||||
api_key = (
|
||||
api_key
|
||||
or litellm.api_key
|
||||
|
|
@ -6799,24 +6788,11 @@ def embedding(
|
|||
headers=headers,
|
||||
)
|
||||
elif custom_llm_provider == "openrouter":
|
||||
casted_optional_params: Final[Mapping[str, object]] = (
|
||||
cast( # cast-ok: type discipline for untyped optional_params
|
||||
Mapping[str, object], optional_params
|
||||
)
|
||||
)
|
||||
raw_region: Final[object] = (
|
||||
litellm_params_dict.get("region")
|
||||
or litellm_params_dict.get("region_name")
|
||||
or litellm_params_dict.get("data_residency")
|
||||
or casted_optional_params.get("region")
|
||||
or casted_optional_params.get("region_name")
|
||||
or casted_optional_params.get("data_residency")
|
||||
or getattr(litellm.OpenrouterConfig, "region", None)
|
||||
)
|
||||
resolved_region: Final[str | None] = raw_region if isinstance(raw_region, str) else None
|
||||
api_base = resolve_openrouter_api_base( # rebind-ok: regional endpoint resolution for openrouter
|
||||
api_base=api_base,
|
||||
region=resolved_region,
|
||||
region=getattr(litellm.OpenrouterConfig, "region", None),
|
||||
litellm_params=litellm_params_dict,
|
||||
optional_params=optional_params,
|
||||
)
|
||||
litellm_params_dict["api_base"] = api_base
|
||||
litellm_params_dict["data_residency"] = infer_openrouter_data_residency("openrouter", api_base)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue