polyguard-openenv / app /env /curriculum.py
TheJackBright's picture
Deploy PolyGuard OpenEnv Space
877add7 verified
"""Curriculum helpers."""
from __future__ import annotations
from app.common.enums import Difficulty, SubEnvironment
def pick_difficulty(episode_index: int) -> Difficulty:
if episode_index < 20:
return Difficulty.EASY
if episode_index < 40:
return Difficulty.MEDIUM
return Difficulty.HARD
def pick_sub_environment(episode_index: int, difficulty: Difficulty) -> SubEnvironment:
# Curriculum starts in DDI/risk-heavy cases then introduces bandits/dosing.
if difficulty == Difficulty.EASY:
return SubEnvironment.DDI if episode_index % 2 == 0 else SubEnvironment.REGIMEN_RISK
if difficulty == Difficulty.MEDIUM:
if episode_index % 4 == 0:
return SubEnvironment.BANDIT_MINING
if episode_index % 4 == 1:
return SubEnvironment.ALTERNATIVE_SUGGESTION
return SubEnvironment.REGIMEN_RISK
if episode_index % 5 == 0:
return SubEnvironment.PRECISION_DOSING
if episode_index % 5 == 1:
return SubEnvironment.LONGITUDINAL_DEPRESCRIBING
if episode_index % 5 == 2:
return SubEnvironment.WEB_SEARCH_MISSING_DATA
if episode_index % 5 == 3:
return SubEnvironment.NEW_DRUG_DECOMPOSITION
return SubEnvironment.REGIMEN_RISK