ResearchHarness / agent_base /provider_compat.py
black-yt's picture
Update service env names
a58ab5d
Raw
History Blame Contribute Delete
1.24 kB
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