Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, HTTPException | |
| from models.schemas import AssessmentResult | |
| from graph_pipeline.pipeline import pipeline | |
| from routers.assessment import active_assessments | |
| from output.roadmap_generator import generate_roadmap | |
| router = APIRouter(prefix="/roadmap", tags=["roadmap"]) | |
| async def get_roadmap(assessment_id: str, hours_per_day: float = 2.0): | |
| if assessment_id not in active_assessments: | |
| raise HTTPException(status_code=404, detail="Assessment not found") | |
| config = active_assessments[assessment_id] | |
| current_state = pipeline.get_state(config) | |
| st = current_state.values | |
| if not st.get("assessment_complete"): | |
| raise HTTPException(status_code=400, detail="Assessment not complete") | |
| roadmap = generate_roadmap( | |
| st.get("skill_scores", []), | |
| st.get("graph_paths", {}), | |
| hours_per_day, | |
| st["extraction"].domain | |
| ) | |
| return AssessmentResult( | |
| assessment_id=assessment_id, | |
| extraction=st["extraction"], | |
| skill_scores=st.get("skill_scores", []), | |
| roadmap=roadmap, | |
| time_to_ready_weeks=len(roadmap), | |
| domain=st["extraction"].domain | |
| ) | |