a
    bg                     @   sL   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 )    )ListN)CallbackManagerForRetrieverRunDocument)BaseRetrieverc                       sR   e Zd ZU dZeed< dZeed< ed fddZeee	e
 dd	d
Z  ZS )BreebsRetrievera:  A retriever class for `Breebs`.

    See https://www.breebs.com/ for more info.
    Args:
        breeb_key: The key to trigger the breeb
        (specialized knowledge pill on a specific topic).

    To retrieve the list of all available Breebs : you can call https://breebs.promptbreeders.com/web/listbreebs
    	breeb_keyz+https://breebs.promptbreeders.com/knowledgeurlr   c                    s   t  j|d || _d S )Nr
   )super__init__r   )selfr   	__class__ s/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/retrievers/breebs.pyr      s    zBreebsRetriever.__init__)queryrun_managerreturnc                C   s@   t j| j| j|dd}|jdkr&g S | }dd |D S dS )zURetrieve context for given query.
        Note that for time being there is no score.)r   r   )json   c                 S   s&   g | ]}t |d  |d dddqS )content
source_url   )sourceZscore)Zpage_contentmetadatar   ).0chunkr   r   r   
<listcomp>+   s
   z;BreebsRetriever._get_relevant_documents.<locals>.<listcomp>N)requestspostr	   r   status_coder   )r   r   r   rchunksr   r   r   _get_relevant_documents   s    
z'BreebsRetriever._get_relevant_documents)__name__
__module____qualname____doc__str__annotations__r	   r   r   r   r   r$   __classcell__r   r   r   r   r   	   s   

r   )
typingr   r   Z langchain_core.callbacks.managerr   Zlangchain_core.documents.baser   Zlangchain_core.retrieversr   r   r   r   r   r   <module>   s
   