Spaces:
Running
Running
File size: 1,459 Bytes
508316a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | # workflows/engine.py
import logging
from browser.manager import BrowserManager
from agent.brain import AgentBrain
logger = logging.getLogger(__name__)
class WorkflowEngine:
def __init__(self):
self.browser_manager = BrowserManager()
async def start(self):
await self.browser_manager.initialize()
logger.info("WorkflowEngine gestartet.")
async def stop(self):
await self.browser_manager.close_all()
logger.info("WorkflowEngine gestoppt.")
async def run_task(self, task_description: str, use_persistent_session: str = None) -> str:
"""
Führt einen Task mithilfe des AgentBrain in einem Browser-Kontext aus.
"""
if use_persistent_session:
context = await self.browser_manager.get_persistent_context(use_persistent_session)
else:
context = await self.browser_manager.get_ephemeral_context()
page = await context.new_page()
brain = AgentBrain()
try:
result = await brain.run(task_description, page)
return result
except Exception as e:
logger.error(f"Fehler bei Ausführung von Task '{task_description[:30]}...': {e}")
return f"Fehler aufgetreten: {str(e)}"
finally:
await page.close()
if not use_persistent_session:
await context.close()
await brain.close()
|