From ba02e8ea2143fd201fb9c319a311026d6c51a1f6 Mon Sep 17 00:00:00 2001 From: imnyang Date: Wed, 21 May 2025 23:00:22 +0900 Subject: [PATCH] =?UTF-8?q?Gemini=EB=A1=9C=20=EB=B0=94=EA=BE=B8=EA=B3=A0?= =?UTF-8?q?=20=EC=98=A4=EB=A5=98=20=EB=B0=9C=EC=83=9D=EB=A5=A0=EC=9D=B4=20?= =?UTF-8?q?=EC=8B=AC=EA=B0=81=ED=95=98=EA=B2=8C=20=EC=A4=84=EC=97=88?= =?UTF-8?q?=EC=96=B4=EC=9A=94.=20=EC=9D=B4=EA=B1=B4=20OpenAI=EC=9D=98=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 6 +++--- main.py | 32 +++++++++++++++++++++++++------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/.env.example b/.env.example index afe1573..87039d7 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,8 @@ ANONYMIZED_TELEMETRY=false -OPENAI_API_KEY=your_openai_api_key_here -OPENAI_BASE_URL=https://models.github.ai/inference # 선택 -OPENAI_MODEL=openai/gpt-4o-mini # Github Models가 아닐시 gpt-4.1 +GOOGLE_API_KEY= +GOOGLE_MODEL=gemini-2.5-flash-preview-04-17 # 권장 (다른 모델로 교체 가능) [다른 모델로 교체시 성능 보장 불가] +GOOGLE_PLANNER_MODEL=gemini-2.0-flash-lite # 권장 (다른 모델로 교체 가능) [다른 모델로 교체시 성능 보장 불가] # 선택 PROXY_HOST=127.0.0.1 diff --git a/main.py b/main.py index 20b4592..b6db495 100644 --- a/main.py +++ b/main.py @@ -4,19 +4,20 @@ import os from typing import List from dotenv import load_dotenv from pydantic import BaseModel -from langchain_openai import ChatOpenAI +from langchain_google_genai import ChatGoogleGenerativeAI from browser_use import Agent, Browser, BrowserConfig, Controller from browser_use.browser.context import BrowserContext, BrowserContextConfig from lib.browser_config import browser_config_kwargs +import csv load_dotenv() # Check environment variables -if os.getenv("OPENAI_API_KEY") is None: +if os.getenv("GOOGLE_API_KEY") is None: raise ValueError("OPENAI_API_KEY environment variable not set.") -if os.getenv("OPENAI_MODEL") is None: +if os.getenv("GOOGLE_MODEL") is None: raise ValueError("OPENAI_MODEL environment variable not set.") -if os.getenv("OPENAI_PLANNER_MODEL") is None: +if os.getenv("GOOGLE_PLANNER_MODEL") is None: raise ValueError("OPENAI_PLANNER_MODEL environment variable not set.") # Configure browser @@ -89,14 +90,14 @@ extend_planner_system_message = """ # Main async runner async def main(): - url = "https://auth0.com" + url = "https://git.imnya.ng" agent = Agent( browser_context=context, browser=browser, task=f"Go to {url}, navigate to the login page, and collect the OAuth provider buttons and their login URLs. Ignore Passkey.", - llm=ChatOpenAI(model=os.getenv("OPENAI_MODEL")), - planner_llm=ChatOpenAI(model=os.getenv("OPENAI_PLANNER_MODEL")), + llm=ChatGoogleGenerativeAI(model=os.getenv("GOOGLE_MODEL")), + planner_llm=ChatGoogleGenerativeAI(model=os.getenv("GOOGLE_PLANNER_MODEL")), controller=controller, extend_planner_system_message=extend_planner_system_message, ) @@ -129,6 +130,23 @@ async def main(): else: print(f"- {entry.provider}: {entry.oauth_uri}") + # Save the result to CSV (append mode, so you can continue later) + # 이거 좀 이상한데 나중에 고쳐야 할듯 파일이 수정이 안됨 + csv_file = "oauth_providers.csv" + file_exists = os.path.isfile(csv_file) + with open(csv_file, "a", newline="", encoding="utf-8") as f: + writer = csv.writer(f) + if not file_exists: + writer.writerow(["issuer", "provider", "oauth_uri"]) + for entry in oauth_entries: + writer.writerow([url, entry.provider, entry.oauth_uri]) + print(f"\n✅ OAuth providers saved to {csv_file}") + + # Save the result to JSON + with open(f"oauth_providers_{url}.json", "w") as f: + json.dump(data, f, indent=2) + print(f"✅ OAuth providers saved to oauth_providers_{url}.json") + # Run it asyncio.run(main())