convert element tree json -> html (#299)

This commit is contained in:
LawyZheng
2024-05-13 09:37:17 +08:00
committed by GitHub
parent 270642c60c
commit 25311dee86
3 changed files with 82 additions and 2 deletions

View File

@@ -43,7 +43,7 @@ from skyvern.webeye.actions.handler import ActionHandler
from skyvern.webeye.actions.models import AgentStepOutput, DetailedAgentStepOutput
from skyvern.webeye.actions.responses import ActionResult
from skyvern.webeye.browser_factory import BrowserState
from skyvern.webeye.scraper.scraper import ScrapedPage, scrape_website
from skyvern.webeye.scraper.scraper import ElementTreeFormat, ScrapedPage, scrape_website
LOG = structlog.get_logger()
@@ -636,13 +636,28 @@ class ForgeAgent:
):
LOG.info("Using Claude3 Sonnet prompt template for action extraction")
prompt_template = "extract-action-claude3-sonnet"
element_tree_format = ElementTreeFormat.JSON
if app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
"USE_HTML_ELEMENT_TREE",
task.workflow_run_id or task.task_id,
properties={"organization_id": task.organization_id},
):
element_tree_format = ElementTreeFormat.HTML
LOG.info(
f"Building element tree",
task_id=task.task_id,
workflow_run_id=task.workflow_run_id,
format=element_tree_format,
)
extract_action_prompt = prompt_engine.load_prompt(
prompt_template,
navigation_goal=navigation_goal,
navigation_payload_str=json.dumps(task.navigation_payload),
starting_url=starting_url,
current_url=current_url,
elements=scraped_page.element_tree_trimmed,
elements=scraped_page.build_element_tree(element_tree_format),
data_extraction_goal=task.data_extraction_goal,
action_history=actions_and_results_str,
error_code_mapping_str=json.dumps(task.error_code_mapping) if task.error_code_mapping else None,