Enforce navigation_goal in NavigationBlock and data_extraction_goal in ExtractionBlock (#1257)
This commit is contained in:
@@ -1372,10 +1372,14 @@ class ActionBlock(BaseTaskBlock):
|
|||||||
class NavigationBlock(BaseTaskBlock):
|
class NavigationBlock(BaseTaskBlock):
|
||||||
block_type: Literal[BlockType.NAVIGATION] = BlockType.NAVIGATION
|
block_type: Literal[BlockType.NAVIGATION] = BlockType.NAVIGATION
|
||||||
|
|
||||||
|
navigation_goal: str
|
||||||
|
|
||||||
|
|
||||||
class ExtractionBlock(BaseTaskBlock):
|
class ExtractionBlock(BaseTaskBlock):
|
||||||
block_type: Literal[BlockType.EXTRACTION] = BlockType.EXTRACTION
|
block_type: Literal[BlockType.EXTRACTION] = BlockType.EXTRACTION
|
||||||
|
|
||||||
|
data_extraction_goal: str
|
||||||
|
|
||||||
|
|
||||||
class LoginBlock(BaseTaskBlock):
|
class LoginBlock(BaseTaskBlock):
|
||||||
block_type: Literal[BlockType.LOGIN] = BlockType.LOGIN
|
block_type: Literal[BlockType.LOGIN] = BlockType.LOGIN
|
||||||
|
|||||||
@@ -253,9 +253,9 @@ class NavigationBlockYAML(BlockYAML):
|
|||||||
class ExtractionBlockYAML(BlockYAML):
|
class ExtractionBlockYAML(BlockYAML):
|
||||||
block_type: Literal[BlockType.EXTRACTION] = BlockType.EXTRACTION # type: ignore
|
block_type: Literal[BlockType.EXTRACTION] = BlockType.EXTRACTION # type: ignore
|
||||||
|
|
||||||
|
data_extraction_goal: str
|
||||||
url: str | None = None
|
url: str | None = None
|
||||||
title: str = ""
|
title: str = ""
|
||||||
data_extraction_goal: str | None = None
|
|
||||||
data_schema: dict[str, Any] | list | None = None
|
data_schema: dict[str, Any] | list | None = None
|
||||||
max_retries: int = 0
|
max_retries: int = 0
|
||||||
max_steps_per_run: int | None = None
|
max_steps_per_run: int | None = None
|
||||||
|
|||||||
@@ -1207,7 +1207,7 @@ class WorkflowService:
|
|||||||
raise e
|
raise e
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def _create_output_parameter_for_block(workflow_id: str, block_yaml: BLOCK_YAML_TYPES) -> OutputParameter:
|
async def create_output_parameter_for_block(workflow_id: str, block_yaml: BLOCK_YAML_TYPES) -> OutputParameter:
|
||||||
output_parameter_key = f"{block_yaml.label}_output"
|
output_parameter_key = f"{block_yaml.label}_output"
|
||||||
return await app.DATABASE.create_output_parameter(
|
return await app.DATABASE.create_output_parameter(
|
||||||
workflow_id=workflow_id,
|
workflow_id=workflow_id,
|
||||||
@@ -1221,7 +1221,7 @@ class WorkflowService:
|
|||||||
) -> dict[str, OutputParameter]:
|
) -> dict[str, OutputParameter]:
|
||||||
output_parameters = {}
|
output_parameters = {}
|
||||||
for block_yaml in block_yamls:
|
for block_yaml in block_yamls:
|
||||||
output_parameter = await WorkflowService._create_output_parameter_for_block(
|
output_parameter = await WorkflowService.create_output_parameter_for_block(
|
||||||
workflow_id=workflow_id, block_yaml=block_yaml
|
workflow_id=workflow_id, block_yaml=block_yaml
|
||||||
)
|
)
|
||||||
output_parameters[block_yaml.label] = output_parameter
|
output_parameters[block_yaml.label] = output_parameter
|
||||||
|
|||||||
Reference in New Issue
Block a user