Removes DEFAULT_MODEL in favour of a force_model setting configurable via the admin UI. When set, every proxy request's model field is overridden, preventing uncoordinated model switches during lab sessions. Updates schemas, admin API, all three proxy endpoints, frontend, init_db, and docs (README, DOCKERHUB, KURZANLEITUNG).
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
from pydantic import BaseModel
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
class APIKeyCreate(BaseModel):
|
|
name: str
|
|
expires_at: Optional[datetime] = None
|
|
daily_tokens: Optional[int] = None
|
|
monthly_tokens: Optional[int] = None
|
|
daily_requests: Optional[int] = None
|
|
monthly_requests: Optional[int] = None
|
|
|
|
class APIKey(BaseModel):
|
|
id: int
|
|
name: str
|
|
key: str
|
|
key_prefix: Optional[str] = None
|
|
is_active: bool
|
|
created_at: datetime
|
|
expires_at: Optional[datetime] = None
|
|
daily_tokens: Optional[int] = None
|
|
monthly_tokens: Optional[int] = None
|
|
daily_requests: Optional[int] = None
|
|
monthly_requests: Optional[int] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
class APIKeyCreated(APIKey):
|
|
plaintext_key: Optional[str] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
class QuotaUpdate(BaseModel):
|
|
daily_tokens: Optional[int] = None
|
|
monthly_tokens: Optional[int] = None
|
|
daily_requests: Optional[int] = None
|
|
monthly_requests: Optional[int] = None
|
|
|
|
class Settings(BaseModel):
|
|
ollama_url: str
|
|
force_model: Optional[str] = None
|
|
|
|
class UsageStats(BaseModel):
|
|
tokens_used_today: int = 0
|
|
tokens_used_month: int = 0
|
|
requests_today: int = 0
|
|
requests_month: int = 0
|
|
daily_reset_at: Optional[datetime] = None
|
|
monthly_reset_at: Optional[datetime] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
class APIKeyWithUsage(APIKey):
|
|
tokens_used_today: int = 0
|
|
tokens_used_month: int = 0
|
|
requests_today: int = 0
|
|
requests_month: int = 0
|
|
daily_reset_at: Optional[datetime] = None
|
|
monthly_reset_at: Optional[datetime] = None
|
|
|
|
class Config:
|
|
from_attributes = True |