chore: import upstream snapshot with attribution
Test Browser Use CLI Install / uv pip install (ubuntu-latest) (push) Failing after 1s
Test Browser Use CLI Install / uvx browser-use from local wheel (push) Failing after 1s
Test Browser Use CLI Install / uvx browser-use[cli] from PyPI (push) Failing after 1s
package / pip-install-on-macos-latest-py-3.11 (push) Has been skipped
package / pip-install-on-macos-latest-py-3.13 (push) Has been skipped
package / pip-install-on-ubuntu-latest-py-3.11 (push) Has been skipped
package / pip-install-on-windows-latest-py-3.13 (push) Has been skipped
cloud_evals / trigger_cloud_eval_image_build (push) Failing after 1s
docker / build_publish_image (push) Failing after 1s
Test Browser Use CLI Install / browser-use skill sync (push) Failing after 1s
lint / code-style (push) Failing after 0s
lint / type-checker (push) Failing after 1s
package / pip-build (push) Failing after 1s
lint / syntax-errors (push) Failing after 3s
package / pip-install-on-ubuntu-latest-py-3.13 (push) Has been skipped
package / pip-install-on-windows-latest-py-3.11 (push) Has been skipped
test / ${{ matrix.test_filename }} (push) Has been skipped
test / evaluate-tasks (push) Has been skipped
test / setup-chromium (push) Failing after 2s
test / find_tests (push) Failing after 2s
Test Browser Use CLI Install / uv pip install (windows-latest) (push) Has been cancelled
Test Browser Use CLI Install / uv pip install (macos-latest) (push) Has been cancelled
Test Browser Use CLI Install / uv pip install (ubuntu-latest) (push) Failing after 1s
Test Browser Use CLI Install / uvx browser-use from local wheel (push) Failing after 1s
Test Browser Use CLI Install / uvx browser-use[cli] from PyPI (push) Failing after 1s
package / pip-install-on-macos-latest-py-3.11 (push) Has been skipped
package / pip-install-on-macos-latest-py-3.13 (push) Has been skipped
package / pip-install-on-ubuntu-latest-py-3.11 (push) Has been skipped
package / pip-install-on-windows-latest-py-3.13 (push) Has been skipped
cloud_evals / trigger_cloud_eval_image_build (push) Failing after 1s
docker / build_publish_image (push) Failing after 1s
Test Browser Use CLI Install / browser-use skill sync (push) Failing after 1s
lint / code-style (push) Failing after 0s
lint / type-checker (push) Failing after 1s
package / pip-build (push) Failing after 1s
lint / syntax-errors (push) Failing after 3s
package / pip-install-on-ubuntu-latest-py-3.13 (push) Has been skipped
package / pip-install-on-windows-latest-py-3.11 (push) Has been skipped
test / ${{ matrix.test_filename }} (push) Has been skipped
test / evaluate-tasks (push) Has been skipped
test / setup-chromium (push) Failing after 2s
test / find_tests (push) Failing after 2s
Test Browser Use CLI Install / uv pip install (windows-latest) (push) Has been cancelled
Test Browser Use CLI Install / uv pip install (macos-latest) (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
"""
|
||||
Setup:
|
||||
1. Get your API key from https://cloud.browser-use.com/new-api-key
|
||||
2. Set environment variable: export BROWSER_USE_API_KEY="your-key"
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Add the parent directory to the path so we can import browser_use
|
||||
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, ChatBrowserUse
|
||||
|
||||
|
||||
async def main():
|
||||
llm = ChatBrowserUse(model='bu-2-0')
|
||||
task = "Search Google for 'what is browser automation' and tell me the top 3 results"
|
||||
agent = Agent(task=task, llm=llm)
|
||||
await agent.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
Getting Started Example 2: Form Filling
|
||||
|
||||
This example demonstrates how to:
|
||||
- Navigate to a website with forms
|
||||
- Fill out input fields
|
||||
- Submit forms
|
||||
- Handle basic form interactions
|
||||
|
||||
This builds on the basic search example by showing more complex interactions.
|
||||
|
||||
Setup:
|
||||
1. Get your API key from https://cloud.browser-use.com/new-api-key
|
||||
2. Set environment variable: export BROWSER_USE_API_KEY="your-key"
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Add the parent directory to the path so we can import browser_use
|
||||
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, ChatBrowserUse
|
||||
|
||||
|
||||
async def main():
|
||||
# Initialize the model
|
||||
llm = ChatBrowserUse(model='bu-2-0')
|
||||
|
||||
# Define a form filling task
|
||||
task = """
|
||||
Go to https://httpbin.org/forms/post and fill out the contact form with:
|
||||
- Customer name: John Doe
|
||||
- Telephone: 555-123-4567
|
||||
- Email: john.doe@example.com
|
||||
- Size: Medium
|
||||
- Topping: cheese
|
||||
- Delivery time: now
|
||||
- Comments: This is a test form submission
|
||||
|
||||
Then submit the form and tell me what response you get.
|
||||
"""
|
||||
|
||||
# Create and run the agent
|
||||
agent = Agent(task=task, llm=llm)
|
||||
await agent.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
@@ -0,0 +1,54 @@
|
||||
"""
|
||||
Getting Started Example 3: Data Extraction
|
||||
|
||||
This example demonstrates how to:
|
||||
- Navigate to a website with structured data
|
||||
- Extract specific information from the page
|
||||
- Process and organize the extracted data
|
||||
- Return structured results
|
||||
|
||||
This builds on previous examples by showing how to get valuable data from websites.
|
||||
|
||||
Setup:
|
||||
1. Get your API key from https://cloud.browser-use.com/new-api-key
|
||||
2. Set environment variable: export BROWSER_USE_API_KEY="your-key"
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Add the parent directory to the path so we can import browser_use
|
||||
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, ChatBrowserUse
|
||||
|
||||
|
||||
async def main():
|
||||
# Initialize the model
|
||||
llm = ChatBrowserUse(model='bu-2-0')
|
||||
|
||||
# Define a data extraction task
|
||||
task = """
|
||||
Go to https://quotes.toscrape.com/ and extract the following information:
|
||||
- The first 5 quotes on the page
|
||||
- The author of each quote
|
||||
- The tags associated with each quote
|
||||
|
||||
Present the information in a clear, structured format like:
|
||||
Quote 1: "[quote text]" - Author: [author name] - Tags: [tag1, tag2, ...]
|
||||
Quote 2: "[quote text]" - Author: [author name] - Tags: [tag1, tag2, ...]
|
||||
etc.
|
||||
"""
|
||||
|
||||
# Create and run the agent
|
||||
agent = Agent(task=task, llm=llm)
|
||||
await agent.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
@@ -0,0 +1,58 @@
|
||||
"""
|
||||
Getting Started Example 4: Multi-Step Task
|
||||
|
||||
This example demonstrates how to:
|
||||
- Perform a complex workflow with multiple steps
|
||||
- Navigate between different pages
|
||||
- Combine search, form filling, and data extraction
|
||||
- Handle a realistic end-to-end scenario
|
||||
|
||||
This is the most advanced getting started example, combining all previous concepts.
|
||||
|
||||
Setup:
|
||||
1. Get your API key from https://cloud.browser-use.com/new-api-key
|
||||
2. Set environment variable: export BROWSER_USE_API_KEY="your-key"
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Add the parent directory to the path so we can import browser_use
|
||||
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, ChatBrowserUse
|
||||
|
||||
|
||||
async def main():
|
||||
# Initialize the model
|
||||
llm = ChatBrowserUse(model='bu-2-0')
|
||||
|
||||
# Define a multi-step task
|
||||
task = """
|
||||
I want you to research Python web scraping libraries. Here's what I need:
|
||||
|
||||
1. First, search Google for "best Python web scraping libraries 2024"
|
||||
2. Find a reputable article or blog post about this topic
|
||||
3. From that article, extract the top 3 recommended libraries
|
||||
4. For each library, visit its official website or GitHub page
|
||||
5. Extract key information about each library:
|
||||
- Name
|
||||
- Brief description
|
||||
- Main features or advantages
|
||||
- GitHub stars (if available)
|
||||
|
||||
Present your findings in a summary format comparing the three libraries.
|
||||
"""
|
||||
|
||||
# Create and run the agent
|
||||
agent = Agent(task=task, llm=llm)
|
||||
await agent.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
@@ -0,0 +1,64 @@
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Add the parent directory to the path so we can import browser_use
|
||||
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, BrowserProfile
|
||||
|
||||
# Speed optimization instructions for the model
|
||||
SPEED_OPTIMIZATION_PROMPT = """
|
||||
Speed optimization instructions:
|
||||
- Be extremely concise and direct in your responses
|
||||
- Get to the goal as quickly as possible
|
||||
- Use multi-action sequences whenever possible to reduce steps
|
||||
"""
|
||||
|
||||
|
||||
async def main():
|
||||
# 1. Use fast LLM - Llama 4 on Groq for ultra-fast inference
|
||||
from browser_use import ChatGroq
|
||||
|
||||
llm = ChatGroq(
|
||||
model='meta-llama/llama-4-maverick-17b-128e-instruct',
|
||||
temperature=0.0,
|
||||
)
|
||||
# from browser_use import ChatGoogle
|
||||
|
||||
# llm = ChatGoogle(model='gemini-3.1-flash-lite')
|
||||
|
||||
# 2. Create speed-optimized browser profile
|
||||
browser_profile = BrowserProfile(
|
||||
minimum_wait_page_load_time=0.1,
|
||||
wait_between_actions=0.1,
|
||||
headless=False,
|
||||
)
|
||||
|
||||
# 3. Define a speed-focused task
|
||||
task = """
|
||||
1. Go to reddit https://www.reddit.com/search/?q=browser+agent&type=communities
|
||||
2. Click directly on the first 5 communities to open each in new tabs
|
||||
3. Find out what the latest post is about, and switch directly to the next tab
|
||||
4. Return the latest post summary for each page
|
||||
"""
|
||||
|
||||
# 4. Create agent with all speed optimizations
|
||||
agent = Agent(
|
||||
task=task,
|
||||
llm=llm,
|
||||
flash_mode=True, # Disables thinking in the LLM output for maximum speed
|
||||
browser_profile=browser_profile,
|
||||
extend_system_message=SPEED_OPTIMIZATION_PROMPT,
|
||||
)
|
||||
|
||||
await agent.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user