|
@@ -5,7 +5,7 @@ from typing import Optional
|
|
|
from open_webui.apps.webui.internal.db import Base, JSONField, get_db
|
|
|
from open_webui.env import SRC_LOG_LEVELS
|
|
|
|
|
|
-from open_webui.apps.webui.models.groups import Groups
|
|
|
+from open_webui.apps.webui.models.users import Users, UserResponse
|
|
|
|
|
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
@@ -124,20 +124,12 @@ class ModelModel(BaseModel):
|
|
|
####################
|
|
|
|
|
|
|
|
|
-class ModelResponse(BaseModel):
|
|
|
- id: str
|
|
|
- user_id: str
|
|
|
- base_model_id: Optional[str] = None
|
|
|
-
|
|
|
- name: str
|
|
|
- params: ModelParams
|
|
|
- meta: ModelMeta
|
|
|
+class ModelUserResponse(ModelModel):
|
|
|
+ user: Optional[UserResponse] = None
|
|
|
|
|
|
- access_control: Optional[dict] = None
|
|
|
|
|
|
- is_active: bool
|
|
|
- updated_at: int # timestamp in epoch
|
|
|
- created_at: int # timestamp in epoch
|
|
|
+class ModelResponse(ModelModel):
|
|
|
+ pass
|
|
|
|
|
|
|
|
|
class ModelForm(BaseModel):
|
|
@@ -181,10 +173,15 @@ class ModelsTable:
|
|
|
with get_db() as db:
|
|
|
return [ModelModel.model_validate(model) for model in db.query(Model).all()]
|
|
|
|
|
|
- def get_models(self) -> list[ModelModel]:
|
|
|
+ def get_models(self) -> list[ModelUserResponse]:
|
|
|
with get_db() as db:
|
|
|
return [
|
|
|
- ModelModel.model_validate(model)
|
|
|
+ ModelUserResponse.model_validate(
|
|
|
+ {
|
|
|
+ **ModelModel.model_validate(model).model_dump(),
|
|
|
+ "user": Users.get_user_by_id(model.user_id).model_dump(),
|
|
|
+ }
|
|
|
+ )
|
|
|
for model in db.query(Model).filter(Model.base_model_id != None).all()
|
|
|
]
|
|
|
|
|
@@ -197,8 +194,8 @@ class ModelsTable:
|
|
|
|
|
|
def get_models_by_user_id(
|
|
|
self, user_id: str, permission: str = "write"
|
|
|
- ) -> list[ModelModel]:
|
|
|
- models = self.get_all_models()
|
|
|
+ ) -> list[ModelUserResponse]:
|
|
|
+ models = self.get_models()
|
|
|
return [
|
|
|
model
|
|
|
for model in models
|