fix: 온도 설정 및 OAuth 제공자 식별 프롬프트 개선

This commit is contained in:
암냥 2025-06-23 19:59:51 +09:00
commit 6ddeed2173
5 changed files with 33 additions and 42 deletions

View file

@ -21,5 +21,5 @@ def CreateChatGoogleGenerativeAI(model: str):
},
callbacks=[QuotaExhaustedHandler()],
# API 호출 간격 조정
temperature=0.1,
temperature=0.0,
)

View file

@ -1,58 +1,48 @@
# OAuth 리스트 추출용 프롬프트 (클릭하지 않고 단순 식별만)
extract_oauth_list_prompt = f"""
🎯 목적: 로그인 페이지에서 **OAuth 제공자 리스트 추출**
🎯 목적: 주어진 초기 URL 내에서 **OAuth 로그인 URL** 찾아 아래 형식의 JSON으로 정리합니다.
📌 주요 규칙:
- **OAuth 버튼을 클릭하지 마세요**
- **OAuth 제공자만 식별하고 리스트 작성**
- 일반 로그인은 무시
- 검색 엔진 사용 금지
📌 작업 목표:
- Google, GitHub, Discord, Facebook, Apple **OAuth 인증을 사용하는 외부 로그인 링크** 모두 수집합니다.
- 로그인 버튼, 링크 클릭 등을 통해 탐색을 진행할 있습니다.
- OAuth URL이 실제로 포함된 최종 리디렉션 URL 또는 팝업 주소를 캡처합니다.
- **같은 provider가 여러 나와도 가장 대표적인 URL 하나만 저장**합니다.
---
🛑 제한 사항:
- 로그인 입력창이나 이메일/비밀번호 입력 방식은 제외합니다.
- 검색 엔진, 사이트 외부 탐색은 금지합니다.
## 🔍 Step 1: 로그인 페이지 접근
🔍 탐색 방법:
1. 초기 URL에 접속하여 **클라이언트용 로그인 페이지** 진입합니다.
2. 페이지가 정상적으로 로드되었다고 가정합니다.
3. 'Continue with X', 'Continue with Google'... 등의 버튼이나 링크를 클릭합니다.
4. 버튼 클릭 리디렉션되거나 팝업이 열린다면 해당 주소를 확인합니다.
* 초기 URL에 접속하여 **클라이언트용 로그인 페이지** 진입합니다.
* 쿠키 동의, 팝업 등은 무시하거나 닫고 계속 진행하세요.
---
## 👀 Step 2: OAuth 제공자 식별
아래 **OAuth SSO 버튼들만** 식별합니다:
**유효한 OAuth 제공자들**:
* Google, GitHub, Facebook, LinkedIn, Microsoft, Naver, Kakao, Apple, Twitter/X
* "Continue with..." 또는 "Sign in with..." 버튼들
* OAuth 아이콘이 있는 버튼들
**제외할 항목들**:
* 일반 로그인 (이메일/비밀번호 입력)
* 패스키 (Passkey)
* 전화번호 인증
* 인증서 기반 로그인
---
## 📝 Step 3: 결과 반환
발견된 OAuth 제공자들을 다음 형식으로 반환:
🧾 출력 형식 (예시):
```json
{{
"oauth_providers": [
{{
"provider": "Google",
"oauth_uri": ""
"oauth_uri": "https://accounts.google.com/o/oauth2/v2/auth?client_id=..."
}},
{{
"provider": "GitHub",
"oauth_uri": ""
"oauth_uri": "https://github.com/login/oauth/authorize?client_id=..."
}},
{{
"provider": "Discord",
"oauth_uri": "https://discord.com/oauth2/authorize?client_id=..."
}}
]
}}
```
**중요**: 버튼을 클릭하지 마세요. 단순히 식별만 하면 됩니다.
📌 주의:
결과가 없는 provider는 JSON에 포함하지 않아도 됩니다.
정확한 provider 이름과 oauth_uri를 매칭해 주세요
"""

View file

@ -127,8 +127,8 @@ chrome://settings/clearBrowserData에 들어가서 삭제해주세요.
* **모든 SSO 로그인은 반드시 실행** (가능한 버튼은 모두 클릭)
* 🔁 단계는 반드시 순서대로 진행
* 🔐 로그인은 쿠키/세션으로 유지된 상태에서 수행
* 🚫 직접 ID/PW 입력하지 않음
* 추측 URL 클릭 금지
* 👀 직접 OAuth Providor ID/PW를 입력하여도 가지고 있다면
* 추측URL은 접속하지 않음
* 예외 발생 반드시 규정된 JSON 포맷만 반환
---

4
run.py
View file

@ -70,8 +70,8 @@ def main():
print("라인 번호는 0 이상이어야 합니다.")
sys.exit(1)
if args.start_line >= args.end_line:
print("시작 라인은 종료 라인보다 아야 합니다.")
if args.start_line > args.end_line:
print("시작 라인은 종료 라인보다 크거나 같아야 합니다.")
sys.exit(1)
# 도메인 파일 다운로드

View file

@ -44,6 +44,7 @@ def setup_storage():
print("======================================================")
print("👀 원하는 OAuth Providor를 직접 모두 로그인 한 후에 브라우저를 닫으면 설정이 완료됩니다.")
os.system('uv run playwright open https://google.com/ --save-storage=./data/storage_state.json')
if os.path.exists('./data/storage_state.json'):
os.startfile('./data/storage_state.json')
print("✅ 쿠키와 로컬 스토리지 설정 완료.")
print("💾 ./data/storage_state.json 파일이 생성되었습니다.")