Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/otari/_client/models/rate_limit_rule_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ class RateLimitRuleCreate(BaseModel):
name: Annotated[str, Field(strict=True)] = Field(description="Names the rule in a 429's detail and in the counter's key. Unique across rate_limits.")
per: StrictStr = Field(description="What one count is shared by.")
rpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Requests per minute.")
tpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Tokens per minute. A request is admitted on its estimate (prompt plus max output, or budget_estimate_default_output_tokens) and charged what it used once it completes.")
tpm_admission: Optional[StrictStr] = Field(default='estimate', description="How a tpm limit admits a request. 'estimate' holds the request's estimate and refuses it when that does not fit. 'used' admits a request while the minute's tokens are under the limit, holding none, and counts what it used once it completes, as LiteLLM does: a client that always sends a large max_tokens is limited by its usage, not its ceiling.")
tpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Tokens per minute, counted on what each request used; see tpm_admission for how a request is admitted.")
tpm_admission: Optional[StrictStr] = Field(default='used', description="How a tpm limit admits a request. 'used' (the default) admits a request while the minute's tokens are under the limit and counts what it used once it completes, as LiteLLM does. 'estimate' holds the request's estimate (prompt plus max output, or budget_estimate_default_output_tokens) while it runs and refuses it when that does not fit, which is how providers count their own quotas: use it for a limit meant to stay under one.")
__properties: ClassVar[List[str]] = ["lease_sec", "max_concurrent", "models", "name", "per", "rpm", "tpm", "tpm_admission"]

@field_validator('name')
Expand All @@ -61,8 +61,8 @@ def tpm_admission_validate_enum(cls, value):
if value is None:
return value

if value not in set(['estimate', 'used']):
raise ValueError("must be one of enum values ('estimate', 'used')")
if value not in set(['used', 'estimate']):
raise ValueError("must be one of enum values ('used', 'estimate')")
return value

model_config = ConfigDict(
Expand Down Expand Up @@ -143,7 +143,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"per": obj.get("per"),
"rpm": obj.get("rpm"),
"tpm": obj.get("tpm"),
"tpm_admission": obj.get("tpm_admission") if obj.get("tpm_admission") is not None else 'estimate'
"tpm_admission": obj.get("tpm_admission") if obj.get("tpm_admission") is not None else 'used'
})
return _obj

Expand Down
10 changes: 5 additions & 5 deletions src/otari/_client/models/rate_limit_rule_public.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ class RateLimitRulePublic(BaseModel):
per: StrictStr = Field(description="What one count is shared by.")
rpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Requests per minute.")
source: StrictStr = Field(description="'config' for a rule from config.yml, which is read-only here; 'dashboard' for a stored one.")
tpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Tokens per minute. A request is admitted on its estimate (prompt plus max output, or budget_estimate_default_output_tokens) and charged what it used once it completes.")
tpm_admission: Optional[StrictStr] = Field(default='estimate', description="How a tpm limit admits a request. 'estimate' holds the request's estimate and refuses it when that does not fit. 'used' admits a request while the minute's tokens are under the limit, holding none, and counts what it used once it completes, as LiteLLM does: a client that always sends a large max_tokens is limited by its usage, not its ceiling.")
tpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Tokens per minute, counted on what each request used; see tpm_admission for how a request is admitted.")
tpm_admission: Optional[StrictStr] = Field(default='used', description="How a tpm limit admits a request. 'used' (the default) admits a request while the minute's tokens are under the limit and counts what it used once it completes, as LiteLLM does. 'estimate' holds the request's estimate (prompt plus max output, or budget_estimate_default_output_tokens) while it runs and refuses it when that does not fit, which is how providers count their own quotas: use it for a limit meant to stay under one.")
updated_at: Optional[datetime] = Field(default=None, description="When a stored rule last changed.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["lease_sec", "max_concurrent", "models", "name", "per", "rpm", "source", "tpm", "tpm_admission", "updated_at"]
Expand Down Expand Up @@ -72,8 +72,8 @@ def tpm_admission_validate_enum(cls, value):
if value is None:
return value

if value not in set(['estimate', 'used']):
raise ValueError("must be one of enum values ('estimate', 'used')")
if value not in set(['used', 'estimate']):
raise ValueError("must be one of enum values ('used', 'estimate')")
return value

model_config = ConfigDict(
Expand Down Expand Up @@ -167,7 +167,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"rpm": obj.get("rpm"),
"source": obj.get("source"),
"tpm": obj.get("tpm"),
"tpm_admission": obj.get("tpm_admission") if obj.get("tpm_admission") is not None else 'estimate',
"tpm_admission": obj.get("tpm_admission") if obj.get("tpm_admission") is not None else 'used',
"updated_at": obj.get("updated_at")
})
# store additional fields in additional_properties
Expand Down
6 changes: 3 additions & 3 deletions src/otari/_client/models/rate_limit_rule_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class RateLimitRuleUpdate(BaseModel):
per: Optional[StrictStr] = Field(default=None, description="What one count is shared by.")
rpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Requests per minute.")
tpm: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Tokens per minute.")
tpm_admission: Optional[StrictStr] = Field(default=None, description="'estimate' holds a request's estimate; 'used' counts only what it used.")
tpm_admission: Optional[StrictStr] = Field(default=None, description="'used' counts only what a request used; 'estimate' holds its estimate.")
__properties: ClassVar[List[str]] = ["lease_sec", "max_concurrent", "models", "per", "rpm", "tpm", "tpm_admission"]

@field_validator('per')
Expand All @@ -53,8 +53,8 @@ def tpm_admission_validate_enum(cls, value):
if value is None:
return value

if value not in set(['estimate', 'used']):
raise ValueError("must be one of enum values ('estimate', 'used')")
if value not in set(['used', 'estimate']):
raise ValueError("must be one of enum values ('used', 'estimate')")
return value

model_config = ConfigDict(
Expand Down
Loading