diff --git a/lib/llm/prompt/__init__.py b/lib/llm/prompt/__init__.py index e7e5752..0b09c9e 100644 --- a/lib/llm/prompt/__init__.py +++ b/lib/llm/prompt/__init__.py @@ -12,6 +12,8 @@ extend_planner_system_message = f""" - ✅ **초기 제공된 URL 내에서만 탐색** - ❌ 직접 이동하거나 추측한 링크 클릭 금지 - ⛔ 추측한 URL은 대답하거나 클릭하지 마세요 +- OAuth가 아닌 일반 로그인은 무시 +- OAuth가 없다면 **즉시 중단**하고 빈 배열 반환 --- @@ -77,7 +79,7 @@ extend_planner_system_message = f""" - **로그인 완료 후 authorize 등 버튼이 있으면 클릭** - GitHub같은 경우 Authorize 버튼이 뜨는데 오래걸릴 수 있음, 기다려야 할 수도 있음 - 만약 버튼을 눌러도 반응이 없을 경우 새로고침을 한번 해주세요. -4. 로그인 성공 후 clear_cookies를 사용해 모두 쿠키를 삭제하고 다음 SSO 버튼을 클릭합니다. +4. 로그인 성공 후 clear all cookies, then reload the page 모두 쿠키를 삭제하고 다음 SSO 버튼을 클릭합니다. 5. 다음 SSO 버튼으로 반복 진행 🛑 절대 아래와 같이 해석하지 말 것: diff --git a/main.py b/main.py index 89c4037..7f4d0dc 100644 --- a/main.py +++ b/main.py @@ -14,8 +14,7 @@ from browser_use import ( Controller, ActionResult, ) -from patchright.async_api import async_playwright as async_patchright -from playwright.async_api import Page +from patchright.async_api import async_playwright as async_patchright, Page from lib.utils import env_cheker from lib.utils.backend_client import notify_backend @@ -113,17 +112,44 @@ async def scan_one_url(url: str, skip_html_check: bool = False): initial_actions = [{"open_tab": {"url": target_url}}] controller = Controller(output_model=model.BaseModel, exclude_actions=['search_google']) - @controller.action('clear_cookies') + @controller.action('Clear all cookies and reload page') async def clear_cookies(browser_session: BrowserSession) -> ActionResult: - # Clear all cookies for the current context + print("🔧 Executing clear_cookies action...") + + # Get the current page page = await browser_session.get_current_page() - await page.context.clear_cookies() - await page.context.clear_permissions() - await page.reload() + if not page: + print("❌ 현재 페이지를 찾을 수 없습니다. 쿠키를 지울 수 없습니다.") + return ActionResult( + extracted_content="현재 페이지를 찾을 수 없습니다.", + include_in_memory=True + ) + if not isinstance(page, Page): + print("❌ 현재 페이지가 올바른 타입이 아닙니다. 쿠키를 지울 수 없습니다.") + return ActionResult( + extracted_content="현재 페이지가 올바른 타입이 아닙니다.", + include_in_memory=True + ) + print(f"🔍 현재 페이지 URL: {page.url}") - print("🗑️ All cookies have been cleared.") - return ActionResult(extracted_content="All cookies have been cleared") - + try: + # Clear all cookies for the current context + await page.context.clear_cookies() + await page.context.clear_permissions() + await page.reload() + + print("🗑️ All cookies have been cleared and page reloaded.") + return ActionResult( + extracted_content="Successfully cleared all cookies and reloaded the page", + include_in_memory=True + ) + except Exception as e: + print(f"❌ Error clearing cookies: {e}") + return ActionResult( + extracted_content=f"Failed to clear cookies: {str(e)}", + include_in_memory=True + ) + print("🤖 LLM 모델 초기화 및 스캔 시작...") print("Available actions:", list(controller.registry.registry.actions.keys())) try: