
    hh?                     V    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
dS )    )AnyDictIteratorOptionalSequence)Document)
BaseLoaderc                       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dS )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
    FNurlstext_contentapi_key
project_id
session_idproxyc                     || _         || _        || _        || _        || _        	 ddlm} n# t          $ r t          d          w xY w ||          | _        d S )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           m/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/langchain_community/document_loaders/browserbase.py__init__zBrowserbaseLoader.__init__   s     	($$
	/////// 	 	 	1  	 ';w777s	   , Areturnc              #   f  K   	 ddl m} n# t          $ r t          d          w xY w| j        D ]} |            5 }| j        r&| j        j                            | j                  }nT| j        st          d          d| j        i}| j
        t          | j
                  |d<    | j        j        j        di |}|j                            |j                  }|j        d         }|j        d         }|                    |           | j        r%|                    d	          }	t+          |	          }
n#|                                }t+          |          }
|                                 |                                 t1          |
d
|i          V  ddd           n# 1 swxY w Y   dS )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,     	;;;;;;; 	 	 	A  	 9 %	 %	C "" $j? Q".7@@DO@TTGG? W()UVVV6BDO5TNz-26tz2B2Bw/>d.7>PPPPG %->>w?RSS!*1-}Q' 		#$ - $ 7 7I!)nnGG $I!)nnG 

!(s     ?$ $ $ $ $ $ $ $ $ $ $ $ $ $ $%	 %	s    %EF$$F(	+F(	)FNNNN)__name__
__module____qualname____doc__r   r/   r&   r   r   r   r   r:   r!       r   r   r      s          #!%$($( $8 8sm8 8 #	8
 SM8 SM8 ~8 8 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 Q Q Q
 Q Q Q Q Qr?   