Spaces:
Running
Running
| import re | |
| from typing import Any | |
| _MODEL_NAME_SPLIT_RE = re.compile(r"[/:\s]+") | |
| def model_rejects_sampling_params(model_name: str) -> bool: | |
| normalized = str(model_name or "").strip().casefold() | |
| if not normalized: | |
| return False | |
| parts = [part for part in _MODEL_NAME_SPLIT_RE.split(normalized) if part] | |
| return any(part.startswith("claude") for part in parts) | |
| def model_rejects_presence_penalty(model_name: str) -> bool: | |
| normalized = str(model_name or "").strip().casefold() | |
| if not normalized: | |
| return False | |
| parts = [part for part in _MODEL_NAME_SPLIT_RE.split(normalized) if part] | |
| return any(part.startswith("gpt-5.5") for part in parts) | |
| def apply_sampling_params( | |
| request_kwargs: dict[str, Any], | |
| *, | |
| model_name: str, | |
| temperature: Any = None, | |
| top_p: Any = None, | |
| presence_penalty: Any = None, | |
| ) -> None: | |
| if model_rejects_sampling_params(model_name): | |
| return | |
| if temperature is not None: | |
| request_kwargs["temperature"] = temperature | |
| if top_p is not None: | |
| request_kwargs["top_p"] = top_p | |
| if presence_penalty is not None and not model_rejects_presence_penalty(model_name): | |
| request_kwargs["presence_penalty"] = presence_penalty | |