SDK: more logs & small fixes (#3945)
This commit is contained in:
committed by
GitHub
parent
e3cd3eeae0
commit
6319847709
@@ -1,6 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
from typing import TYPE_CHECKING, Any
|
from typing import TYPE_CHECKING, Any
|
||||||
|
|
||||||
|
import structlog
|
||||||
from playwright.async_api import Page
|
from playwright.async_api import Page
|
||||||
|
|
||||||
from skyvern.client import GetRunResponse
|
from skyvern.client import GetRunResponse
|
||||||
@@ -15,6 +16,8 @@ if TYPE_CHECKING:
|
|||||||
from skyvern.schemas.run_blocks import CredentialType
|
from skyvern.schemas.run_blocks import CredentialType
|
||||||
from skyvern.schemas.runs import RunEngine, RunStatus, TaskRunResponse
|
from skyvern.schemas.runs import RunEngine, RunStatus, TaskRunResponse
|
||||||
|
|
||||||
|
LOG = structlog.get_logger()
|
||||||
|
|
||||||
|
|
||||||
class SkyvernPageRun:
|
class SkyvernPageRun:
|
||||||
"""Provides methods to run Skyvern tasks and workflows in the context of a browser page.
|
"""Provides methods to run Skyvern tasks and workflows in the context of a browser page.
|
||||||
@@ -66,6 +69,9 @@ class SkyvernPageRun:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI run task", prompt=prompt)
|
||||||
|
|
||||||
task_run = await self._browser.client.run_task(
|
task_run = await self._browser.client.run_task(
|
||||||
prompt=prompt,
|
prompt=prompt,
|
||||||
engine=engine,
|
engine=engine,
|
||||||
@@ -125,6 +131,9 @@ class SkyvernPageRun:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI login", prompt=prompt)
|
||||||
|
|
||||||
workflow_run = await self._browser.client.login(
|
workflow_run = await self._browser.client.login(
|
||||||
credential_type=credential_type,
|
credential_type=credential_type,
|
||||||
url=url or self._get_page_url(),
|
url=url or self._get_page_url(),
|
||||||
@@ -173,6 +182,9 @@ class SkyvernPageRun:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI run workflow", workflow_id=workflow_id)
|
||||||
|
|
||||||
workflow_run = await self._browser.client.run_workflow(
|
workflow_run = await self._browser.client.run_workflow(
|
||||||
workflow_id=workflow_id,
|
workflow_id=workflow_id,
|
||||||
parameters=parameters,
|
parameters=parameters,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from typing import TYPE_CHECKING, Any
|
from typing import TYPE_CHECKING, Any
|
||||||
|
|
||||||
|
import structlog
|
||||||
from playwright.async_api import Page
|
from playwright.async_api import Page
|
||||||
|
|
||||||
from skyvern.client import (
|
from skyvern.client import (
|
||||||
@@ -16,6 +17,8 @@ from skyvern.core.script_generations.skyvern_page_ai import SkyvernPageAi
|
|||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from skyvern.library.skyvern_browser import SkyvernBrowser
|
from skyvern.library.skyvern_browser import SkyvernBrowser
|
||||||
|
|
||||||
|
LOG = structlog.get_logger()
|
||||||
|
|
||||||
|
|
||||||
class SdkSkyvernPageAi(SkyvernPageAi):
|
class SdkSkyvernPageAi(SkyvernPageAi):
|
||||||
"""Implementation of SkyvernPageAi that makes API calls to the server."""
|
"""Implementation of SkyvernPageAi that makes API calls to the server."""
|
||||||
@@ -38,6 +41,9 @@ class SdkSkyvernPageAi(SkyvernPageAi):
|
|||||||
"""Click an element using AI via API call."""
|
"""Click an element using AI via API call."""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI click", intention=intention, workflow_run_id=self._browser.workflow_run_id)
|
||||||
|
|
||||||
response = await self._browser.client.run_sdk_action(
|
response = await self._browser.client.run_sdk_action(
|
||||||
url=self._page.url,
|
url=self._page.url,
|
||||||
browser_session_id=self._browser.browser_session_id,
|
browser_session_id=self._browser.browser_session_id,
|
||||||
@@ -66,6 +72,9 @@ class SdkSkyvernPageAi(SkyvernPageAi):
|
|||||||
"""Input text into an element using AI via API call."""
|
"""Input text into an element using AI via API call."""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI input text", intention=intention, workflow_run_id=self._browser.workflow_run_id)
|
||||||
|
|
||||||
response = await self._browser.client.run_sdk_action(
|
response = await self._browser.client.run_sdk_action(
|
||||||
url=self._page.url,
|
url=self._page.url,
|
||||||
action=RunSdkActionRequestAction_AiInputText(
|
action=RunSdkActionRequestAction_AiInputText(
|
||||||
@@ -95,6 +104,9 @@ class SdkSkyvernPageAi(SkyvernPageAi):
|
|||||||
"""Select an option from a dropdown using AI via API call."""
|
"""Select an option from a dropdown using AI via API call."""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI select option", intention=intention, workflow_run_id=self._browser.workflow_run_id)
|
||||||
|
|
||||||
response = await self._browser.client.run_sdk_action(
|
response = await self._browser.client.run_sdk_action(
|
||||||
url=self._page.url,
|
url=self._page.url,
|
||||||
action=RunSdkActionRequestAction_AiSelectOption(
|
action=RunSdkActionRequestAction_AiSelectOption(
|
||||||
@@ -123,6 +135,9 @@ class SdkSkyvernPageAi(SkyvernPageAi):
|
|||||||
"""Upload a file using AI via API call."""
|
"""Upload a file using AI via API call."""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI upload file", intention=intention, workflow_run_id=self._browser.workflow_run_id)
|
||||||
|
|
||||||
response = await self._browser.client.run_sdk_action(
|
response = await self._browser.client.run_sdk_action(
|
||||||
url=self._page.url,
|
url=self._page.url,
|
||||||
action=RunSdkActionRequestAction_AiUploadFile(
|
action=RunSdkActionRequestAction_AiUploadFile(
|
||||||
@@ -150,6 +165,9 @@ class SdkSkyvernPageAi(SkyvernPageAi):
|
|||||||
"""Extract information from the page using AI via API call."""
|
"""Extract information from the page using AI via API call."""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI extract", prompt=prompt, workflow_run_id=self._browser.workflow_run_id)
|
||||||
|
|
||||||
response = await self._browser.client.run_sdk_action(
|
response = await self._browser.client.run_sdk_action(
|
||||||
url=self._page.url,
|
url=self._page.url,
|
||||||
action=RunSdkActionRequestAction_Extract(
|
action=RunSdkActionRequestAction_Extract(
|
||||||
@@ -173,6 +191,9 @@ class SdkSkyvernPageAi(SkyvernPageAi):
|
|||||||
"""Perform an action on the page using AI via API call."""
|
"""Perform an action on the page using AI via API call."""
|
||||||
|
|
||||||
await self._browser.sdk.ensure_has_server()
|
await self._browser.sdk.ensure_has_server()
|
||||||
|
|
||||||
|
LOG.info("AI act", prompt=prompt, workflow_run_id=self._browser.workflow_run_id)
|
||||||
|
|
||||||
response = await self._browser.client.run_sdk_action(
|
response = await self._browser.client.run_sdk_action(
|
||||||
url=self._page.url,
|
url=self._page.url,
|
||||||
action=RunSdkActionRequestAction_AiAct(
|
action=RunSdkActionRequestAction_AiAct(
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ class LoginRequest(BaseModel):
|
|||||||
description="ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456`",
|
description="ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456`",
|
||||||
examples=["pbs_123456"],
|
examples=["pbs_123456"],
|
||||||
)
|
)
|
||||||
|
browser_profile_id: str | None = Field(
|
||||||
|
default=None,
|
||||||
|
description="ID of a browser profile to reuse for this run",
|
||||||
|
)
|
||||||
browser_address: str | None = Field(
|
browser_address: str | None = Field(
|
||||||
default=None,
|
default=None,
|
||||||
description="The CDP address for the task.",
|
description="The CDP address for the task.",
|
||||||
|
|||||||
Reference in New Issue
Block a user