Sampling: Rewrite mirostat_mode parameter

Apparently the "mirostat" parameter has been updated by frontends
to pass a number. ExllamaV2 expects a boolean, but most pass a number
anyway, so just alias mirostat_mode and mirostat together.

Signed-off-by: kingbri <8082010+kingbri1@users.noreply.github.com>
This commit is contained in:
kingbri 2025-04-16 02:13:55 -04:00
parent 436ce752da
commit 6bb5f8f599
2 changed files with 3 additions and 13 deletions

View file

@ -195,10 +195,9 @@ class BaseSamplerRequest(BaseModel):
default_factory=lambda: get_default_sampler_value("dry_sequence_breakers", [])
)
mirostat: Optional[bool] = False
mirostat_mode: Optional[int] = Field(
default_factory=lambda: get_default_sampler_value("mirostat_mode", 0)
default_factory=lambda: get_default_sampler_value("mirostat_mode", 0),
alias=AliasChoices("mirostat_mode", "mirostat"),
)
mirostat_tau: Optional[float] = Field(
@ -325,15 +324,6 @@ class BaseSamplerRequest(BaseModel):
)
return [] # Return empty list if parsing fails
@field_validator("mirostat_mode", mode="before")
def convert_mirostat(cls, v, field_info):
"""Mirostat is enabled if mirostat_mode == 2."""
if v == 2:
field_info.data["mirostat"] = True
return v
@model_validator(mode="after")
def after_validate(self):
# FIXME: find a better way to register this