"""Low-level generation config class""" from typing import Dict, List, Optional # noqa: UP035 from pydantic import BaseModel from .debug_protocol import DebugConfig from .openai_api_protocol import RequestResponseFormat class GenerationConfig(BaseModel): """The generation configuration dataclass. This is a config class used by Engine internally. """ n: int = 1 temperature: Optional[float] = None top_p: Optional[float] = None frequency_penalty: Optional[float] = None presence_penalty: Optional[float] = None repetition_penalty: Optional[float] = None logprobs: bool = False top_logprobs: int = 0 logit_bias: Optional[Dict[int, float]] = None # noqa: UP006 # internally we use -1 to represent infinite max_tokens: int = -1 seed: Optional[int] = None stop_strs: Optional[List[str]] = None # noqa: UP006 stop_token_ids: Optional[List[int]] = None # noqa: UP006 response_format: Optional[RequestResponseFormat] = None debug_config: Optional[Optional[DebugConfig]] = None