mirror of
https://github.com/StanGirard/quivr.git
synced 2024-11-23 21:22:35 +03:00
2c9a0c1ed2
* feat: add public brain details modal * feat(brain): add subscription route * feat: activate subscription button * feat: add last_update column to brain table * feat: display last update on public brain details page * feat: change RBAC rule for public brains * feat: maintain brain last_update time
45 lines
886 B
Python
45 lines
886 B
Python
from typing import Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel
|
|
from routes.authorizations.types import RoleEnum
|
|
|
|
|
|
class BrainEntity(BaseModel):
|
|
brain_id: UUID
|
|
name: str
|
|
description: Optional[str]
|
|
temperature: Optional[float]
|
|
model: Optional[str]
|
|
max_tokens: Optional[int]
|
|
openai_api_key: Optional[str]
|
|
status: Optional[str]
|
|
prompt_id: Optional[UUID]
|
|
last_update: str
|
|
|
|
@property
|
|
def id(self) -> UUID:
|
|
return self.brain_id
|
|
|
|
def dict(self, **kwargs):
|
|
data = super().dict(
|
|
**kwargs,
|
|
)
|
|
data["id"] = self.id
|
|
return data
|
|
|
|
|
|
class MinimalBrainEntity(BaseModel):
|
|
id: UUID
|
|
name: str
|
|
rights: RoleEnum
|
|
status: str
|
|
|
|
|
|
class PublicBrain(BaseModel):
|
|
id: UUID
|
|
name: str
|
|
description: Optional[str]
|
|
number_of_subscribers: int = 0
|
|
last_update: str
|