Generates personalized growth roadmaps (sports, creative, academics, tech, business, research) as structured graph JSON.
1771688820683566.1.mp4
- Python 3.13 / FastAPI / Uvicorn
- LangGraph + LangChain (
init_chat_model— provider-agnostic) - Pydantic v2 / pydantic-settings
# 1. Configure environment
cp .env.example .env # then fill in your API key# or export directly:export LLM_API_KEY="AIza..."export LLM_PROVIDER="google_genai"# optional, default: google_genaiexport LLM_MODEL="gemini-2.0-flash"# optional, default: gemini-2.0-flash# 2. Install dependencies
uv sync
# 3. Run the server
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000GET /health
POST /v1/roadmaps
Content-Type: application/json
{
"profile": {
"domain": "tech",
"goal": "become a backend engineer",
"current_level": "beginner",
"skills": ["python"],
"experience_years": 1,
"timeline_months": 6,
"daily_hours": 3,
"age": 25,
"location": "remote",
"constraints": ["no paid courses"],
"resources_access": ["laptop", "internet"],
"preferences": {"language": "python"}
}
}
curl -s -X POST http://localhost:8000/v1/roadmaps \
-H "Content-Type: application/json" \
-d '{ "profile": { "domain": "tech", "goal": "become a backend engineer", "current_level": "beginner", "skills": ["python"], "timeline_months": 6 } }'| python -m json.tool| Variable | Default | Description |
|---|---|---|
LLM_API_KEY | (required) | API key for the LLM provider |
LLM_PROVIDER | google_genai | LangChain model provider |
LLM_MODEL | gemini-2.0-flash | Model name |
LLM_TEMPERATURE | 0.3 | Sampling temperature |
REQUEST_TIMEOUT_SECONDS | 120 | Max seconds per request |
LOG_LEVEL | INFO | Python logging level |
sports · creative · academics · tech · business · research
- Create
app/engine/planners/my_domain.pyextendingBasePlanner. - Add a prompt entry in
app/engine/prompts.py→DOMAIN_GUIDANCE. - Register it in
app/engine/domain_router.py→_REGISTRY.