Skip to content

Add Playwright Tool for Web Browsing #21

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ryaneggz opened this issue Nov 29, 2024 · 2 comments · May be fixed by #191
Closed

Add Playwright Tool for Web Browsing #21

ryaneggz opened this issue Nov 29, 2024 · 2 comments · May be fixed by #191

Comments

@ryaneggz
Copy link
Collaborator

ryaneggz commented Nov 29, 2024

https://github.com/promptengineers-ai/llm-server/blob/0a854c474f5d22b6639eba397b3d4be655495960/backend/src/tools/__init__.py#L77

@ryaneggz ryaneggz changed the title Add Playwright Tool Add Playwright Tool for Web Browsing Nov 29, 2024
@ryaneggz
Copy link
Collaborator Author

The issue is when sync it says to use Async if its Async when trying ot extract text it Screws up.

Sync

Process SpawnProcess-1:
Traceback (most recent call last):
  File "/home/ryaneggz/.pyenv/versions/3.11.4/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/home/ryaneggz/.pyenv/versions/3.11.4/lib/python3.11/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started
    target(sockets=sockets)
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/.pyenv/versions/3.11.4/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/.pyenv/versions/3.11.4/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/.pyenv/versions/3.11.4/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/uvicorn/server.py", line 70, in serve
    await self._serve(sockets)
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/uvicorn/server.py", line 77, in _serve
    config.load()
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/uvicorn/config.py", line 435, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/.pyenv/versions/3.11.4/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/main.py", line 7, in <module>
    from src.routes.v0 import tool, llm, thread, retrieve, source, info, auth, token, storage, settings, agent, model
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/src/routes/v0/__init__.py", line 1, in <module>
    from .llm import router as llm
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/src/routes/v0/llm.py", line 10, in <module>
    from src.utils.agent import Agent
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/src/utils/agent.py", line 16, in <module>
    from src.tools import collect_tools, dynamic_tools
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/src/tools/__init__.py", line 20, in <module>
    tools.extend(playwright_toolkit())
                 ^^^^^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/src/tools/web.py", line 9, in playwright_toolkit
    browser = create_sync_playwright_browser()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/langchain_community/tools/playwright/utils.py", line 88, in create_sync_playwright_browser
    browser = sync_playwright().start()
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/playwright/sync_api/_context_manager.py", line 84, in start
    return self.__enter__()
           ^^^^^^^^^^^^^^^^
  File "/home/ryaneggz/sandbox/langgraph/templates/chat/backend/.venv/lib/python3.11/site-packages/playwright/sync_api/_context_manager.py", line 47, in __enter__
    raise Error(
playwright._impl._errors.Error: It looks like you are using Playwright Sync API inside the asyncio loop.
Please use the Async API instead.

Async

Image

@ryaneggz ryaneggz reopened this Mar 15, 2025
@ryaneggz
Copy link
Collaborator Author

Playwright MCP the go to

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant