
    h?                     N    d dl mZmZmZmZmZ d dlmZ d dlm	Z	  G d de	      Z
y)    )AnyDictIteratorOptionalSequence)Document)
BaseLoaderc                   l    e Zd ZdZ	 	 	 	 	 ddee   dedee   dee   dee   dee   fd	Zd
e	e
   fdZy)BrowserbaseLoaderzLoad pre-rendered web pages using a headless browser hosted on Browserbase.

    Depends on `browserbase` and `playwright` packages.
    Get your API key from https://browserbase.com
    Nurlstext_contentapi_key
project_id
session_idproxyc                     || _         || _        || _        || _        || _        	 ddlm}  ||      | _        y # t        $ r t        d      w xY w)Nr   )BrowserbasezZYou must run `pip install --upgrade browserbase playwright` to use the Browserbase loader.)r   )r   r   r   r   r   browserbaser   ImportError)selfr   r   r   r   r   r   r   s           n/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/document_loaders/browserbase.py__init__zBrowserbaseLoader.__init__   sb     	($$
	/ 'w7  	1 	s	   : Areturnc              #     K   	 ddl m} | j                  D ]  } |       5 }| j                  r1| j
                  j                  j                  | j                        }no| j                  st        d      d| j                  i}| j                  t        | j                        |d<    | j
                  j                  j                  di |}|j                  j                  |j                        }|j                   d   }|j"                  d   }|j%                  |       | j&                  r|j)                  d	      }	t+        |	      }
n|j-                         }t+        |      }
|j/                          |j/                          t1        |
d
|i       ddd        y# t        $ r t        d      w xY w# 1 sw Y   xY ww)zLoad pages from URLsr   )sync_playwrightz\playwright is required for BrowserbaseLoader. Please run `pip install --upgrade playwright`.)idz*project_id is required to create a sessionr   Nr   bodyurl)page_contentmetadata )playwright.sync_apir   r   r   r   r   sessionsretriever   
ValueErrorr   boolcreatechromiumconnect_over_cdpconnect_urlcontextspagesgotor   
inner_textstrcontentcloser   )r   r   r   
playwrightsessionsession_paramsbrowsercontextpage	page_textr0   	page_htmls               r   	lazy_loadzBrowserbaseLoader.lazy_load*   s    	; 99 %	C " $j??"..77@@DOO@TG??()UVV6BDOO5TNzz-26tzz2Bw/>d..77>>PPG %-->>w?R?RS!**1-}}Q' 		#$$ $ 7I!)nG $I!)nG 

!(s ?$ $%	  	A 	$ $s3   GF# GE6F;G#F88G;G	 G)FNNNN)__name__
__module____qualname____doc__r   r/   r&   r   r   r   r   r:   r!       r   r   r      s|     #!%$($( $8sm8 8 #	8
 SM8 SM8 ~86/8H- /r?   r   N)typingr   r   r   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser	   r   r!   r?   r   <module>rC      s    : : - @Q
 Qr?   