add run_workflow client code to SkyvernClient (#1946)

This commit is contained in:
Shuchang Zheng
2025-03-16 16:02:12 -07:00
committed by GitHub
parent 8a561c2fbb
commit f9832b1657

View File

@@ -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,