a
    bg                     @   sT   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 deZ
dS )    N)List)Document)	BaseModel)URLc                   @   sV   e Zd ZU dZdZeed< eedddZeee	 dddZ
eee dd	d
ZdS )JinaSearchAPIWrapperz&Wrapper around the Jina search engine.zhttps://s.jina.ai/base_url)queryreturnc                 C   s$   | j |d}dd |D }t|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                 S   s2   g | ]*}| d | d| d| ddqS )titleurldescriptioncontent)r
   linkZsnippetr   )get.0item r   w/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/utilities/jina_search.py
<listcomp>   s   z,JinaSearchAPIWrapper.run.<locals>.<listcomp>)_search_requestjsondumps)selfr   Zweb_search_resultsZfinal_resultsr   r   r   run   s
    		zJinaSearchAPIWrapper.runc                 C   s   |  |}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              	   S   s8   g | ]0}t |d |d|d|dddqS )r   r
   r   r   )r
   r   r   )Zpage_contentmetadata)r   r   r   r   r   r   r   /   s   	z;JinaSearchAPIWrapper.download_documents.<locals>.<listcomp>)r   )r   r   resultsr   r   r   download_documents%   s    	
	z'JinaSearchAPIWrapper.download_documentsc                 C   sN   ddi}t t| j| }tj||d}|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   responser   r   r   r   ;   s    z$JinaSearchAPIWrapper._search_requestN)__name__
__module____qualname____doc__r   r!   __annotations__r   r   r   r   dictr   r   r   r   r   r   
   s
   
r   )r   typingr   r"   Zlangchain_core.documentsr   Zpydanticr   Zyarlr   r   r   r   r   r   <module>   s   