from __future__ import annotations from fastapi import FastAPI from fastapi.responses import HTMLResponse from evaluator.persistence.repository import EvaluationRepository from fastapi import Request from fastapi.responses import JSONResponse import traceback app = FastAPI(title='Agent Framework Evaluator') @app.get('/health') def health(): return {'status':'ok'} @app.get('/runs') async def runs(limit:int=20): return await EvaluationRepository(auto_init_schema=False).alist_runs(limit) @app.get('/runs/{run_id}/progress') async def run_progress(run_id:str, events:int=20): return await EvaluationRepository(auto_init_schema=False).aget_run_progress(run_id, events) @app.get("/runs/{run_id}/results") async def results(run_id: str, limit: int = 100): return await EvaluationRepository(auto_init_schema=False).alist_results(run_id, limit) @app.get('/ui', response_class=HTMLResponse) def ui(): return '''Agent Framework Evaluator

Agent Framework Evaluator

Offline LLM-as-a-Judge with Agent Framework telemetry.

RunAgentSourceStatusTotalProcessedFailedCreated
''' @app.exception_handler(Exception) async def debug_exception_handler(request: Request, exc: Exception): return JSONResponse( status_code=500, content={ "error": str(exc), "traceback": traceback.format_exc(), }, )