🔄 synced local 'skyvern/' with remote 'skyvern/' (#2005)

This commit is contained in:
Shuchang Zheng 2025-03-23 17:10:17 -07:00 committed by GitHub
parent fc32f917f8
commit 70adf8b9c6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -211,6 +211,52 @@ class Block(BaseModel, abc.ABC):
) -> BlockResult:
pass
async def _generate_workflow_run_block_description(
self, workflow_run_block_id: str, organization_id: str | None = None
) -> None:
description = None
try:
block_data = self.model_dump(
exclude={
"workflow_run_block_id",
"organization_id",
"task_id",
"workflow_run_id",
"parent_workflow_run_block_id",
"label",
"status",
"output",
"continue_on_failure",
"failure_reason",
"actions",
"created_at",
"modified_at",
},
exclude_none=True,
)
description_generation_prompt = prompt_engine.load_prompt(
"generate_workflow_run_block_description",
block=block_data,
)
json_response = await app.SECONDARY_LLM_API_HANDLER(
prompt=description_generation_prompt, prompt_name="generate-workflow-run-block-description"
)
description = json_response.get("summary")
LOG.info(
"Generated description for the workflow run block",
description=description,
workflow_run_block_id=workflow_run_block_id,
)
except Exception as e:
LOG.exception("Failed to generate description for the workflow run block", error=e)
if description:
await app.DATABASE.update_workflow_run_block(
workflow_run_block_id=workflow_run_block_id,
description=description,
organization_id=organization_id,
)
async def execute_safe(
self,
workflow_run_id: str,
@ -231,48 +277,8 @@ class Block(BaseModel, abc.ABC):
)
workflow_run_block_id = workflow_run_block.workflow_run_block_id
description = None
try:
block_data = self.model_dump(
exclude={
"workflow_run_block_id",
"organization_id",
"task_id",
"workflow_run_id",
"parent_workflow_run_block_id",
"label",
"status",
"output",
"continue_on_failure",
"failure_reason",
"actions",
"created_at",
"modified_at",
},
exclude_none=True,
)
description_generation_prompt = prompt_engine.load_prompt(
"generate_workflow_run_block_description",
block=block_data,
)
json_response = await app.SECONDARY_LLM_API_HANDLER(
prompt=description_generation_prompt, prompt_name="generate-workflow-run-block-description"
)
description = json_response.get("summary")
LOG.info(
"Generated description for the workflow run block",
description=description,
workflow_run_block_id=workflow_run_block.workflow_run_block_id,
)
except Exception as e:
LOG.exception("Failed to generate description for the workflow run block", error=e)
if description:
workflow_run_block = await app.DATABASE.update_workflow_run_block(
workflow_run_block_id=workflow_run_block.workflow_run_block_id,
description=description,
organization_id=organization_id,
)
# generate the description for the workflow run block asynchronously
asyncio.create_task(self._generate_workflow_run_block_description(workflow_run_block_id, organization_id))
# create a screenshot
browser_state = app.BROWSER_MANAGER.get_for_workflow_run(workflow_run_id)