fix skyvern agent local (#2050)
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import os
|
|
||||||
import subprocess
|
import subprocess
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
@@ -32,7 +31,7 @@ class SkyvernAgent:
|
|||||||
browser_path: str | None = None,
|
browser_path: str | None = None,
|
||||||
browser_type: str | None = None,
|
browser_type: str | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.skyvern_client: SkyvernClient | None = None
|
self.client: SkyvernClient | None = None
|
||||||
if base_url is None and api_key is None:
|
if base_url is None and api_key is None:
|
||||||
# TODO: run at the root wherever the code is initiated
|
# TODO: run at the root wherever the code is initiated
|
||||||
load_dotenv(".env")
|
load_dotenv(".env")
|
||||||
@@ -61,9 +60,9 @@ class SkyvernAgent:
|
|||||||
)
|
)
|
||||||
elif base_url is None and api_key is None:
|
elif base_url is None and api_key is None:
|
||||||
if not browser_type:
|
if not browser_type:
|
||||||
if "BROWSER_TYPE" not in os.environ:
|
# if "BROWSER_TYPE" not in os.environ:
|
||||||
raise Exception("browser type is missing")
|
# raise Exception("browser type is missing")
|
||||||
browser_type = os.environ["BROWSER_TYPE"]
|
browser_type = "chromium-headful"
|
||||||
|
|
||||||
settings.BROWSER_TYPE = browser_type
|
settings.BROWSER_TYPE = browser_type
|
||||||
elif base_url and api_key:
|
elif base_url and api_key:
|
||||||
@@ -253,7 +252,7 @@ class SkyvernAgent:
|
|||||||
async def run_task(
|
async def run_task(
|
||||||
self,
|
self,
|
||||||
prompt: str,
|
prompt: str,
|
||||||
engine: RunEngine = RunEngine.skyvern_v1,
|
engine: RunEngine = RunEngine.skyvern_v2,
|
||||||
url: str | None = None,
|
url: str | None = None,
|
||||||
webhook_url: str | None = None,
|
webhook_url: str | None = None,
|
||||||
totp_identifier: str | None = None,
|
totp_identifier: str | None = None,
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ class TaskRunRequest(BaseModel):
|
|||||||
engine: RunEngine = Field(
|
engine: RunEngine = Field(
|
||||||
default=RunEngine.skyvern_v2, description="The Skyvern engine version to use for this task"
|
default=RunEngine.skyvern_v2, description="The Skyvern engine version to use for this task"
|
||||||
)
|
)
|
||||||
proxy_location: ProxyLocation = Field(
|
proxy_location: ProxyLocation | None = Field(
|
||||||
default=ProxyLocation.RESIDENTIAL, description="Geographic Proxy location to route the browser traffic through"
|
default=ProxyLocation.RESIDENTIAL, description="Geographic Proxy location to route the browser traffic through"
|
||||||
)
|
)
|
||||||
data_extraction_schema: dict | list | str | None = Field(
|
data_extraction_schema: dict | list | str | None = Field(
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ async def get_run_response(run_id: str, organization_id: str | None = None) -> R
|
|||||||
|
|
||||||
if run.task_run_type == RunType.task_v1:
|
if run.task_run_type == RunType.task_v1:
|
||||||
# fetch task v1 from db and transform to task run response
|
# fetch task v1 from db and transform to task run response
|
||||||
task_v1 = await app.DATABASE.get_task(run.task_v1_id, organization_id=organization_id)
|
task_v1 = await app.DATABASE.get_task(run.run_id, organization_id=organization_id)
|
||||||
if not task_v1:
|
if not task_v1:
|
||||||
return None
|
return None
|
||||||
return TaskRunResponse(
|
return TaskRunResponse(
|
||||||
@@ -34,7 +34,7 @@ async def get_run_response(run_id: str, organization_id: str | None = None) -> R
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
elif run.task_run_type == RunType.task_v2:
|
elif run.task_run_type == RunType.task_v2:
|
||||||
task_v2 = await app.DATABASE.get_task_v2(run.task_v2_id, organization_id=organization_id)
|
task_v2 = await app.DATABASE.get_task_v2(run.run_id, organization_id=organization_id)
|
||||||
if not task_v2:
|
if not task_v2:
|
||||||
return None
|
return None
|
||||||
return TaskRunResponse(
|
return TaskRunResponse(
|
||||||
@@ -42,7 +42,8 @@ async def get_run_response(run_id: str, organization_id: str | None = None) -> R
|
|||||||
run_type=run.task_run_type,
|
run_type=run.task_run_type,
|
||||||
status=task_v2.status,
|
status=task_v2.status,
|
||||||
output=task_v2.output,
|
output=task_v2.output,
|
||||||
failure_reason=task_v2.failure_reason,
|
# TODO: add failure reason
|
||||||
|
# failure_reason=task_v2.failure_reason,
|
||||||
created_at=task_v2.created_at,
|
created_at=task_v2.created_at,
|
||||||
modified_at=task_v2.modified_at,
|
modified_at=task_v2.modified_at,
|
||||||
run_request=TaskRunRequest(
|
run_request=TaskRunRequest(
|
||||||
@@ -53,7 +54,7 @@ async def get_run_response(run_id: str, organization_id: str | None = None) -> R
|
|||||||
totp_identifier=task_v2.totp_identifier,
|
totp_identifier=task_v2.totp_identifier,
|
||||||
totp_url=task_v2.totp_verification_url,
|
totp_url=task_v2.totp_verification_url,
|
||||||
proxy_location=task_v2.proxy_location,
|
proxy_location=task_v2.proxy_location,
|
||||||
data_extraction_schema=task_v2.data_extraction_schema,
|
data_extraction_schema=task_v2.extracted_information_schema,
|
||||||
error_code_mapping=task_v2.error_code_mapping,
|
error_code_mapping=task_v2.error_code_mapping,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user