8787
8888_EVAL_SET_FILE_EXTENSION = ".evalset.json"
8989
90+ TAG_DEBUG = "Debug"
91+ TAG_EVALUATION = "Evaluation"
92+
9093
9194class ApiServerSpanExporter (export_lib .SpanExporter ):
9295
@@ -352,14 +355,14 @@ async def internal_lifespan(app: FastAPI):
352355 def list_apps () -> list [str ]:
353356 return self .agent_loader .list_agents ()
354357
355- @app .get ("/debug/trace/{event_id}" )
358+ @app .get ("/debug/trace/{event_id}" , tags = [ TAG_DEBUG ] )
356359 def get_trace_dict (event_id : str ) -> Any :
357360 event_dict = trace_dict .get (event_id , None )
358361 if event_dict is None :
359362 raise HTTPException (status_code = 404 , detail = "Trace not found" )
360363 return event_dict
361364
362- @app .get ("/debug/trace/session/{session_id}" )
365+ @app .get ("/debug/trace/session/{session_id}" , tags = [ TAG_DEBUG ] )
363366 def get_session_trace (session_id : str ) -> Any :
364367 spans = memory_exporter .get_finished_spans (session_id )
365368 if not spans :
@@ -456,6 +459,7 @@ async def create_session(
456459 @app .post (
457460 "/apps/{app_name}/eval_sets/{eval_set_id}" ,
458461 response_model_exclude_none = True ,
462+ tags = [TAG_EVALUATION ],
459463 )
460464 def create_eval_set (
461465 app_name : str ,
@@ -473,6 +477,7 @@ def create_eval_set(
473477 @app .get (
474478 "/apps/{app_name}/eval_sets" ,
475479 response_model_exclude_none = True ,
480+ tags = [TAG_EVALUATION ],
476481 )
477482 def list_eval_sets (app_name : str ) -> list [str ]:
478483 """Lists all eval sets for the given app."""
@@ -485,6 +490,7 @@ def list_eval_sets(app_name: str) -> list[str]:
485490 @app .post (
486491 "/apps/{app_name}/eval_sets/{eval_set_id}/add_session" ,
487492 response_model_exclude_none = True ,
493+ tags = [TAG_EVALUATION ],
488494 )
489495 async def add_session_to_eval_set (
490496 app_name : str , eval_set_id : str , req : AddSessionToEvalSetRequest
@@ -524,6 +530,7 @@ async def add_session_to_eval_set(
524530 @app .get (
525531 "/apps/{app_name}/eval_sets/{eval_set_id}/evals" ,
526532 response_model_exclude_none = True ,
533+ tags = [TAG_EVALUATION ],
527534 )
528535 def list_evals_in_eval_set (
529536 app_name : str ,
@@ -542,6 +549,7 @@ def list_evals_in_eval_set(
542549 @app .get (
543550 "/apps/{app_name}/eval_sets/{eval_set_id}/evals/{eval_case_id}" ,
544551 response_model_exclude_none = True ,
552+ tags = [TAG_EVALUATION ],
545553 )
546554 def get_eval (
547555 app_name : str , eval_set_id : str , eval_case_id : str
@@ -564,6 +572,7 @@ def get_eval(
564572 @app .put (
565573 "/apps/{app_name}/eval_sets/{eval_set_id}/evals/{eval_case_id}" ,
566574 response_model_exclude_none = True ,
575+ tags = [TAG_EVALUATION ],
567576 )
568577 def update_eval (
569578 app_name : str ,
@@ -592,7 +601,10 @@ def update_eval(
592601 except NotFoundError as nfe :
593602 raise HTTPException (status_code = 404 , detail = str (nfe )) from nfe
594603
595- @app .delete ("/apps/{app_name}/eval_sets/{eval_set_id}/evals/{eval_case_id}" )
604+ @app .delete (
605+ "/apps/{app_name}/eval_sets/{eval_set_id}/evals/{eval_case_id}" ,
606+ tags = [TAG_EVALUATION ],
607+ )
596608 def delete_eval (app_name : str , eval_set_id : str , eval_case_id : str ):
597609 try :
598610 self .eval_sets_manager .delete_eval_case (
@@ -604,6 +616,7 @@ def delete_eval(app_name: str, eval_set_id: str, eval_case_id: str):
604616 @app .post (
605617 "/apps/{app_name}/eval_sets/{eval_set_id}/run_eval" ,
606618 response_model_exclude_none = True ,
619+ tags = [TAG_EVALUATION ],
607620 )
608621 async def run_eval (
609622 app_name : str , eval_set_id : str , req : RunEvalRequest
@@ -675,6 +688,7 @@ async def run_eval(
675688 @app .get (
676689 "/apps/{app_name}/eval_results/{eval_result_id}" ,
677690 response_model_exclude_none = True ,
691+ tags = [TAG_EVALUATION ],
678692 )
679693 def get_eval_result (
680694 app_name : str ,
@@ -693,6 +707,7 @@ def get_eval_result(
693707 @app .get (
694708 "/apps/{app_name}/eval_results" ,
695709 response_model_exclude_none = True ,
710+ tags = [TAG_EVALUATION ],
696711 )
697712 def list_eval_results (app_name : str ) -> list [str ]:
698713 """Lists all eval results for the given app."""
@@ -701,6 +716,7 @@ def list_eval_results(app_name: str) -> list[str]:
701716 @app .get (
702717 "/apps/{app_name}/eval_metrics" ,
703718 response_model_exclude_none = True ,
719+ tags = [TAG_EVALUATION ],
704720 )
705721 def list_eval_metrics (app_name : str ) -> list [MetricInfo ]:
706722 """Lists all eval metrics for the given app."""
@@ -867,6 +883,7 @@ async def event_generator():
867883 @app .get (
868884 "/apps/{app_name}/users/{user_id}/sessions/{session_id}/events/{event_id}/graph" ,
869885 response_model_exclude_none = True ,
886+ tags = [TAG_DEBUG ],
870887 )
871888 async def get_event_graph (
872889 app_name : str , user_id : str , session_id : str , event_id : str
0 commit comments