SDK: validation action (#4203)

This commit is contained in:
Stanislav Novosad
2025-12-08 13:10:30 -07:00
committed by GitHub
parent 7ef48c32e0
commit 4b99cd3f45
11 changed files with 157 additions and 5 deletions

View File

@@ -205,6 +205,12 @@ async def run_sdk_action(
prompt=action.prompt,
)
result = xpath_result
elif action.type == "validate":
validation_result = await page_ai.ai_validate(
prompt=action.prompt,
model=action.model,
)
result = validation_result
elif action.type == "prompt":
prompt_result = await page_ai.ai_prompt(
prompt=action.prompt,

View File

@@ -16,6 +16,7 @@ class SdkActionType(str, Enum):
AI_ACT = "ai_act"
EXTRACT = "extract"
LOCATE_ELEMENT = "locate_element"
VALIDATE = "validate"
PROMPT = "prompt"
@@ -152,6 +153,20 @@ class LocateElementAction(SdkActionBase):
return None
class ValidateAction(SdkActionBase):
"""Validate action parameters."""
type: Literal["validate"] = "validate"
prompt: str = Field(..., description="Validation criteria or condition to check")
model: dict[str, Any] | None = Field(None, description="Optional model configuration")
def get_navigation_goal(self) -> str | None:
return self.prompt
def get_navigation_payload(self) -> dict[str, Any] | None:
return None
class PromptAction(SdkActionBase):
"""Prompt action parameters."""
@@ -177,6 +192,7 @@ SdkAction = Annotated[
ActAction,
ExtractAction,
LocateElementAction,
ValidateAction,
PromptAction,
],
Field(discriminator="type"),