Spaces:
Sleeping
Sleeping
| from typing import Generic, TypeVar | |
| from pydantic import BaseModel, ConfigDict, Field | |
| # Action Input Models | |
| class ExtractAction(BaseModel): | |
| query: str | |
| extract_links: bool = Field( | |
| default=False, description='Set True to true if the query requires links, else false to safe tokens' | |
| ) | |
| start_from_char: int = Field( | |
| default=0, description='Use this for long markdowns to start from a specific character (not index in browser_state)' | |
| ) | |
| class SearchAction(BaseModel): | |
| query: str | |
| engine: str = Field( | |
| default='duckduckgo', description='duckduckgo, google, bing (use duckduckgo by default because less captchas)' | |
| ) | |
| # Backward compatibility alias | |
| SearchAction = SearchAction | |
| class NavigateAction(BaseModel): | |
| url: str | |
| new_tab: bool = Field(default=False) | |
| # Backward compatibility alias | |
| GoToUrlAction = NavigateAction | |
| class ClickElementAction(BaseModel): | |
| index: int = Field(ge=1, description='from browser_state. All interactive elements work except <select> or file inputs.') | |
| # expect_download: bool = Field(default=False, description='set True if expecting a download, False otherwise') # moved to downloads_watchdog.py | |
| # click_count: int = 1 # TODO | |
| class InputTextAction(BaseModel): | |
| index: int = Field(ge=0, description='from browser_state') | |
| text: str | |
| clear: bool = Field(default=True, description='1=clear, 0=append') | |
| class DoneAction(BaseModel): | |
| text: str = Field(description='Final user message in the format the user requested') | |
| success: bool = Field(default=True, description='True if user_request completed successfully') | |
| files_to_display: list[str] | None = Field(default=[]) | |
| T = TypeVar('T', bound=BaseModel) | |
| class StructuredOutputAction(BaseModel, Generic[T]): | |
| success: bool = Field(default=True, description='True if user_request completed successfully') | |
| data: T = Field(description='The actual output data matching the requested schema') | |
| class SwitchTabAction(BaseModel): | |
| tab_id: str = Field(min_length=4, max_length=4, description='4-char id') | |
| class CloseTabAction(BaseModel): | |
| tab_id: str = Field(min_length=4, max_length=4, description='4-char id') | |
| class ScrollAction(BaseModel): | |
| down: bool = Field(description='down=True=scroll down, down=False scroll up') | |
| pages: float = Field(default=1.0, description='0.5=half page, 1=full page, 10=to bottom/top') | |
| index: int | None = Field(default=None, description='Optional element index to scroll within specific container') | |
| class SendKeysAction(BaseModel): | |
| keys: str = Field(description='keys (Escape, Enter, PageDown) or shortcuts (Control+o)') | |
| class UploadFileAction(BaseModel): | |
| index: int | |
| path: str | |
| class ExtractPageContentAction(BaseModel): | |
| value: str | |
| class NoParamsAction(BaseModel): | |
| model_config = ConfigDict(extra='ignore') | |
| class GetDropdownOptionsAction(BaseModel): | |
| index: int | |
| class SelectDropdownOptionAction(BaseModel): | |
| index: int | |
| text: str = Field(description='exact text/value') | |