fix action parsing bug (#518)

This commit is contained in:
LawyZheng
2024-06-26 15:00:37 +08:00
committed by GitHub
parent 2b37e0cb81
commit df71ee0598

View File

@@ -213,12 +213,12 @@ def parse_action(action: Dict[str, Any], data_extraction_goal: str | None = None
if action_type == ActionType.SELECT_OPTION: if action_type == ActionType.SELECT_OPTION:
option = action["option"] option = action["option"]
if option is None: if option is None:
raise ValidationError("SelectOptionAction requires an 'option' field") raise ValueError("SelectOptionAction requires an 'option' field")
label = option.get("label") label = option.get("label")
value = option.get("value") value = option.get("value")
index = option.get("index") index = option.get("index")
if label is None and value is None and index is None: if label is None and value is None and index is None:
raise ValidationError("At least one of 'label', 'value', or 'index' must be provided for a SelectOption") raise ValueError("At least one of 'label', 'value', or 'index' must be provided for a SelectOption")
return SelectOptionAction( return SelectOptionAction(
element_id=element_id, element_id=element_id,
option=SelectOption( option=SelectOption(
@@ -280,8 +280,8 @@ def parse_actions(task: Task, json_response: list[Dict[str, Any]]) -> list[Actio
raw_action=action, raw_action=action,
exc_info=True, exc_info=True,
) )
except ValidationError: except (ValidationError, ValueError):
LOG.error( LOG.warning(
"Invalid action", "Invalid action",
task_id=task.task_id, task_id=task.task_id,
raw_action=action, raw_action=action,