| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import enum
- from typing import Any
- class TaskState:
- def __init__(
- self,
- finished: bool = False,
- success: bool = False,
- agent_action_count: dict = None,
- terminate_reason: str = None,
- latest_output: dict[str, Any] = None,
- ):
- self.finished = finished
- self.success = success
- self.agent_action_count: dict[str, int] = (
- agent_action_count
- if agent_action_count
- else {
- 'propose_solution': 0,
- 'use_tool': 0,
- 'invalid_action': 0,
- }
- )
- self.terminate_reason = terminate_reason
- self.latest_output = latest_output
- def to_dict(self) -> dict[str, Any]:
- return {
- 'finished': self.finished,
- 'success': self.success,
- 'agent_action_count': self.agent_action_count,
- 'terminate_reason': self.terminate_reason,
- 'latest_output': self.latest_output,
- }
- class ParseError(Exception):
- pass
- class FeedbackType(enum.Enum):
- FEEDBACK_WITH_GT = 'feedback_with_gt'
- FEEDBACK_WO_GT = 'feedback_wo_gt'
- NO_FEEDBACK = 'no_feedback'
- class StepOutput:
- def __init__(
- self,
- observation: str = None,
- success: bool = False,
- extra: dict[str, Any] = None,
- turn_info: tuple[int, int] = None,
- ):
- self.observation: str = observation
- self.success: bool = success
- self.extra: dict[str, Any] = extra
- self.turn_info = turn_info
- def __repr__(self) -> str:
- return self.observation
- def to_str(self) -> str:
- output = 'Observation:\n'
- if self.observation is not None:
- output += self.observation + '\n'
- else:
- if not self.success:
- output += 'Your answer is wrong.\n'
- if self.turn_info is not None:
- n_steps_left, n_propose_solution_left = self.turn_info
- output += 'You have {} steps left and {} chances to propose solution left.\n'.format(
- n_steps_left, n_propose_solution_left
- )
- if n_steps_left <= 1:
- output += 'You should take the last step to propose a solution.\n'
- return output
- def to_dict(self) -> dict[str, Any]:
- return {
- 'observation': self.observation,
- 'success': self.success,
- }
|