{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from langchain.agents import AgentType\n", "from langchain.chat_models import ChatOpenAI\n", "from langchain.agents import initialize_agent" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from langchain.agents.agent_toolkits import PlayWrightBrowserToolkit\n", "from langchain.tools.playwright.utils import (\n", " create_async_playwright_browser,\n", " create_sync_playwright_browser, # A synchronous browser is available, though it isn't compatible with jupyter.\n", ")\n", "\n", "# This import is required only for jupyter notebooks, since they have their own eventloop\n", "import nest_asyncio\n", "nest_asyncio.apply()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'playwright'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[3], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m async_browser \u001b[39m=\u001b[39m create_async_playwright_browser()\n\u001b[1;32m 2\u001b[0m browser_toolkit \u001b[39m=\u001b[39m PlayWrightBrowserToolkit\u001b[39m.\u001b[39mfrom_browser(async_browser\u001b[39m=\u001b[39masync_browser)\n\u001b[1;32m 3\u001b[0m tools \u001b[39m=\u001b[39m browser_toolkit\u001b[39m.\u001b[39mget_tools()\n", "File \u001b[0;32m~/opt/anaconda3/envs/openai/lib/python3.10/site-packages/langchain/tools/playwright/utils.py:37\u001b[0m, in \u001b[0;36mcreate_async_playwright_browser\u001b[0;34m()\u001b[0m\n\u001b[1;32m 36\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mcreate_async_playwright_browser\u001b[39m() \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m AsyncBrowser:\n\u001b[0;32m---> 37\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mplaywright\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39masync_api\u001b[39;00m \u001b[39mimport\u001b[39;00m async_playwright\n\u001b[1;32m 39\u001b[0m browser \u001b[39m=\u001b[39m run_async(async_playwright()\u001b[39m.\u001b[39mstart())\n\u001b[1;32m 40\u001b[0m \u001b[39mreturn\u001b[39;00m run_async(browser\u001b[39m.\u001b[39mchromium\u001b[39m.\u001b[39mlaunch(headless\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m))\n", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'playwright'" ] } ], "source": [ "async_browser = create_async_playwright_browser()\n", "browser_toolkit = PlayWrightBrowserToolkit.from_browser(async_browser=async_browser)\n", "tools = browser_toolkit.get_tools()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "llm = ChatOpenAI(temperature=0) # Also works well with Anthropic models\n", "agent_chain = initialize_agent(tools, llm, agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from langchain.callbacks import tracing_enabled # This is used to configure tracing for our runs." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "link = \"https://ms.ro/ro/centrul-de-presa/autoriza%C5%A3ia-de-construire-a-spitalului-regional-de-urgen%C5%A3%C4%83-cluj-a-fost-semnat%C4%83/\"\n", "input = \"Browse to {{}} and summarize the text, please.\".format(link)\n", "with tracing_enabled(): \n", " response = await agent_chain.arun(input=\"Browse to blog.langchain.dev and summarize the text, please.\")\n", "print(response)" ] } ], "metadata": { "kernelspec": { "display_name": "openai", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }