Spaces:
Sleeping
Sleeping
Update environment.py
Browse files- environment.py +8 -6
environment.py
CHANGED
|
@@ -506,21 +506,23 @@ class FocusFlowEnvironment:
|
|
| 506 |
feedback_parts.append(f"Unknown action '{atype}': -0.05.")
|
| 507 |
|
| 508 |
return reward, " | ".join(feedback_parts)
|
| 509 |
-
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
|
|
|
|
|
|
| 513 |
if not self.day_context.pending_deadlines:
|
| 514 |
return 0.0
|
| 515 |
pressures = []
|
| 516 |
for dl in self.day_context.pending_deadlines:
|
| 517 |
-
if dl
|
| 518 |
continue
|
| 519 |
steps_left = dl["due_step"] - self.step_count
|
| 520 |
if steps_left <= 0:
|
| 521 |
pressures.append(1.0)
|
| 522 |
else:
|
| 523 |
-
pressures.append(max(0.0, 1.0 - steps_left / 50.0))
|
| 524 |
return max(pressures) if pressures else 0.0
|
| 525 |
|
| 526 |
# ββ Public OpenEnv API ββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
|
|
| 506 |
feedback_parts.append(f"Unknown action '{atype}': -0.05.")
|
| 507 |
|
| 508 |
return reward, " | ".join(feedback_parts)
|
| 509 |
+
|
| 510 |
+
def _compute_deadline_pressure(self) -> float:
|
| 511 |
+
# For each uncompleted deadline, it calculates how close you are to missing it.
|
| 512 |
+
# At 50+ steps away β pressure = 0.0. At 0 steps away β pressure=1.0.
|
| 513 |
+
# Returns the highest pressure across all deadlines.
|
| 514 |
+
# This number appears in the observation so the LLM knows when to stop chatting and start studying.
|
| 515 |
if not self.day_context.pending_deadlines:
|
| 516 |
return 0.0
|
| 517 |
pressures = []
|
| 518 |
for dl in self.day_context.pending_deadlines:
|
| 519 |
+
if dl.get("completed", False):
|
| 520 |
continue
|
| 521 |
steps_left = dl["due_step"] - self.step_count
|
| 522 |
if steps_left <= 0:
|
| 523 |
pressures.append(1.0)
|
| 524 |
else:
|
| 525 |
+
pressures.append(max(0.0, 1.0 - (steps_left / 50.0)))
|
| 526 |
return max(pressures) if pressures else 0.0
|
| 527 |
|
| 528 |
# ββ Public OpenEnv API ββββββββββββββββββββββββββββββββββββββββββββββββββββ
|