Initialize app at runtime instead of import time (#4024)

This commit is contained in:
Stanislav Novosad
2025-11-18 17:56:58 -07:00
committed by GitHub
parent f7e68141eb
commit 0efae234ab
14 changed files with 319 additions and 183 deletions

View File

@@ -9,6 +9,7 @@ from dotenv import load_dotenv
from evaluation.core import Evaluator, SkyvernClient
from evaluation.core.utils import load_webvoyager_case_from_json
from skyvern.forge import app
from skyvern.forge.forge_app_initializer import start_forge_app
from skyvern.forge.prompts import prompt_engine
from skyvern.forge.sdk.schemas.task_v2 import TaskV2Request
@@ -19,6 +20,8 @@ async def create_task_v2(
base_url: str,
cred: str,
) -> None:
start_forge_app()
client = SkyvernClient(base_url=base_url, credentials=cred)
group_id = uuid4()

View File

@@ -10,6 +10,7 @@ from dotenv import load_dotenv
from evaluation.core import Evaluator, SkyvernClient
from evaluation.core.utils import load_webvoyager_case_from_json
from skyvern.forge import app
from skyvern.forge.forge_app_initializer import start_forge_app
from skyvern.forge.prompts import prompt_engine
from skyvern.forge.sdk.workflow.models.workflow import WorkflowRequestBody
from skyvern.schemas.runs import ProxyLocation
@@ -69,6 +70,8 @@ def main(
None, "--proxy-location", help="overwrite the workflow proxy location"
),
) -> None:
start_forge_app()
asyncio.run(
create_workflow_run(base_url=base_url, cred=cred, workflow_pid=workflow_pid, proxy_location=proxy_location)
)

View File

@@ -7,6 +7,7 @@ import typer
from dotenv import load_dotenv
from evaluation.core import Evaluator, SkyvernClient
from skyvern.forge.forge_app_initializer import start_forge_app
from skyvern.forge.sdk.workflow.models.workflow import WorkflowRunStatus
load_dotenv()
@@ -109,6 +110,8 @@ def main(
record_json_path: str = typer.Option(..., "--record-json", help="record json path for evaluation run"),
output_csv_path: str = typer.Option("output.csv", "--output-path", help="output csv path for evaluation run"),
) -> None:
start_forge_app()
asyncio.run(
run_eval(base_url=base_url, cred=cred, record_json_path=record_json_path, output_csv_path=output_csv_path)
)