do not take fullpage screenshot post CUA action (#2197)
This commit is contained in:
@@ -958,7 +958,7 @@ class ForgeAgent:
|
|||||||
)
|
)
|
||||||
detailed_agent_step_output.actions_and_results[action_idx] = (action, [action_result])
|
detailed_agent_step_output.actions_and_results[action_idx] = (action, [action_result])
|
||||||
await app.DATABASE.create_action(action=action)
|
await app.DATABASE.create_action(action=action)
|
||||||
await self.record_artifacts_after_action(task, step, browser_state)
|
await self.record_artifacts_after_action(task, step, browser_state, engine)
|
||||||
break
|
break
|
||||||
|
|
||||||
action = action_node.action
|
action = action_node.action
|
||||||
@@ -1011,7 +1011,7 @@ class ForgeAgent:
|
|||||||
)
|
)
|
||||||
# wait random time between actions to avoid detection
|
# wait random time between actions to avoid detection
|
||||||
await asyncio.sleep(random.uniform(1.0, 2.0))
|
await asyncio.sleep(random.uniform(1.0, 2.0))
|
||||||
await self.record_artifacts_after_action(task, step, browser_state)
|
await self.record_artifacts_after_action(task, step, browser_state, engine)
|
||||||
for result in results:
|
for result in results:
|
||||||
result.step_retry_number = step.retry_index
|
result.step_retry_number = step.retry_index
|
||||||
result.step_order = step.order
|
result.step_order = step.order
|
||||||
@@ -1147,7 +1147,7 @@ class ForgeAgent:
|
|||||||
scraped_page, task, step, working_page, complete_action
|
scraped_page, task, step, working_page, complete_action
|
||||||
)
|
)
|
||||||
detailed_agent_step_output.actions_and_results.append((complete_action, complete_results))
|
detailed_agent_step_output.actions_and_results.append((complete_action, complete_results))
|
||||||
await self.record_artifacts_after_action(task, step, browser_state)
|
await self.record_artifacts_after_action(task, step, browser_state, engine)
|
||||||
|
|
||||||
# if the last action is complete and is successful, check if there's a data extraction goal
|
# if the last action is complete and is successful, check if there's a data extraction goal
|
||||||
# if task has navigation goal and extraction goal at the same time, handle ExtractAction before marking step as completed
|
# if task has navigation goal and extraction goal at the same time, handle ExtractAction before marking step as completed
|
||||||
@@ -1441,12 +1441,23 @@ class ForgeAgent:
|
|||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def record_artifacts_after_action(self, task: Task, step: Step, browser_state: BrowserState) -> None:
|
async def record_artifacts_after_action(
|
||||||
|
self,
|
||||||
|
task: Task,
|
||||||
|
step: Step,
|
||||||
|
browser_state: BrowserState,
|
||||||
|
engine: RunEngine,
|
||||||
|
) -> None:
|
||||||
working_page = await browser_state.get_working_page()
|
working_page = await browser_state.get_working_page()
|
||||||
if not working_page:
|
if not working_page:
|
||||||
raise BrowserStateMissingPage()
|
raise BrowserStateMissingPage()
|
||||||
|
|
||||||
|
fullpage_screenshot = True
|
||||||
|
if engine == RunEngine.openai_cua:
|
||||||
|
fullpage_screenshot = False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
screenshot = await browser_state.take_screenshot(full_page=True)
|
screenshot = await browser_state.take_screenshot(full_page=fullpage_screenshot)
|
||||||
await app.ARTIFACT_MANAGER.create_artifact(
|
await app.ARTIFACT_MANAGER.create_artifact(
|
||||||
step=step,
|
step=step,
|
||||||
artifact_type=ArtifactType.SCREENSHOT_ACTION,
|
artifact_type=ArtifactType.SCREENSHOT_ACTION,
|
||||||
|
|||||||
Reference in New Issue
Block a user