
    Ng                     b    d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlm	Z	  G d de          Z
dS )    N)List)Document)	BaseModel)URLc                   l    e Zd ZU dZdZeed<   	 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.zhttps://s.jina.ai/base_urlqueryreturnc                 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     e/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/utilities/jina_search.py
<listcomp>z,JinaSearchAPIWrapper.run.<locals>.<listcomp>   sk     
 
 
  '**88M2288I..	 
 
 
    )_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_documents%   s:     &&u--

 

  

 

 

 
	
r   c                 
   ddi}t          t          | j        |z                       }t          j        ||          }|j        st          d|j                   |                                                    dg           S )NAcceptzapplication/json)headerszHTTP error data)	strr   r	   requestsr   ok	Exceptionstatus_coder   )r   r
   r*   r   responses        r   r   z$JinaSearchAPIWrapper._search_request;   s    (
 #dme+,,--<W555{ 	B@(*>@@AAA}}""62...r   N)__name__
__module____qualname____doc__r	   r,   __annotations__r!   r   r   r'   dictr    r   r   r   r   
   s         00(Hc(((2) ) ) ) ) )*
 
X 
 
 
 
,	/S 	/T$Z 	/ 	/ 	/ 	/ 	/ 	/r   r   )r   typingr   r-   langchain_core.documentsr   pydanticr   yarlr   r   r8   r   r   <module>r=      s            - - - - - -            :/ :/ :/ :/ :/9 :/ :/ :/ :/ :/r   