diff --git a/backend/open_webui/routers/models.py b/backend/open_webui/routers/models.py index b2ed9e9531..e2137d6654 100644 --- a/backend/open_webui/routers/models.py +++ b/backend/open_webui/routers/models.py @@ -189,16 +189,16 @@ async def get_models( data = add_chat_variables_schema(model.model_dump()) if data.get('meta'): data['meta'].pop('profile_image_url', None) - items.append( - ModelAccessResponse( - **data, - write_access=( - (user.role == 'admin' and BYPASS_ADMIN_ACCESS_CONTROL) - or user.id == model.user_id - or model.id in writable_model_ids - ), - ) + write_access = ( + (user.role == 'admin' and BYPASS_ADMIN_ACCESS_CONTROL) + or user.id == model.user_id + or model.id in writable_model_ids ) + # Strip params (system prompt and other curated config) for read-only + # callers, mirroring the per-id endpoint. + if not write_access: + data['params'] = {} + items.append(ModelAccessResponse(**data, write_access=write_access)) return ModelAccessListResponse( items=items,