add run_workflow client code to SkyvernClient (#1946)
This commit is contained in:
@@ -6,7 +6,7 @@ from skyvern.config import settings
|
|||||||
from skyvern.exceptions import SkyvernClientException
|
from skyvern.exceptions import SkyvernClientException
|
||||||
from skyvern.forge.sdk.schemas.task_runs import TaskRunResponse
|
from skyvern.forge.sdk.schemas.task_runs import TaskRunResponse
|
||||||
from skyvern.forge.sdk.schemas.tasks import ProxyLocation
|
from skyvern.forge.sdk.schemas.tasks import ProxyLocation
|
||||||
from skyvern.forge.sdk.workflow.models.workflow import WorkflowRunStatusResponse
|
from skyvern.forge.sdk.workflow.models.workflow import RunWorkflowResponse, WorkflowRunStatusResponse
|
||||||
|
|
||||||
|
|
||||||
class RunEngine(StrEnum):
|
class RunEngine(StrEnum):
|
||||||
@@ -45,10 +45,25 @@ class SkyvernClient:
|
|||||||
async def run_workflow(
|
async def run_workflow(
|
||||||
self,
|
self,
|
||||||
workflow_id: str,
|
workflow_id: str,
|
||||||
|
workflow_input: dict | None = None,
|
||||||
webhook_url: str | None = None,
|
webhook_url: str | None = None,
|
||||||
proxy_location: ProxyLocation | None = None,
|
proxy_location: ProxyLocation | None = None,
|
||||||
) -> TaskRunResponse:
|
) -> RunWorkflowResponse:
|
||||||
return TaskRunResponse()
|
data = None
|
||||||
|
if workflow_input:
|
||||||
|
data = {"data": workflow_input}
|
||||||
|
async with httpx.AsyncClient() as client:
|
||||||
|
response = await client.post(
|
||||||
|
f"{self.base_url}/api/v1/workflows/{workflow_id}/run",
|
||||||
|
headers={"x-api-key": self.api_key},
|
||||||
|
json=data,
|
||||||
|
)
|
||||||
|
if response.status_code != 200:
|
||||||
|
raise SkyvernClientException(
|
||||||
|
f"Failed to run workflow: {response.text}",
|
||||||
|
status_code=response.status_code,
|
||||||
|
)
|
||||||
|
return RunWorkflowResponse.model_validate(response.json())
|
||||||
|
|
||||||
async def get_run(
|
async def get_run(
|
||||||
self,
|
self,
|
||||||
|
|||||||
Reference in New Issue
Block a user