
    
i8
                         d dl Z d dlmZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZmZ d dlmZ  G d de          ZdS )	    N)AnyDictList)Documentget_from_dict_or_env)	BaseModel
ConfigDict	SecretStrmodel_validator)URLc                       e Zd ZU dZeed<   dZeed<   	  ed          Z	 e
d          ed	ed
efd                        Zded
efdZded
ee         fdZded
ee         fdZdS )JinaSearchAPIWrapperz&Wrapper around the Jina search engine.api_keyzhttps://s.jina.ai/base_urlforbid)extrabefore)modevaluesreturnc                 2    t          |dd          }||d<   |S )z9Validate that api key and endpoint exists in environment.r   JINA_API_KEYr   )clsr   r   s      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langchain_community/utilities/jina_search.pyvalidate_environmentz)JinaSearchAPIWrapper.validate_environment   s$     'vy.II#y    queryc                 n    |                      |          }d |D             }t          j        |          S )zQuery the Jina search engine and return the results as a JSON string.

        Args:
            query: The query to search for.

        Returns: The results as a JSON string.

        )r   c                     g | ]U}|                     d           |                     d          |                     d          |                     d          dVS )titleurldescriptioncontent)r!   linksnippetr$   )get.0items     r   
<listcomp>z,JinaSearchAPIWrapper.run.<locals>.<listcomp>*   sk     
 
 
  '**88M2288I..	 
 
 
r   )_search_requestjsondumps)selfr   web_search_resultsfinal_resultss       r   runzJinaSearchAPIWrapper.run    sM     "111>>
 
 +
 
 
 z-(((r   c                 D    |                      |          }d |D             S )zQuery the Jina search engine and return the results as a list of Documents.

        Args:
            query: The query to search for.

        Returns: The results as a list of Documents.

        c           
          g | ]c}t          |                    d           |                    d          |                    d          |                    d          d          dS )r$   r!   r"   r#   )r!   r%   r#   )page_contentmetadata)r   r'   r(   s     r   r+   z;JinaSearchAPIWrapper.download_documents.<locals>.<listcomp>?   s}     

 

 

  !XXi00!XXg.. HHUOO#'88M#:#:   

 

 

r   )r,   )r/   r   resultss      r   download_documentsz'JinaSearchAPIWrapper.download_documents5   s:     &&u--

 

  

 

 

 
	
r   c                 @   dd| j                                          d}t          t          | j        |z                       }t          j        ||          }|j        st          d|j	                   |
                                                    dg           S )Nzapplication/jsonzBearer )AcceptAuthorization)headerszHTTP error data)r   get_secret_valuestrr   r   requestsr'   ok	Exceptionstatus_coder-   )r/   r   r<   r"   responses        r   r,   z$JinaSearchAPIWrapper._search_requestK   s    (Ht|'D'D'F'FHH
 
 #dme+,,--<W555{ 	B@(*>@@AAA}}""62...r   N)__name__
__module____qualname____doc__r   __annotations__r   r?   r
   model_configr   classmethodr   r   r   r2   r   r   r8   dictr,    r   r   r   r      s        00(Hc(((2:  L _(###$ 3    [ $#) ) ) ) ) )*
 
X 
 
 
 
,
/S 
/T$Z 
/ 
/ 
/ 
/ 
/ 
/r   r   )r-   typingr   r   r   r@   langchain_core.documentsr   langchain_core.utilsr   pydanticr	   r
   r   r   yarlr   r   rM   r   r   <module>rS      s     " " " " " " " " " "  - - - - - - 5 5 5 5 5 5 F F F F F F F F F F F F      J/ J/ J/ J/ J/9 J/ J/ J/ J/ J/r   