sravaniamere commited on
Commit
c7d40b5
·
1 Parent(s): 3fa3f1b

fix step crash when current_task is None

Browse files
Files changed (1) hide show
  1. sql_env/server.py +24 -20
sql_env/server.py CHANGED
@@ -50,26 +50,30 @@ class SQLCorrectionEnvironment(Environment):
50
  done=False,
51
  )
52
 
53
- def step(self, action: SQLAction) -> SQLObservation:
54
- self._step_count += 1
55
- reward_obj = grade(action, self._current_task)
56
- reward = reward_obj.value
57
- self._last_reward = reward
58
- self._rewards_history.append(reward)
59
- done = (reward >= 0.95) or (self._step_count >= self._current_task.max_steps)
60
- self._done = done
61
- feedback = generate_feedback(action, self._current_task, reward_obj)
62
- return SQLObservation(
63
- task_id=self._current_task.task_id,
64
- broken_query=self._current_task.broken_query,
65
- schema_context=self._current_task.schema_context,
66
- error_hint=self._current_task.error_hint,
67
- step_number=self._step_count,
68
- previous_attempt=action.corrected_query,
69
- feedback=feedback,
70
- reward=reward,
71
- done=done,
72
- )
 
 
 
 
73
 
74
  @property
75
  def state(self) -> SQLState:
 
50
  done=False,
51
  )
52
 
53
+ def step(self, action: SQLAction) -> SQLObservation:
54
+ # Auto-reset if no task loaded (create_app may use fresh instances)
55
+ if self._current_task is None:
56
+ self.reset()
57
+
58
+ self._step_count += 1
59
+ reward_obj = grade(action, self._current_task)
60
+ reward = reward_obj.value
61
+ self._last_reward = reward
62
+ self._rewards_history.append(reward)
63
+ done = (reward >= 0.95) or (self._step_count >= self._current_task.max_steps)
64
+ self._done = done
65
+ feedback = generate_feedback(action, self._current_task, reward_obj)
66
+ return SQLObservation(
67
+ task_id=self._current_task.task_id,
68
+ broken_query=self._current_task.broken_query,
69
+ schema_context=self._current_task.schema_context,
70
+ error_hint=self._current_task.error_hint,
71
+ step_number=self._step_count,
72
+ previous_attempt=action.corrected_query,
73
+ feedback=feedback,
74
+ reward=reward,
75
+ done=done,
76
+ )
77
 
78
  @property
79
  def state(self) -> SQLState: