Spaces:
Sleeping
Sleeping
| """ | |
| To Use It: | |
| Example 1: Using OpenAI (default), with default task: 'go to reddit and search for posts about browser-use' | |
| python command_line.py | |
| Example 2: Using OpenAI with a Custom Query | |
| python command_line.py --query "go to google and search for browser-use" | |
| Example 3: Using Anthropic's Claude Model with a Custom Query | |
| python command_line.py --query "find latest Python tutorials on Medium" --provider anthropic | |
| """ | |
| import argparse | |
| import asyncio | |
| import os | |
| import sys | |
| # Ensure local repository (browser_use) is accessible | |
| sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| from browser_use import Agent | |
| from browser_use.browser import BrowserSession | |
| from browser_use.tools.service import Tools | |
| def get_llm(provider: str): | |
| if provider == 'anthropic': | |
| from browser_use.llm import ChatAnthropic | |
| api_key = os.getenv('ANTHROPIC_API_KEY') | |
| if not api_key: | |
| raise ValueError('Error: ANTHROPIC_API_KEY is not set. Please provide a valid API key.') | |
| return ChatAnthropic(model='claude-3-5-sonnet-20240620', temperature=0.0) | |
| elif provider == 'openai': | |
| from browser_use import ChatOpenAI | |
| api_key = os.getenv('OPENAI_API_KEY') | |
| if not api_key: | |
| raise ValueError('Error: OPENAI_API_KEY is not set. Please provide a valid API key.') | |
| return ChatOpenAI(model='gpt-4.1', temperature=0.0) | |
| else: | |
| raise ValueError(f'Unsupported provider: {provider}') | |
| def parse_arguments(): | |
| """Parse command-line arguments.""" | |
| parser = argparse.ArgumentParser(description='Automate browser tasks using an LLM agent.') | |
| parser.add_argument( | |
| '--query', type=str, help='The query to process', default='go to reddit and search for posts about browser-use' | |
| ) | |
| parser.add_argument( | |
| '--provider', | |
| type=str, | |
| choices=['openai', 'anthropic'], | |
| default='openai', | |
| help='The model provider to use (default: openai)', | |
| ) | |
| return parser.parse_args() | |
| def initialize_agent(query: str, provider: str): | |
| """Initialize the browser agent with the given query and provider.""" | |
| llm = get_llm(provider) | |
| tools = Tools() | |
| browser_session = BrowserSession() | |
| return Agent( | |
| task=query, | |
| llm=llm, | |
| tools=tools, | |
| browser_session=browser_session, | |
| use_vision=True, | |
| max_actions_per_step=1, | |
| ), browser_session | |
| async def main(): | |
| """Main async function to run the agent.""" | |
| args = parse_arguments() | |
| agent, browser_session = initialize_agent(args.query, args.provider) | |
| await agent.run(max_steps=25) | |
| input('Press Enter to close the browser...') | |
| await browser_session.kill() | |
| if __name__ == '__main__': | |
| asyncio.run(main()) | |