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_genai
export 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.