From bfcd8a0140d80383ce83f4e8c657d3ca2fc4b35d Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Tue, 13 May 2025 16:42:26 -0700 Subject: [PATCH] make examples imports more consistent --- examples/browser/real_browser.py | 11 +++++----- examples/browser/stealth.py | 8 ++++++-- examples/browser/using_cdp.py | 11 +++++----- examples/custom-functions/action_filters.py | 8 +++++++- examples/custom-functions/advanced_search.py | 13 ++++++------ examples/custom-functions/clipboard.py | 10 ++++++---- .../custom_hooks_before_after_step.py | 12 +++++++---- examples/custom-functions/file_upload.py | 15 +++++++------- examples/custom-functions/hover_element.py | 14 ++++++------- examples/custom-functions/notification.py | 10 +++++----- examples/custom-functions/onepassword_2fa.py | 9 +++++---- .../save_to_file_hugging_face.py | 9 +++++---- examples/features/click_fallback_options.py | 12 +++++------ examples/features/cross_origin_iframes.py | 9 +++++---- examples/features/custom_output.py | 10 ++++------ examples/features/custom_system_prompt.py | 9 +++++---- examples/features/custom_user_agent.py | 15 +++++++------- examples/features/download_file.py | 10 ++++++---- examples/features/drag_drop.py | 7 ++++++- examples/features/follow_up_tasks.py | 9 +++++++-- examples/features/initial_actions.py | 12 ++++++++--- examples/features/multi-tab_handling.py | 7 +++++-- .../features/multiple_agents_same_browser.py | 11 +++++----- examples/features/outsource_state.py | 20 ++++++++----------- examples/features/parallel_agents.py | 8 +++++--- examples/features/pause_agent.py | 13 ++++++------ examples/features/planner.py | 8 ++++++++ .../features/playwright_script_generation.py | 12 +++++------ examples/features/restrict_urls.py | 13 +++++++----- examples/features/result_processing.py | 9 +++++---- examples/features/save_trace.py | 10 +++++++--- examples/features/sensitive_data.py | 9 +++++++-- .../features/small_model_for_extraction.py | 9 +++++++-- examples/features/task_with_memory.py | 8 +++++--- examples/features/validate_output.py | 10 ++++------ examples/integrations/discord/discord_api.py | 12 ++++++++--- .../integrations/discord/discord_example.py | 8 +++++--- examples/integrations/slack/slack_api.py | 8 ++++++-- examples/integrations/slack/slack_example.py | 8 +++++--- examples/models/_ollama.py | 10 +++++++--- examples/models/azure_openai.py | 13 +++++------- examples/models/bedrock_claude.py | 8 +++++--- examples/models/claude-3.7-sonnet.py | 15 ++++++-------- examples/models/deepseek-r1.py | 9 ++++++--- examples/models/deepseek.py | 9 ++++++--- examples/models/gemini.py | 10 ++++++---- examples/models/gpt-4o.py | 9 +++++---- examples/models/grok.py | 9 ++++++--- examples/models/novita.py | 9 +++++---- examples/models/qwen.py | 8 ++++++++ examples/simple.py | 8 ++++---- examples/ui/command_line.py | 5 ++--- examples/ui/gradio_demo.py | 9 ++++++--- examples/ui/streamlit_demo.py | 11 ++++------ examples/use-cases/captcha.py | 13 +++++------- examples/use-cases/check_appointment.py | 9 +++++---- examples/use-cases/find_and_apply_to_jobs.py | 8 +++----- .../use-cases/find_influencer_profiles.py | 16 ++++++--------- examples/use-cases/online_coding_agent.py | 10 ++++------ examples/use-cases/post-twitter.py | 13 +++++------- examples/use-cases/scrolling_page.py | 8 +++----- examples/use-cases/shopping.py | 13 ++++++++---- .../use-cases/twitter_post_using_cookies.py | 10 ++++++---- examples/use-cases/web_voyager_agent.py | 8 +++----- .../use-cases/wikipedia_banana_to_quantum.py | 9 +++++++-- 65 files changed, 379 insertions(+), 286 deletions(-) diff --git a/examples/browser/real_browser.py b/examples/browser/real_browser.py index 0291ceefb..1cffb99bb 100644 --- a/examples/browser/real_browser.py +++ b/examples/browser/real_browser.py @@ -1,16 +1,17 @@ +import asyncio import os import sys -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv + +load_dotenv() -import dotenv from langchain_openai import ChatOpenAI from browser_use import Agent, Browser, BrowserConfig -dotenv.load_dotenv() - browser = Browser( config=BrowserConfig( # NOTE: you need to close your chrome browser - so that this can open your browser in debug mode diff --git a/examples/browser/stealth.py b/examples/browser/stealth.py index aed94c53e..a62d380d4 100644 --- a/examples/browser/stealth.py +++ b/examples/browser/stealth.py @@ -2,9 +2,13 @@ import asyncio import os import sys -from langchain_openai import ChatOpenAI +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from dotenv import load_dotenv + +load_dotenv() + +from langchain_openai import ChatOpenAI from browser_use import Agent, Browser, BrowserConfig, BrowserContextConfig diff --git a/examples/browser/using_cdp.py b/examples/browser/using_cdp.py index c0c877b27..d767eba13 100644 --- a/examples/browser/using_cdp.py +++ b/examples/browser/using_cdp.py @@ -11,21 +11,22 @@ To test this locally, follow these steps: @dev You need to set the `GEMINI_API_KEY` environment variable before proceeding. """ +import asyncio import os import sys -from dotenv import load_dotenv -from pydantic import SecretStr +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import asyncio +from dotenv import load_dotenv + +load_dotenv() from langchain_google_genai import ChatGoogleGenerativeAI +from pydantic import SecretStr from browser_use import Agent, Controller from browser_use.browser.browser import Browser, BrowserConfig -load_dotenv() api_key = os.getenv('GEMINI_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') diff --git a/examples/custom-functions/action_filters.py b/examples/custom-functions/action_filters.py index ef7c60280..5cb7c92fb 100644 --- a/examples/custom-functions/action_filters.py +++ b/examples/custom-functions/action_filters.py @@ -18,10 +18,16 @@ During each step, the agent recalculates the actions available specifically for """ import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() from langchain_openai import ChatOpenAI from playwright.async_api import Page - from browser_use.agent.service import Agent, Browser, BrowserContext, Controller # Initialize controller and registry diff --git a/examples/custom-functions/advanced_search.py b/examples/custom-functions/advanced_search.py index 2fb6c832b..a62289484 100644 --- a/examples/custom-functions/advanced_search.py +++ b/examples/custom-functions/advanced_search.py @@ -1,21 +1,20 @@ +import asyncio import json import os import sys -import httpx - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + +import httpx from langchain_openai import ChatOpenAI from pydantic import BaseModel from browser_use import ActionResult, Agent, Controller -load_dotenv() - class Person(BaseModel): name: str diff --git a/examples/custom-functions/clipboard.py b/examples/custom-functions/clipboard.py index 8d8e8725a..704069ab6 100644 --- a/examples/custom-functions/clipboard.py +++ b/examples/custom-functions/clipboard.py @@ -1,15 +1,17 @@ import os import sys - -from browser_use.agent.views import ActionResult - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + import pyperclip from langchain_openai import ChatOpenAI from browser_use import Agent, Controller +from browser_use.agent.views import ActionResult from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContext diff --git a/examples/custom-functions/custom_hooks_before_after_step.py b/examples/custom-functions/custom_hooks_before_after_step.py index 634d11f15..9503c533e 100644 --- a/examples/custom-functions/custom_hooks_before_after_step.py +++ b/examples/custom-functions/custom_hooks_before_after_step.py @@ -113,20 +113,24 @@ gracefully handling circular references. # ! pip install -U prettyprinter import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv + +load_dotenv() import requests -from dotenv import load_dotenv from langchain_openai import ChatOpenAI from pyobjtojson import obj_to_json from browser_use import Agent # import prettyprinter - # prettyprinter.install_extras() -load_dotenv() - def send_agent_history_step(data): url = 'http://127.0.0.1:9000/post_agent_history_step' diff --git a/examples/custom-functions/file_upload.py b/examples/custom-functions/file_upload.py index d79f33cd5..0bfbfacb6 100644 --- a/examples/custom-functions/file_upload.py +++ b/examples/custom-functions/file_upload.py @@ -1,18 +1,19 @@ import os import sys -from pathlib import Path - -import anyio - -from browser_use.agent.views import ActionResult - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio import logging +from pathlib import Path +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + +import anyio from langchain_openai import ChatOpenAI from browser_use import Agent, Controller +from browser_use.agent.views import ActionResult from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContext diff --git a/examples/custom-functions/hover_element.py b/examples/custom-functions/hover_element.py index e5ac190cc..066d9cc15 100644 --- a/examples/custom-functions/hover_element.py +++ b/examples/custom-functions/hover_element.py @@ -1,16 +1,16 @@ import os import sys - -from pydantic import BaseModel - -from browser_use.agent.views import ActionResult - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio -from langchain_openai import ChatOpenAI +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from dotenv import load_dotenv +load_dotenv() + +from pydantic import BaseModel +from langchain_openai import ChatOpenAI from browser_use import Agent, Controller +from browser_use.agent.views import ActionResult from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContext diff --git a/examples/custom-functions/notification.py b/examples/custom-functions/notification.py index 971697cc2..a8c6a425d 100644 --- a/examples/custom-functions/notification.py +++ b/examples/custom-functions/notification.py @@ -1,17 +1,17 @@ +import asyncio import os import sys -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import ActionResult, Agent, Controller -load_dotenv() - controller = Controller() diff --git a/examples/custom-functions/onepassword_2fa.py b/examples/custom-functions/onepassword_2fa.py index b4a32ac3f..cc58c2cce 100644 --- a/examples/custom-functions/onepassword_2fa.py +++ b/examples/custom-functions/onepassword_2fa.py @@ -3,20 +3,21 @@ import logging import os import sys +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from onepassword.client import Client # pip install onepassword-sdk -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - from browser_use import ActionResult, Agent, Controller # Set up logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) -load_dotenv() - OP_SERVICE_ACCOUNT_TOKEN = os.getenv('OP_SERVICE_ACCOUNT_TOKEN') OP_ITEM_ID = os.getenv('OP_ITEM_ID') # Go to 1Password, right click on the item, click "Copy Secret Reference" diff --git a/examples/custom-functions/save_to_file_hugging_face.py b/examples/custom-functions/save_to_file_hugging_face.py index 9c2f1e86e..243942fc8 100644 --- a/examples/custom-functions/save_to_file_hugging_face.py +++ b/examples/custom-functions/save_to_file_hugging_face.py @@ -1,13 +1,14 @@ import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + from langchain_openai import ChatOpenAI from pydantic import BaseModel - from browser_use.agent.service import Agent from browser_use.controller.service import Controller diff --git a/examples/features/click_fallback_options.py b/examples/features/click_fallback_options.py index fc6b49983..15603038b 100644 --- a/examples/features/click_fallback_options.py +++ b/examples/features/click_fallback_options.py @@ -2,15 +2,16 @@ import asyncio import os import sys -from aiohttp import web # make sure to install aiohttp: pip install aiohttp +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv + +load_dotenv() + +from aiohttp import web # make sure to install aiohttp: pip install aiohttp from langchain_openai import ChatOpenAI # from langchain_google_genai import ChatGoogleGenerativeAI - - -# Adjust path if necessary -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from browser_use import Agent, Controller # Define a simple HTML page @@ -167,7 +168,6 @@ async def run_http_server(): # Your agent tasks and other logic -load_dotenv() controller = Controller() diff --git a/examples/features/cross_origin_iframes.py b/examples/features/cross_origin_iframes.py index 04e555102..90c44cf3d 100644 --- a/examples/features/cross_origin_iframes.py +++ b/examples/features/cross_origin_iframes.py @@ -4,20 +4,21 @@ Example of how it supports cross-origin iframes. @dev You need to add OPENAI_API_KEY to your environment variables. """ +import asyncio import os import sys -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent, Controller from browser_use.browser.browser import Browser, BrowserConfig -# Load environment variables -load_dotenv() if not os.getenv('OPENAI_API_KEY'): raise ValueError('OPENAI_API_KEY is not set. Please add it to your environment variables.') diff --git a/examples/features/custom_output.py b/examples/features/custom_output.py index 285a188f8..38bdb9255 100644 --- a/examples/features/custom_output.py +++ b/examples/features/custom_output.py @@ -6,19 +6,17 @@ Show how to use custom outputs. import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv +load_dotenv() + from langchain_openai import ChatOpenAI from pydantic import BaseModel - from browser_use import Agent, Controller -load_dotenv() - class Post(BaseModel): post_title: str diff --git a/examples/features/custom_system_prompt.py b/examples/features/custom_system_prompt.py index e873631bd..097ff8bbd 100644 --- a/examples/features/custom_system_prompt.py +++ b/examples/features/custom_system_prompt.py @@ -1,13 +1,14 @@ import json import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio -from langchain_openai import ChatOpenAI +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from dotenv import load_dotenv +load_dotenv() + +from langchain_openai import ChatOpenAI from browser_use import Agent extend_system_message = ( diff --git a/examples/features/custom_user_agent.py b/examples/features/custom_user_agent.py index fa5b1bb70..e03cda36d 100644 --- a/examples/features/custom_user_agent.py +++ b/examples/features/custom_user_agent.py @@ -1,16 +1,17 @@ import os import sys - -from langchain_anthropic import ChatAnthropic -from langchain_openai import ChatOpenAI - -from browser_use.browser.context import BrowserContext, BrowserContextConfig - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import argparse import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + +from langchain_anthropic import ChatAnthropic +from langchain_openai import ChatOpenAI from browser_use import Agent +from browser_use.browser.context import BrowserContext, BrowserContextConfig from browser_use.browser.browser import Browser, BrowserConfig from browser_use.controller.service import Controller diff --git a/examples/features/download_file.py b/examples/features/download_file.py index 5e2782cdd..cfd81eef3 100644 --- a/examples/features/download_file.py +++ b/examples/features/download_file.py @@ -1,16 +1,18 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr - from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContextConfig - -load_dotenv() -api_key = os.getenv('GEMINI_API_KEY') +api_key = os.getenv('GOOGLE_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') llm = ChatGoogleGenerativeAI(model='gemini-2.0-flash-exp', api_key=SecretStr(api_key)) diff --git a/examples/features/drag_drop.py b/examples/features/drag_drop.py index 797664943..bcc3a64d4 100644 --- a/examples/features/drag_drop.py +++ b/examples/features/drag_drop.py @@ -1,13 +1,18 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr from browser_use import Agent -load_dotenv() api_key = os.getenv('GEMINI_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') diff --git a/examples/features/follow_up_tasks.py b/examples/features/follow_up_tasks.py index 1dcf9c92c..be127eccf 100644 --- a/examples/features/follow_up_tasks.py +++ b/examples/features/follow_up_tasks.py @@ -1,12 +1,17 @@ import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent, Browser, BrowserConfig, BrowserContextConfig, Controller -load_dotenv() - # Initialize the model llm = ChatOpenAI( model='gpt-4o', diff --git a/examples/features/initial_actions.py b/examples/features/initial_actions.py index cc24a2acc..bd74d7145 100644 --- a/examples/features/initial_actions.py +++ b/examples/features/initial_actions.py @@ -1,9 +1,17 @@ +import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent -load_dotenv() llm = ChatOpenAI(model='gpt-4o') initial_actions = [ @@ -23,6 +31,4 @@ async def main(): if __name__ == '__main__': - import asyncio - asyncio.run(main()) diff --git a/examples/features/multi-tab_handling.py b/examples/features/multi-tab_handling.py index c86fabef1..779b28c1d 100644 --- a/examples/features/multi-tab_handling.py +++ b/examples/features/multi-tab_handling.py @@ -4,12 +4,15 @@ Simple try of the agent. @dev You need to add OPENAI_API_KEY to your environment variables. """ +import asyncio import os import sys -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -import asyncio +from dotenv import load_dotenv + +load_dotenv() from langchain_openai import ChatOpenAI diff --git a/examples/features/multiple_agents_same_browser.py b/examples/features/multiple_agents_same_browser.py index dd48e99fa..63c85617c 100644 --- a/examples/features/multiple_agents_same_browser.py +++ b/examples/features/multiple_agents_same_browser.py @@ -1,12 +1,13 @@ import os import sys - -from langchain_openai import ChatOpenAI - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + +from langchain_openai import ChatOpenAI from browser_use import Agent, Browser diff --git a/examples/features/outsource_state.py b/examples/features/outsource_state.py index 8f1e9a408..503505b00 100644 --- a/examples/features/outsource_state.py +++ b/examples/features/outsource_state.py @@ -6,23 +6,19 @@ Show how to use custom outputs. import os import sys - -import anyio - -from browser_use.agent.views import AgentState -from browser_use.browser.browser import Browser, BrowserConfig - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv -from langchain_openai import ChatOpenAI - -from browser_use import Agent - load_dotenv() +import anyio +from langchain_openai import ChatOpenAI +from browser_use import Agent +from browser_use.agent.views import AgentState +from browser_use.browser.browser import Browser, BrowserConfig + async def main(): task = 'Go to hackernews show hn and give me the first 5 posts' diff --git a/examples/features/parallel_agents.py b/examples/features/parallel_agents.py index e179b4478..4d6063880 100644 --- a/examples/features/parallel_agents.py +++ b/examples/features/parallel_agents.py @@ -1,11 +1,13 @@ import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio -from langchain_openai import ChatOpenAI +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from dotenv import load_dotenv +load_dotenv() + +from langchain_openai import ChatOpenAI from browser_use.agent.service import Agent from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContextConfig diff --git a/examples/features/pause_agent.py b/examples/features/pause_agent.py index b81297172..359e04702 100644 --- a/examples/features/pause_agent.py +++ b/examples/features/pause_agent.py @@ -1,15 +1,14 @@ import asyncio import os import sys - -import dotenv - -dotenv.load_dotenv() - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import threading +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent diff --git a/examples/features/planner.py b/examples/features/planner.py index 85bd23c8f..00d56b40a 100644 --- a/examples/features/planner.py +++ b/examples/features/planner.py @@ -1,4 +1,12 @@ import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv + +load_dotenv() from langchain_openai import ChatOpenAI diff --git a/examples/features/playwright_script_generation.py b/examples/features/playwright_script_generation.py index 1c4b9b107..e4583930c 100644 --- a/examples/features/playwright_script_generation.py +++ b/examples/features/playwright_script_generation.py @@ -3,17 +3,15 @@ import os import sys from pathlib import Path -from dotenv import load_dotenv -from langchain_openai import ChatOpenAI - # Ensure the project root is in the Python path if running directly -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -from browser_use import Agent, Browser, BrowserConfig - -# Load environment variables (e.g., OPENAI_API_KEY) +from dotenv import load_dotenv load_dotenv() +from langchain_openai import ChatOpenAI +from browser_use import Agent, Browser, BrowserConfig + # Define the task for the agent TASK_DESCRIPTION = """ 1. Go to amazon.com diff --git a/examples/features/restrict_urls.py b/examples/features/restrict_urls.py index f481277e0..a8085b03f 100644 --- a/examples/features/restrict_urls.py +++ b/examples/features/restrict_urls.py @@ -1,15 +1,18 @@ +import asyncio import os import sys +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI -from browser_use.browser.context import BrowserContextConfig - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import asyncio - from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig +from browser_use.browser.context import BrowserContextConfig llm = ChatOpenAI(model='gpt-4o', temperature=0.0) task = ( diff --git a/examples/features/result_processing.py b/examples/features/result_processing.py index ca0454d1a..4616a6bfc 100644 --- a/examples/features/result_processing.py +++ b/examples/features/result_processing.py @@ -1,16 +1,17 @@ import os import sys +import asyncio from pprint import pprint -from browser_use.browser.browser import Browser, BrowserConfig, BrowserContextConfig +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import asyncio +from dotenv import load_dotenv +load_dotenv() from langchain_openai import ChatOpenAI - from browser_use import Agent from browser_use.agent.views import AgentHistoryList +from browser_use.browser.browser import Browser, BrowserConfig, BrowserContextConfig llm = ChatOpenAI(model='gpt-4o') browser = Browser( diff --git a/examples/features/save_trace.py b/examples/features/save_trace.py index 657a6ed81..f104fbf25 100644 --- a/examples/features/save_trace.py +++ b/examples/features/save_trace.py @@ -1,10 +1,14 @@ +import asyncio import os import sys -from langchain_openai import ChatOpenAI +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import asyncio +from dotenv import load_dotenv + +load_dotenv() + +from langchain_openai import ChatOpenAI from browser_use.agent.service import Agent from browser_use.browser.browser import Browser diff --git a/examples/features/sensitive_data.py b/examples/features/sensitive_data.py index 52a8a5bc4..fa2d87a9c 100644 --- a/examples/features/sensitive_data.py +++ b/examples/features/sensitive_data.py @@ -1,12 +1,17 @@ import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent -load_dotenv() - # Initialize the model llm = ChatOpenAI( model='gpt-4o', diff --git a/examples/features/small_model_for_extraction.py b/examples/features/small_model_for_extraction.py index 859050a2a..c0507abdb 100644 --- a/examples/features/small_model_for_extraction.py +++ b/examples/features/small_model_for_extraction.py @@ -1,12 +1,17 @@ import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent -load_dotenv() - llm = ChatOpenAI(model='gpt-4o', temperature=0.0) small_llm = ChatOpenAI(model='gpt-4o-mini', temperature=0.0) task = 'Find the founders of browser-use in ycombinator, extract all links and open the links one by one' diff --git a/examples/features/task_with_memory.py b/examples/features/task_with_memory.py index b2035be6a..23aa6fc8d 100644 --- a/examples/features/task_with_memory.py +++ b/examples/features/task_with_memory.py @@ -1,14 +1,16 @@ import asyncio import json +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -import anyio from dotenv import load_dotenv - load_dotenv() +import anyio from langchain_openai import ChatOpenAI from pydantic import BaseModel - from browser_use import Agent, Browser, BrowserConfig, Controller links = [ diff --git a/examples/features/validate_output.py b/examples/features/validate_output.py index 332c4fdda..2dbbae84c 100644 --- a/examples/features/validate_output.py +++ b/examples/features/validate_output.py @@ -6,19 +6,17 @@ Demonstrate output validator. import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv +load_dotenv() + from langchain_openai import ChatOpenAI from pydantic import BaseModel - from browser_use import ActionResult, Agent, Controller -load_dotenv() - controller = Controller() diff --git a/examples/integrations/discord/discord_api.py b/examples/integrations/discord/discord_api.py index 66a2640bf..7659d11ae 100644 --- a/examples/integrations/discord/discord_api.py +++ b/examples/integrations/discord/discord_api.py @@ -1,13 +1,19 @@ +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))) + +from dotenv import load_dotenv + +load_dotenv() + import discord from discord.ext import commands -from dotenv import load_dotenv from langchain_core.language_models.chat_models import BaseChatModel from browser_use import BrowserConfig from browser_use.agent.service import Agent, Browser -load_dotenv() - class DiscordBot(commands.Bot): """Discord bot implementation for Browser-Use tasks. diff --git a/examples/integrations/discord/discord_example.py b/examples/integrations/discord/discord_example.py index c7435d854..c98e974f3 100644 --- a/examples/integrations/discord/discord_example.py +++ b/examples/integrations/discord/discord_example.py @@ -33,16 +33,18 @@ Five Steps to create and invite a Discord bot: """ import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr - from browser_use import BrowserConfig from examples.integrations.discord.discord_api import DiscordBot -load_dotenv() - # load credentials from environment variables bot_token = os.getenv('DISCORD_BOT_TOKEN') if not bot_token: diff --git a/examples/integrations/slack/slack_api.py b/examples/integrations/slack/slack_api.py index c99079700..8d2e6cf4e 100644 --- a/examples/integrations/slack/slack_api.py +++ b/examples/integrations/slack/slack_api.py @@ -1,7 +1,13 @@ import logging +import os +import sys from typing import Annotated +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv +load_dotenv() + from fastapi import Depends, FastAPI, HTTPException, Request from langchain_core.language_models.chat_models import BaseChatModel from slack_sdk.errors import SlackApiError @@ -12,8 +18,6 @@ from browser_use import BrowserConfig from browser_use.agent.service import Agent, Browser from browser_use.logging_config import setup_logging -load_dotenv() - setup_logging() logger = logging.getLogger('slack') diff --git a/examples/integrations/slack/slack_example.py b/examples/integrations/slack/slack_example.py index 80dfc184b..1b3ce3957 100644 --- a/examples/integrations/slack/slack_example.py +++ b/examples/integrations/slack/slack_example.py @@ -1,14 +1,16 @@ import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr - from browser_use import BrowserConfig from examples.integrations.slack.slack_api import SlackBot, app -load_dotenv() - # load credentials from environment variables bot_token = os.getenv('SLACK_BOT_TOKEN') if not bot_token: diff --git a/examples/models/_ollama.py b/examples/models/_ollama.py index dc297598d..5981d0270 100644 --- a/examples/models/_ollama.py +++ b/examples/models/_ollama.py @@ -1,5 +1,3 @@ -# import os - # Optional: Disable telemetry # os.environ["ANONYMIZED_TELEMETRY"] = "false" @@ -7,9 +5,15 @@ # os.environ["OLLAMA_HOST"] = "http://x.x.x.x:11434" import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() from langchain_ollama import ChatOllama - from browser_use import Agent from browser_use.agent.views import AgentHistoryList diff --git a/examples/models/azure_openai.py b/examples/models/azure_openai.py index 5ccc83028..125a40b0d 100644 --- a/examples/models/azure_openai.py +++ b/examples/models/azure_openai.py @@ -6,19 +6,16 @@ Simple try of the agent. import os import sys - -from dotenv import load_dotenv - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio -from langchain_openai import AzureChatOpenAI - -from browser_use import Agent +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from dotenv import load_dotenv load_dotenv() +from langchain_openai import AzureChatOpenAI +from browser_use import Agent + # Retrieve Azure-specific environment variables azure_openai_api_key = os.getenv('AZURE_OPENAI_KEY') azure_openai_endpoint = os.getenv('AZURE_OPENAI_ENDPOINT') diff --git a/examples/models/bedrock_claude.py b/examples/models/bedrock_claude.py index 69691d7e4..f70e42c04 100644 --- a/examples/models/bedrock_claude.py +++ b/examples/models/bedrock_claude.py @@ -11,12 +11,14 @@ import asyncio import os import sys +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + import boto3 from botocore.config import Config from langchain_aws import ChatBedrockConverse - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig from browser_use.controller.service import Controller diff --git a/examples/models/claude-3.7-sonnet.py b/examples/models/claude-3.7-sonnet.py index 8e885435d..94c1f38de 100644 --- a/examples/models/claude-3.7-sonnet.py +++ b/examples/models/claude-3.7-sonnet.py @@ -5,17 +5,14 @@ Simple script that runs the task of opening amazon and searching. import os import sys - -from dotenv import load_dotenv -from langchain_anthropic import ChatAnthropic - -# Load environment variables from .env file -load_dotenv() - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + +from langchain_anthropic import ChatAnthropic from browser_use import Agent llm = ChatAnthropic(model_name='claude-3-7-sonnet-20250219', temperature=0.0, timeout=30, stop=None) diff --git a/examples/models/deepseek-r1.py b/examples/models/deepseek-r1.py index 25a1cf0d0..57dba135f 100644 --- a/examples/models/deepseek-r1.py +++ b/examples/models/deepseek-r1.py @@ -1,15 +1,18 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_deepseek import ChatDeepSeek from pydantic import SecretStr from browser_use import Agent -# dotenv -load_dotenv() - api_key = os.getenv('DEEPSEEK_API_KEY', '') if not api_key: raise ValueError('DEEPSEEK_API_KEY is not set') diff --git a/examples/models/deepseek.py b/examples/models/deepseek.py index eef76c131..bbea27570 100644 --- a/examples/models/deepseek.py +++ b/examples/models/deepseek.py @@ -1,15 +1,18 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_deepseek import ChatDeepSeek from pydantic import SecretStr from browser_use import Agent -# dotenv -load_dotenv() - api_key = os.getenv('DEEPSEEK_API_KEY', '') if not api_key: raise ValueError('DEEPSEEK_API_KEY is not set') diff --git a/examples/models/gemini.py b/examples/models/gemini.py index 0b12f2ad7..94778cf39 100644 --- a/examples/models/gemini.py +++ b/examples/models/gemini.py @@ -1,16 +1,18 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr - from browser_use import Agent, BrowserConfig from browser_use.browser.browser import Browser from browser_use.browser.context import BrowserContextConfig - -load_dotenv() -api_key = os.getenv('GEMINI_API_KEY') +api_key = os.getenv('GOOGLE_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') diff --git a/examples/models/gpt-4o.py b/examples/models/gpt-4o.py index cc9bb2b03..2ad090406 100644 --- a/examples/models/gpt-4o.py +++ b/examples/models/gpt-4o.py @@ -6,13 +6,14 @@ Simple try of the agent. import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio -from langchain_openai import ChatOpenAI +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from dotenv import load_dotenv +load_dotenv() + +from langchain_openai import ChatOpenAI from browser_use import Agent llm = ChatOpenAI(model='gpt-4o') diff --git a/examples/models/grok.py b/examples/models/grok.py index b7e0ff36d..313626669 100644 --- a/examples/models/grok.py +++ b/examples/models/grok.py @@ -1,15 +1,18 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from pydantic import SecretStr from browser_use import Agent -# dotenv -load_dotenv() - api_key = os.getenv('GROK_API_KEY', '') if not api_key: raise ValueError('GROK_API_KEY is not set') diff --git a/examples/models/novita.py b/examples/models/novita.py index 0959fca71..13eb1ae7e 100644 --- a/examples/models/novita.py +++ b/examples/models/novita.py @@ -6,16 +6,17 @@ Simple try of the agent. import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_openai import ChatOpenAI from pydantic import SecretStr - from browser_use import Agent -# dotenv -load_dotenv() - api_key = os.getenv('NOVITA_API_KEY', '') if not api_key: raise ValueError('NOVITA_API_KEY is not set') diff --git a/examples/models/qwen.py b/examples/models/qwen.py index 0b621cdf0..3f8ba380b 100644 --- a/examples/models/qwen.py +++ b/examples/models/qwen.py @@ -1,4 +1,12 @@ import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv + +load_dotenv() from langchain_ollama import ChatOllama diff --git a/examples/simple.py b/examples/simple.py index d2071420b..de29003ba 100644 --- a/examples/simple.py +++ b/examples/simple.py @@ -1,17 +1,17 @@ +import asyncio import os import sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import asyncio - from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent -load_dotenv() - # Initialize the model llm = ChatOpenAI( model='gpt-4o', diff --git a/examples/ui/command_line.py b/examples/ui/command_line.py index ea2d1a5ad..836db5cf7 100644 --- a/examples/ui/command_line.py +++ b/examples/ui/command_line.py @@ -18,16 +18,15 @@ import os import sys # Ensure local repository (browser_use) is accessible -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +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.browser import Browser, BrowserConfig from browser_use.controller.service import Controller -load_dotenv() - def get_llm(provider: str): if provider == 'anthropic': diff --git a/examples/ui/gradio_demo.py b/examples/ui/gradio_demo.py index 6cc88deef..190422044 100644 --- a/examples/ui/gradio_demo.py +++ b/examples/ui/gradio_demo.py @@ -1,10 +1,15 @@ import asyncio import os +import sys from dataclasses import dataclass +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv +load_dotenv() + # Third-party imports import gradio as gr -from dotenv import load_dotenv from langchain_openai import ChatOpenAI from rich.console import Console from rich.panel import Panel @@ -13,8 +18,6 @@ from rich.text import Text # Local module imports from browser_use import Agent -load_dotenv() - @dataclass class ActionResult: diff --git a/examples/ui/streamlit_demo.py b/examples/ui/streamlit_demo.py index 39960b0c9..5818bcf97 100644 --- a/examples/ui/streamlit_demo.py +++ b/examples/ui/streamlit_demo.py @@ -9,19 +9,16 @@ import asyncio import os import sys -import streamlit as st +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv +load_dotenv() -# Ensure local repository (browser_use) is accessible -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - +import streamlit as st from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig from browser_use.controller.service import Controller -# Load environment variables -load_dotenv() - if os.name == 'nt': asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy()) diff --git a/examples/use-cases/captcha.py b/examples/use-cases/captcha.py index 4091c8d74..9a055d000 100644 --- a/examples/use-cases/captcha.py +++ b/examples/use-cases/captcha.py @@ -10,18 +10,15 @@ for this example it helps to zoom in. import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv -from langchain_openai import ChatOpenAI - -from browser_use import Agent - -# Load environment variables load_dotenv() + +from langchain_openai import ChatOpenAI +from browser_use import Agent if not os.getenv('OPENAI_API_KEY'): raise ValueError('OPENAI_API_KEY is not set. Please add it to your environment variables.') diff --git a/examples/use-cases/check_appointment.py b/examples/use-cases/check_appointment.py index 4696baf7f..7759ed924 100644 --- a/examples/use-cases/check_appointment.py +++ b/examples/use-cases/check_appointment.py @@ -2,16 +2,17 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_openai import ChatOpenAI from pydantic import BaseModel, SecretStr - from browser_use.agent.service import Agent from browser_use.controller.service import Controller - -# Load environment variables -load_dotenv() if not os.getenv('OPENAI_API_KEY'): raise ValueError('OPENAI_API_KEY is not set. Please add it to your environment variables.') diff --git a/examples/use-cases/find_and_apply_to_jobs.py b/examples/use-cases/find_and_apply_to_jobs.py index 4cfcc90ba..4e5642626 100644 --- a/examples/use-cases/find_and_apply_to_jobs.py +++ b/examples/use-cases/find_and_apply_to_jobs.py @@ -12,19 +12,17 @@ import os import sys from pathlib import Path -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_openai import AzureChatOpenAI from pydantic import BaseModel, SecretStr from PyPDF2 import PdfReader - from browser_use import ActionResult, Agent, Controller from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContext - -# Validate required environment variables -load_dotenv() required_env_vars = ['AZURE_OPENAI_KEY', 'AZURE_OPENAI_ENDPOINT'] for var in required_env_vars: if not os.getenv(var): diff --git a/examples/use-cases/find_influencer_profiles.py b/examples/use-cases/find_influencer_profiles.py index 581425bcd..a0c78a1c8 100644 --- a/examples/use-cases/find_influencer_profiles.py +++ b/examples/use-cases/find_influencer_profiles.py @@ -7,22 +7,18 @@ Show how to use custom outputs. import json import os import sys - -import httpx - -from browser_use.agent.views import ActionResult - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - import asyncio +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + from dotenv import load_dotenv +load_dotenv() + +import httpx from langchain_openai import ChatOpenAI from pydantic import BaseModel - from browser_use import Agent, Controller - -load_dotenv() +from browser_use.agent.views import ActionResult class Profile(BaseModel): diff --git a/examples/use-cases/online_coding_agent.py b/examples/use-cases/online_coding_agent.py index e0b9f11e6..1f52206da 100644 --- a/examples/use-cases/online_coding_agent.py +++ b/examples/use-cases/online_coding_agent.py @@ -4,15 +4,13 @@ import asyncio import os import sys -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv -from langchain_openai import ChatOpenAI - -from browser_use import Agent, Browser - -# Load environment variables load_dotenv() + +from langchain_openai import ChatOpenAI +from browser_use import Agent, Browser if not os.getenv('OPENAI_API_KEY'): raise ValueError('OPENAI_API_KEY is not set. Please add it to your environment variables.') diff --git a/examples/use-cases/post-twitter.py b/examples/use-cases/post-twitter.py index a90f02404..3709f1c71 100644 --- a/examples/use-cases/post-twitter.py +++ b/examples/use-cases/post-twitter.py @@ -22,19 +22,16 @@ Any issues, contact me on X @defichemist95 import asyncio import os import sys - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - from dataclasses import dataclass -from dotenv import load_dotenv -from langchain_openai import ChatOpenAI +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from dotenv import load_dotenv +load_dotenv() + +from langchain_openai import ChatOpenAI from browser_use import Agent, Controller from browser_use.browser.browser import Browser, BrowserConfig - -# Load environment variables -load_dotenv() if not os.getenv('OPENAI_API_KEY'): raise ValueError('OPENAI_API_KEY is not set. Please add it to your environment variables.') diff --git a/examples/use-cases/scrolling_page.py b/examples/use-cases/scrolling_page.py index 4e649b062..64312330b 100644 --- a/examples/use-cases/scrolling_page.py +++ b/examples/use-cases/scrolling_page.py @@ -4,16 +4,14 @@ import asyncio import os import sys -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv -from langchain_openai import ChatOpenAI +load_dotenv() +from langchain_openai import ChatOpenAI from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig - -# Load environment variables -load_dotenv() if not os.getenv('OPENAI_API_KEY'): raise ValueError('OPENAI_API_KEY is not set') diff --git a/examples/use-cases/shopping.py b/examples/use-cases/shopping.py index cf6e80bef..e83563962 100644 --- a/examples/use-cases/shopping.py +++ b/examples/use-cases/shopping.py @@ -1,11 +1,16 @@ -from dotenv import load_dotenv -from langchain_openai import ChatOpenAI +import asyncio +import os +import sys -from browser_use import Agent, Browser +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + +from dotenv import load_dotenv load_dotenv() -import asyncio +from langchain_openai import ChatOpenAI + +from browser_use import Agent, Browser task = """ ### Prompt for Shopping Agent – Migros Online Grocery Order diff --git a/examples/use-cases/twitter_post_using_cookies.py b/examples/use-cases/twitter_post_using_cookies.py index 73a46a8b8..3dda7a32f 100644 --- a/examples/use-cases/twitter_post_using_cookies.py +++ b/examples/use-cases/twitter_post_using_cookies.py @@ -2,17 +2,19 @@ import asyncio import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr - from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContext, BrowserContextConfig - -load_dotenv() -api_key = os.getenv('GEMINI_API_KEY') +api_key = os.getenv('GOOGLE_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') diff --git a/examples/use-cases/web_voyager_agent.py b/examples/use-cases/web_voyager_agent.py index ae43e4dec..2ea18895c 100644 --- a/examples/use-cases/web_voyager_agent.py +++ b/examples/use-cases/web_voyager_agent.py @@ -5,18 +5,16 @@ import os import sys # Adjust Python path -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv +load_dotenv() + from langchain_openai import AzureChatOpenAI, ChatOpenAI from pydantic import SecretStr - from browser_use.agent.service import Agent from browser_use.browser.browser import Browser, BrowserConfig, BrowserContextConfig -# Load environment variables -load_dotenv() - # Set LLM based on defined environment variables if os.getenv('OPENAI_API_KEY'): llm = ChatOpenAI( diff --git a/examples/use-cases/wikipedia_banana_to_quantum.py b/examples/use-cases/wikipedia_banana_to_quantum.py index 23c1b8d31..eb6e78443 100644 --- a/examples/use-cases/wikipedia_banana_to_quantum.py +++ b/examples/use-cases/wikipedia_banana_to_quantum.py @@ -1,13 +1,18 @@ import asyncio +import os +import sys + +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from dotenv import load_dotenv + +load_dotenv() + from langchain_openai import ChatOpenAI from browser_use import Agent from browser_use.browser.browser import Browser, BrowserConfig, BrowserContextConfig -load_dotenv() - # video https://preview.screen.studio/share/vuq91Ej8 llm = ChatOpenAI( model='gpt-4o',