No description
  • Python 96.1%
  • Rust 3.9%
Find a file
imnyang 069dbf446d feat: 코드베이스 리팩터링
* `run.py`에서 `main.py` 경로를 명시적으로 지정하고, 명령줄 인자를 보다 사용하기 쉽게 조정했습니다.
* 에이전트, 리소스 정리, 공통 함수, 모델 등을 포함하는 브라우저 유틸리티용 신규 모듈 구조를 만들었습니다.
* `agents.py`에 비동기 에이전트 실행 및 재시도 로직을 구현했습니다.
* `scanner.py`에 OAuth URL 추출 및 로그인 테스트 기능을 추가했습니다.
* 전반적인 코드베이스에 걸쳐 에러 핸들링 및 로깅을 강화했습니다.
* 백엔드 URL과 Google API 키 등의 관리를 위한 환경변수 기반 설정 시스템을 도입했습니다.
* 스캐닝 중 진행 상태 추적 및 시그널 핸들링을 통한 정상 종료 처리를 개선했습니다.
* 텍스트 파일 읽기 및 HTML 콘텐츠 여부 확인을 위한 유틸리티 함수를 추가했습니다.
* LLM과의 상호작용을 위한 구조화된 프롬프트 시스템을 구축했습니다.
2025-06-26 21:44:31 +09:00
.github/instructions Add comprehensive documentation for Browser Use features 2025-06-21 16:18:16 +09:00
.legacy chore: 환경 설정 및 크로스 플랫폼 실행 파일 2025-06-22 23:13:26 +09:00
.vscode [Enhancement] .vscode/settings.json 파일 추가: rust-analyzer 설정 포함 2025-06-18 21:15:14 +09:00
docs chore: 윈도우 인코딩 이슈 해결 2025-06-25 13:43:15 +09:00
is-html-fast gitignore 2025-06-08 14:31:48 +09:00
src feat: 코드베이스 리팩터링 2025-06-26 21:44:31 +09:00
.env.example feat: 코드베이스 리팩터링 2025-06-26 21:44:31 +09:00
.gitignore feat: 코드베이스 리팩터링 2025-06-26 21:44:31 +09:00
.python-version first commit 2025-05-18 20:12:55 +09:00
.sensitive.example.json chore: 환경 설정 및 크로스 플랫폼 실행 파일 2025-06-22 23:13:26 +09:00
pyproject.toml chore: storage_state.json 관련해서 수정함 2025-06-23 19:19:56 +09:00
README.md Update README.md 2025-06-25 22:58:22 +09:00
run.py feat: 코드베이스 리팩터링 2025-06-26 21:44:31 +09:00
setup.py chore: 윈도우 인코딩 이슈 해결 2025-06-25 13:43:15 +09:00
uv.lock chore: storage_state.json 관련해서 수정함 2025-06-23 19:19:56 +09:00

환경 설정

요구 사항


oauth-backend 프록시를 사용한다면 이 가이드에 따라 인증서 또한 설정되어야만 합니다.

그렇지 않으면 실행되지 않습니다.

윈도우 환경에서는 sudo certutil -addstore root mitmproxy-ca-cert.cer로 인증합니다.

Sudo가 활성화되어있지 않은 환경에서는 관리자로 상향된 쉘에서 실행합니다.

MacOS 환경에서는 sudo security add-trusted-cert -d -p ssl -p basic -k /Library/Keychains/System.keychain ~/.mitmproxy/mitmproxy-ca-cert.pem으로 인증합니다.

다른 플렛폼은 수동으로 설정되어야만 합니다. https://docs.mitmproxy.org/stable/concepts/certificates/


다음과 같은 명령어로 환경을 설정합니다.

설명하는 가이드를 잘 따라가면 설정할 수 있습니다.

uv run setup.py
설치 및 설정 (레거시)

uv 설치 후 다음과 같은 명령어를 입력합니다.

uv sync

venv와 패키지가 설치가 됩니다.


browser_use가 Playwright에 대한 의존성이 있어 브라우저 설치가 필요합니다

스텔스 기능 때문에 Google Chrome이 필요합니다.

만약 설치가 되어 있지 않다면

playwright install chrome

Environment는 .env.example에 따라 설정되어야합니다.

.env.example을 .env로 복사하여서 사용해주세요.

로그인 방안

쿠키와 로컬 스토리지 설정 방법 (추천)

1

uv run playwright open https://google.com/ --save-storage=./data/storage_state.json

위 명령어를 실행하면 playwright Browser가 하나 열리는데 여기서 원하는 프로바이더를 모두 로그인 한 후에 브라우저를 정상적으로 닫으면 ./data/storage_state.json 경로에 쿠키, 로컬스토리지를 저장한 파일이 생성됩니다.

Browser Use에게 직접 로그인 요청 (선택)

위에 쿠키와 로컬스토리지 설정 방법과 혼용해서 사용가능합니다.

.sensitive.example.json.sensitive.json으로 복사해서

안에 있는 예시 내용을 참고해서 작성해주시면 됩니다. 더 자세한 내용은 Sensitive Data - Browser Use를 참고하시면 좋을 것 같습니다.

Sensitive Data - Browser Use에서도 권장하지 않는 방법인만큼 애매하긴 하지만 쿠키와 로컬 스토리지를 저장하기 어려운 경우나 일부 flow에서 접근이 어려운 경우 사용해주세요.


윈도우 인코딩 이슈 해결

이거 해결 방법 image

이것도 setup.py 사용하면 반자동으로 할 수 있습니다.

못찾겠으면 intl.cpl 열어주세요.

실행

domains.txt는 실행시 자동으로 다운로드 됩니다.

curl "https://f.imnya.ng/.whs/tp-domains/data/domains/latest.txt" -o domains.txt
# uv run run.py {domains.txt 시작 줄} {domains.txt 끝 줄} {--skh} {--no-download}
uv run run.py 1 100 --skh

Prompt 확장 가이드

1. 파일 생성

lib/llm/prompt 폴더로

fallback.py를 복사하여

원하는 프로바이더를 추가해줍니다. ex) lib/llm/prompt/Google.py

2. init.py 수정

Prompt에서 추가한 파일을 init.py에서 import합니다.

3. 파일 수정

생성한 파일에서 프롬프트를 수정합니다.

참고하면 좋을만한 것