SDK: Support AI act feature (#3888)
This commit is contained in:
committed by
GitHub
parent
bdbabd5153
commit
ba99e9ea2c
@@ -174,6 +174,11 @@ async def run_sdk_action(
|
||||
data=action.data,
|
||||
timeout=action.timeout,
|
||||
)
|
||||
elif action.type == "ai_act":
|
||||
await page_ai.ai_act(
|
||||
prompt=action.intention,
|
||||
)
|
||||
result = None
|
||||
elif action.type == "extract":
|
||||
extract_result = await page_ai.ai_extract(
|
||||
prompt=action.prompt,
|
||||
|
||||
@@ -12,6 +12,7 @@ class SdkActionType(str, Enum):
|
||||
AI_CLICK = "ai_click"
|
||||
AI_INPUT_TEXT = "ai_input_text"
|
||||
AI_SELECT_OPTION = "ai_select_option"
|
||||
AI_ACT = "ai_act"
|
||||
EXTRACT = "extract"
|
||||
|
||||
|
||||
@@ -57,6 +58,14 @@ class SelectOptionAction(SdkActionBase):
|
||||
timeout: float = Field(default=settings.BROWSER_ACTION_TIMEOUT_MS, description="Timeout in milliseconds")
|
||||
|
||||
|
||||
class ActAction(SdkActionBase):
|
||||
"""AI act action parameters."""
|
||||
|
||||
type: Literal["ai_act"] = "ai_act"
|
||||
intention: str = Field(default="", description="Natural language prompt for the action")
|
||||
data: str | dict[str, Any] | None = Field(None, description="Additional context data")
|
||||
|
||||
|
||||
class ExtractAction(SdkActionBase):
|
||||
"""Extract data action parameters."""
|
||||
|
||||
@@ -70,7 +79,7 @@ class ExtractAction(SdkActionBase):
|
||||
|
||||
# Discriminated union of all action types
|
||||
SdkAction = Annotated[
|
||||
Union[ClickAction, InputTextAction, SelectOptionAction, ExtractAction],
|
||||
Union[ClickAction, InputTextAction, SelectOptionAction, ActAction, ExtractAction],
|
||||
Field(discriminator="type"),
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user