87
87
88
88
_EVAL_SET_FILE_EXTENSION = ".evalset.json"
89
89
90
+ TAG_DEBUG = "Debug"
91
+ TAG_EVALUATION = "Evaluation"
92
+
90
93
91
94
class ApiServerSpanExporter (export_lib .SpanExporter ):
92
95
@@ -352,14 +355,14 @@ async def internal_lifespan(app: FastAPI):
352
355
def list_apps () -> list [str ]:
353
356
return self .agent_loader .list_agents ()
354
357
355
- @app .get ("/debug/trace/{event_id}" )
358
+ @app .get ("/debug/trace/{event_id}" , tags = [ TAG_DEBUG ] )
356
359
def get_trace_dict (event_id : str ) -> Any :
357
360
event_dict = trace_dict .get (event_id , None )
358
361
if event_dict is None :
359
362
raise HTTPException (status_code = 404 , detail = "Trace not found" )
360
363
return event_dict
361
364
362
- @app .get ("/debug/trace/session/{session_id}" )
365
+ @app .get ("/debug/trace/session/{session_id}" , tags = [ TAG_DEBUG ] )
363
366
def get_session_trace (session_id : str ) -> Any :
364
367
spans = memory_exporter .get_finished_spans (session_id )
365
368
if not spans :
@@ -456,6 +459,7 @@ async def create_session(
456
459
@app .post (
457
460
"/apps/{app_name}/eval_sets/{eval_set_id}" ,
458
461
response_model_exclude_none = True ,
462
+ tags = [TAG_EVALUATION ],
459
463
)
460
464
def create_eval_set (
461
465
app_name : str ,
@@ -473,6 +477,7 @@ def create_eval_set(
473
477
@app .get (
474
478
"/apps/{app_name}/eval_sets" ,
475
479
response_model_exclude_none = True ,
480
+ tags = [TAG_EVALUATION ],
476
481
)
477
482
def list_eval_sets (app_name : str ) -> list [str ]:
478
483
"""Lists all eval sets for the given app."""
@@ -485,6 +490,7 @@ def list_eval_sets(app_name: str) -> list[str]:
485
490
@app .post (
486
491
"/apps/{app_name}/eval_sets/{eval_set_id}/add_session" ,
487
492
response_model_exclude_none = True ,
493
+ tags = [TAG_EVALUATION ],
488
494
)
489
495
async def add_session_to_eval_set (
490
496
app_name : str , eval_set_id : str , req : AddSessionToEvalSetRequest
@@ -524,6 +530,7 @@ async def add_session_to_eval_set(
524
530
@app .get (
525
531
"/apps/{app_name}/eval_sets/{eval_set_id}/evals" ,
526
532
response_model_exclude_none = True ,
533
+ tags = [TAG_EVALUATION ],
527
534
)
528
535
def list_evals_in_eval_set (
529
536
app_name : str ,
@@ -542,6 +549,7 @@ def list_evals_in_eval_set(
542
549
@app .get (
543
550
"/apps/{app_name}/eval_sets/{eval_set_id}/evals/{eval_case_id}" ,
544
551
response_model_exclude_none = True ,
552
+ tags = [TAG_EVALUATION ],
545
553
)
546
554
def get_eval (
547
555
app_name : str , eval_set_id : str , eval_case_id : str
@@ -564,6 +572,7 @@ def get_eval(
564
572
@app .put (
565
573
"/apps/{app_name}/eval_sets/{eval_set_id}/evals/{eval_case_id}" ,
566
574
response_model_exclude_none = True ,
575
+ tags = [TAG_EVALUATION ],
567
576
)
568
577
def update_eval (
569
578
app_name : str ,
@@ -592,7 +601,10 @@ def update_eval(
592
601
except NotFoundError as nfe :
593
602
raise HTTPException (status_code = 404 , detail = str (nfe )) from nfe
594
603
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
+ )
596
608
def delete_eval (app_name : str , eval_set_id : str , eval_case_id : str ):
597
609
try :
598
610
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):
604
616
@app .post (
605
617
"/apps/{app_name}/eval_sets/{eval_set_id}/run_eval" ,
606
618
response_model_exclude_none = True ,
619
+ tags = [TAG_EVALUATION ],
607
620
)
608
621
async def run_eval (
609
622
app_name : str , eval_set_id : str , req : RunEvalRequest
@@ -675,6 +688,7 @@ async def run_eval(
675
688
@app .get (
676
689
"/apps/{app_name}/eval_results/{eval_result_id}" ,
677
690
response_model_exclude_none = True ,
691
+ tags = [TAG_EVALUATION ],
678
692
)
679
693
def get_eval_result (
680
694
app_name : str ,
@@ -693,6 +707,7 @@ def get_eval_result(
693
707
@app .get (
694
708
"/apps/{app_name}/eval_results" ,
695
709
response_model_exclude_none = True ,
710
+ tags = [TAG_EVALUATION ],
696
711
)
697
712
def list_eval_results (app_name : str ) -> list [str ]:
698
713
"""Lists all eval results for the given app."""
@@ -701,6 +716,7 @@ def list_eval_results(app_name: str) -> list[str]:
701
716
@app .get (
702
717
"/apps/{app_name}/eval_metrics" ,
703
718
response_model_exclude_none = True ,
719
+ tags = [TAG_EVALUATION ],
704
720
)
705
721
def list_eval_metrics (app_name : str ) -> list [MetricInfo ]:
706
722
"""Lists all eval metrics for the given app."""
@@ -867,6 +883,7 @@ async def event_generator():
867
883
@app .get (
868
884
"/apps/{app_name}/users/{user_id}/sessions/{session_id}/events/{event_id}/graph" ,
869
885
response_model_exclude_none = True ,
886
+ tags = [TAG_DEBUG ],
870
887
)
871
888
async def get_event_graph (
872
889
app_name : str , user_id : str , session_id : str , event_id : str
0 commit comments