refac
This commit is contained in:
1 parent
35f8bf97e3
commit
b5c43968db
32 files changed
+2251
-120
No files matched your search
@@ -4,6 +4,7 @@ from typing import Optional
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
||||
from fastapi.concurrency import run_in_threadpool
|
||||
from open_webui.constants import ERROR_MESSAGES
|
||||
from open_webui.events import EVENTS, publish_event
|
||||
from open_webui.internal.db import get_async_session
|
||||
from open_webui.models.config import Config
|
||||
from open_webui.models.feedbacks import (
|
||||
@@ -291,7 +292,19 @@ async def update_config(
|
||||
if form_data.EVALUATION_ARENA_MODELS is not None:
|
||||
updates['evaluation.arena.models'] = form_data.EVALUATION_ARENA_MODELS
|
||||
await Config.upsert(updates)
|
||||
return await get_config_values(EVALUATION_CONFIG_KEYS)
|
||||
values = await get_config_values(EVALUATION_CONFIG_KEYS)
|
||||
await publish_event(
|
||||
request,
|
||||
EVENTS.CONFIG_UPDATED,
|
||||
actor=user,
|
||||
subject_id='evaluation',
|
||||
data={
|
||||
'keys': list(updates.keys()),
|
||||
'arena_enabled': values.get('ENABLE_EVALUATION_ARENA_MODELS'),
|
||||
'arena_model_count': len(values.get('EVALUATION_ARENA_MODELS') or []),
|
||||
},
|
||||
)
|
||||
return values
|
||||
|
||||
|
||||
@router.get('/feedbacks/models', response_model=list[str])
|
||||
@@ -305,8 +318,19 @@ async def get_all_feedback_ids(user=Depends(get_admin_user), db: AsyncSession =
|
||||
|
||||
|
||||
@router.delete('/feedbacks/all')
|
||||
async def delete_all_feedbacks(user=Depends(get_admin_user), db: AsyncSession = Depends(get_async_session)):
|
||||
async def delete_all_feedbacks(
|
||||
request: Request,
|
||||
user=Depends(get_admin_user),
|
||||
db: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
success = await Feedbacks.delete_all_feedbacks(db=db)
|
||||
if success:
|
||||
await publish_event(
|
||||
request,
|
||||
EVENTS.FEEDBACK_DELETED_ALL,
|
||||
actor=user,
|
||||
subject_id='all',
|
||||
)
|
||||
return success
|
||||
|
||||
|
||||
@@ -338,8 +362,19 @@ async def get_user_feedbacks(
|
||||
|
||||
|
||||
@router.delete('/feedbacks', response_model=bool)
|
||||
async def delete_feedbacks(user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)):
|
||||
async def delete_feedbacks(
|
||||
request: Request,
|
||||
user=Depends(get_verified_user),
|
||||
db: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
success = await Feedbacks.delete_feedbacks_by_user_id(user.id, db=db)
|
||||
if success:
|
||||
await publish_event(
|
||||
request,
|
||||
EVENTS.FEEDBACK_DELETED_ALL,
|
||||
actor=user,
|
||||
subject_id=user.id, subject_type='user',
|
||||
)
|
||||
return success
|
||||
|
||||
|
||||
@@ -383,6 +418,13 @@ async def create_feedback(
|
||||
detail=ERROR_MESSAGES.DEFAULT(),
|
||||
)
|
||||
|
||||
await publish_event(
|
||||
request,
|
||||
EVENTS.FEEDBACK_CREATED,
|
||||
actor=user,
|
||||
subject_id=feedback.id,
|
||||
data={'rating': getattr(feedback, 'rating', None)},
|
||||
)
|
||||
return feedback
|
||||
|
||||
|
||||
@@ -401,6 +443,7 @@ async def get_feedback_by_id(id: str, user=Depends(get_verified_user), db: Async
|
||||
|
||||
@router.post('/feedback/{id}', response_model=FeedbackModel)
|
||||
async def update_feedback_by_id(
|
||||
request: Request,
|
||||
id: str,
|
||||
form_data: FeedbackForm,
|
||||
user=Depends(get_verified_user),
|
||||
@@ -414,12 +457,22 @@ async def update_feedback_by_id(
|
||||
if not feedback:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=ERROR_MESSAGES.NOT_FOUND)
|
||||
|
||||
await publish_event(
|
||||
request,
|
||||
EVENTS.FEEDBACK_UPDATED,
|
||||
actor=user,
|
||||
subject_id=feedback.id,
|
||||
data={'rating': getattr(feedback, 'rating', None)},
|
||||
)
|
||||
return feedback
|
||||
|
||||
|
||||
@router.delete('/feedback/{id}')
|
||||
async def delete_feedback_by_id(
|
||||
id: str, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)
|
||||
request: Request,
|
||||
id: str,
|
||||
user=Depends(get_verified_user),
|
||||
db: AsyncSession = Depends(get_async_session),
|
||||
):
|
||||
if user.role == 'admin':
|
||||
success = await Feedbacks.delete_feedback_by_id(id=id, db=db)
|
||||
@@ -429,4 +482,10 @@ async def delete_feedback_by_id(
|
||||
if not success:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=ERROR_MESSAGES.NOT_FOUND)
|
||||
|
||||
await publish_event(
|
||||
request,
|
||||
EVENTS.FEEDBACK_DELETED,
|
||||
actor=user,
|
||||
subject_id=id,
|
||||
)
|
||||
return success
|
||||
Reference in new issue
Block a user