mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-13 23:14:11 +00:00
fix(ratingdata): add validator for model rating, forcing the value to be between 1 and 10
This commit is contained in:
parent
c40ea7f29d
commit
e657c9106e
1 changed files with 11 additions and 1 deletions
|
|
@ -7,7 +7,7 @@ from sqlalchemy.orm import Session
|
|||
from open_webui.internal.db import Base, JSONField, get_db, get_db_context
|
||||
from open_webui.models.users import User
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from pydantic import BaseModel, ConfigDict, field_validator
|
||||
from sqlalchemy import BigInteger, Column, Text, JSON, Boolean
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
|
@ -81,8 +81,18 @@ class RatingData(BaseModel):
|
|||
sibling_model_ids: Optional[list[str]] = None
|
||||
reason: Optional[str] = None
|
||||
comment: Optional[str] = None
|
||||
details: Optional[dict] = None
|
||||
model_config = ConfigDict(extra='allow', protected_namespaces=())
|
||||
|
||||
@field_validator('details')
|
||||
@classmethod
|
||||
def clamp_details_rating(cls, v: Optional[dict]) -> Optional[dict]:
|
||||
if isinstance(v, dict) and 'rating' in v:
|
||||
r = v['rating']
|
||||
if isinstance(r, (int, float)):
|
||||
v['rating'] = max(1, min(10, int(r)))
|
||||
return v
|
||||
|
||||
|
||||
class MetaData(BaseModel):
|
||||
arena: Optional[bool] = None
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue