[Enhancement] README 및 코드에서 Playwright 의존성 및 SSO 로그인 흐름 개선

This commit is contained in:
암냥 2025-06-14 18:08:39 +09:00
commit f6368d12a3
5 changed files with 23 additions and 14 deletions

View file

@ -31,11 +31,10 @@ uv sync
venv와 패키지가 설치가 됩니다. venv와 패키지가 설치가 됩니다.
browser_use가 Playwright에 대한 의존성이 있어 브라우저 설치가 필요합니다 ~~browser_use가 Playwright에 대한 의존성이 있어 브라우저 설치가 필요합니다~~
스텔스 기능 때문에 Chrome이 필요합니다.
```sh
uv run playwright install
```
다음과 같은 명령어로 실행합니다. 다음과 같은 명령어로 실행합니다.
@ -50,7 +49,7 @@ Environment는 .env.example에 따라 설정되어야합니다.
# 쿠키와 로컬 스토리지 설정 방법 # 쿠키와 로컬 스토리지 설정 방법
```sh ```sh
playwright open https://google.com/ --save-storage=./data/storage_state.json uv run playwright open https://google.com/ --save-storage=./data/storage_state.json
``` ```
# 실행 # 실행

View file

@ -1,13 +1,12 @@
from dotenv import load_dotenv from dotenv import load_dotenv
import os import os
from lib.prompt import session
from lib.prompt import llm_login
load_dotenv(override=True) load_dotenv(override=True)
def extend_planner_system_message(): def extend_planner_system_message():
if os.getenv("PROVIDOR_CREDENTIALS_IN_LLM", "False").lower() == "true": if os.getenv("PROVIDOR_CREDENTIALS_IN_LLM", "False").lower() == "true":
from lib.prompt import llm_login
return llm_login.extend_planner_system_message return llm_login.extend_planner_system_message
else: else:
from lib.prompt import session
return session.extend_planner_system_message return session.extend_planner_system_message

View file

@ -1,5 +1,10 @@
import os
from dotenv import load_dotenv
load_dotenv(override=True)
# Extended planner prompt # Extended planner prompt
extend_planner_system_message = """ extend_planner_system_message = f"""
🎯 목적: 자동화를 위한 **SSO 로그인 리디렉션 URL 수집** 🎯 목적: 자동화를 위한 **SSO 로그인 리디렉션 URL 수집**
📌 주의사항 (전제 조건) 📌 주의사항 (전제 조건)
@ -22,10 +27,10 @@ extend_planner_system_message = """
```json ```json
[ [
{ {{
"provider": "Blocked", "provider": "Blocked",
"oauth_uri": "-" "oauth_uri": "-"
} }}
] ]
```` ````
@ -67,6 +72,7 @@ extend_planner_system_message = """
: `https://accounts.google.com/o/oauth2/auth?...` : `https://accounts.google.com/o/oauth2/auth?...`
3. 로그인 진행: 3. 로그인 진행:
- 세션 쿠키에 따라 이미 로그인된 상태로 간주하고 진행 - 세션 쿠키에 따라 이미 로그인된 상태로 간주하고 진행
- Google OAuth인 경우 URL에 `&login_hint={str(os.getenv('GOOGLE_ID'))}` 추가
- **로그인 완료 authorize 버튼이 있으면 클릭** - **로그인 완료 authorize 버튼이 있으면 클릭**
- GitHub같은 경우 Authorize 버튼이 뜨는데 오래걸릴 있음, 기다려야 수도 있음 - GitHub같은 경우 Authorize 버튼이 뜨는데 오래걸릴 있음, 기다려야 수도 있음
- 만약 버튼을 눌러도 반응이 없을 경우 새로고침을 한번 해주세요. - 만약 버튼을 눌러도 반응이 없을 경우 새로고침을 한번 해주세요.
@ -81,10 +87,10 @@ extend_planner_system_message = """
```json ```json
[ [
{ {{
"provider": "Google", "provider": "Google",
"oauth_uri": "https://example.com/auth/google?client_id=..." "oauth_uri": "https://example.com/auth/google?client_id=..."
} }}
] ]
```` ````

View file

@ -6,4 +6,5 @@ readme = "README.md"
requires-python = ">=3.13" requires-python = ">=3.13"
dependencies = [ dependencies = [
"browser-use[memory]>=0.2.6", "browser-use[memory]>=0.2.6",
"patchright>=1.52.5",
] ]

6
uv.lock generated
View file

@ -150,10 +150,14 @@ version = "0.1.0"
source = { virtual = "." } source = { virtual = "." }
dependencies = [ dependencies = [
{ name = "browser-use", extra = ["memory"] }, { name = "browser-use", extra = ["memory"] },
{ name = "patchright" },
] ]
[package.metadata] [package.metadata]
requires-dist = [{ name = "browser-use", extras = ["memory"], specifier = ">=0.2.6" }] requires-dist = [
{ name = "browser-use", extras = ["memory"], specifier = ">=0.2.6" },
{ name = "patchright", specifier = ">=1.52.5" },
]
[[package]] [[package]]
name = "cachetools" name = "cachetools"