|
|
|
|
|
|
|
|
import os |
|
|
import sys |
|
|
import asyncio |
|
|
|
|
|
|
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
|
|
|
|
|
from dotenv import load_dotenv |
|
|
from pydantic import SecretStr |
|
|
from langchain_openai import AzureChatOpenAI |
|
|
|
|
|
from browser_use.agent.service import Agent |
|
|
from browser_use.browser.browser import Browser, BrowserConfig, BrowserContextConfig |
|
|
|
|
|
|
|
|
load_dotenv() |
|
|
|
|
|
|
|
|
required_env_vars = ["AZURE_OPENAI_KEY", "AZURE_OPENAI_ENDPOINT"] |
|
|
for var in required_env_vars: |
|
|
if not os.getenv(var): |
|
|
raise ValueError(f"{var} is not set. Please add it to your environment variables.") |
|
|
|
|
|
browser = Browser( |
|
|
config=BrowserConfig( |
|
|
headless=False, |
|
|
disable_security=True, |
|
|
new_context_config=BrowserContextConfig( |
|
|
disable_security=True, |
|
|
minimum_wait_page_load_time=1, |
|
|
maximum_wait_page_load_time=10, |
|
|
|
|
|
browser_window_size={ |
|
|
'width': 1280, |
|
|
'height': 1100, |
|
|
}, |
|
|
|
|
|
), |
|
|
) |
|
|
) |
|
|
llm = AzureChatOpenAI( |
|
|
model='gpt-4o', |
|
|
api_version='2024-10-21', |
|
|
azure_endpoint=os.getenv('AZURE_OPENAI_ENDPOINT', ''), |
|
|
api_key=SecretStr(os.getenv('AZURE_OPENAI_KEY', '')), |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TASK = """ |
|
|
Find and book a hotel in Paris with suitable accommodations for a family of four (two adults and two children) offering free cancellation for the dates of February 14-21, 2025. on https://www.booking.com/ |
|
|
""" |
|
|
|
|
|
|
|
|
async def main(): |
|
|
agent = Agent( |
|
|
task=TASK, |
|
|
llm=llm, |
|
|
browser=browser, |
|
|
validate_output=True, |
|
|
) |
|
|
history = await agent.run(max_steps=50) |
|
|
history.save_to_file('./tmp/history.json') |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
asyncio.run(main()) |
|
|
|