This commit is contained in:
Timothy Jaeryang Baek
2025-12-29 02:05:55 +04:00
parent 5649a668fa
commit fe3047d53c
2 changed files with 23 additions and 12 deletions
+7 -3
View File
@@ -19,6 +19,9 @@ from fastapi.responses import (
)
from pydantic import BaseModel
from starlette.background import BackgroundTask
from sqlalchemy.orm import Session
from open_webui.internal.db import get_session
from open_webui.models.models import Models
from open_webui.config import (
@@ -457,7 +460,7 @@ async def get_filtered_models(models, user, db=None):
# Filter models based on user access control
filtered_models = []
for model in models.get("data", []):
model_info = Models.get_model_by_id(model["id"])
model_info = Models.get_model_by_id(model["id"], db=db)
if model_info:
if user.id == model_info.user_id or has_access(
user.id, type="read", access_control=model_info.access_control, db=db
@@ -797,6 +800,7 @@ async def generate_chat_completion(
form_data: dict,
user=Depends(get_verified_user),
bypass_filter: Optional[bool] = False,
db: Session = Depends(get_session),
):
if BYPASS_MODEL_ACCESS_CONTROL:
bypass_filter = True
@@ -807,7 +811,7 @@ async def generate_chat_completion(
metadata = payload.pop("metadata", None)
model_id = form_data.get("model")
model_info = Models.get_model_by_id(model_id)
model_info = Models.get_model_by_id(model_id, db=db)
# Check model info and override the payload
if model_info:
@@ -833,7 +837,7 @@ async def generate_chat_completion(
if not (
user.id == model_info.user_id
or has_access(
user.id, type="read", access_control=model_info.access_control
user.id, type="read", access_control=model_info.access_control, db=db
)
):
raise HTTPException(