o
    Zh                     @   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                       sV   e Zd ZU dZeed< dZeed< def fddZdeded	e	e
 f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urlc                    s   t  j|d || _d S )N)r   )super__init__r   )selfr   	__class__ \/var/www/html/lang_env/lib/python3.10/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 )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>)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    