@@ -291,6 +291,11 @@ async def update_config(
291291 }
292292
293293
294+ @router .get ('/feedbacks/models' , response_model = list [str ])
295+ async def get_feedback_model_ids (user = Depends (get_admin_user ), db : Session = Depends (get_session )):
296+ return Feedbacks .get_distinct_model_ids (db = db )
297+
298+
294299@router .get ('/feedbacks/all' , response_model = list [FeedbackResponse ])
295300async def get_all_feedbacks (user = Depends (get_admin_user ), db : Session = Depends (get_session )):
296301 feedbacks = Feedbacks .get_all_feedbacks (db = db )
@@ -309,8 +314,17 @@ async def delete_all_feedbacks(user=Depends(get_admin_user), db: Session = Depen
309314
310315
311316@router .get ('/feedbacks/all/export' , response_model = list [FeedbackModel ])
312- async def export_all_feedbacks (user = Depends (get_admin_user ), db : Session = Depends (get_session )):
317+ async def export_all_feedbacks (
318+ model_id : Optional [str ] = None ,
319+ user = Depends (get_admin_user ),
320+ db : Session = Depends (get_session ),
321+ ):
313322 feedbacks = Feedbacks .get_all_feedbacks (db = db )
323+ if model_id :
324+ feedbacks = [
325+ f for f in feedbacks
326+ if f .data and f .data .get ('model_id' ) == model_id
327+ ]
314328 return feedbacks
315329
316330
@@ -334,6 +348,7 @@ async def get_feedbacks(
334348 order_by : Optional [str ] = None ,
335349 direction : Optional [str ] = None ,
336350 page : Optional [int ] = 1 ,
351+ model_id : Optional [str ] = None ,
337352 user = Depends (get_admin_user ),
338353 db : Session = Depends (get_session ),
339354):
@@ -347,6 +362,8 @@ async def get_feedbacks(
347362 filter ['order_by' ] = order_by
348363 if direction :
349364 filter ['direction' ] = direction
365+ if model_id :
366+ filter ['model_id' ] = model_id
350367
351368 result = Feedbacks .get_feedback_items (filter = filter , skip = skip , limit = limit , db = db )
352369 return result
0 commit comments