
    Ng                     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 )    )ListN)CallbackManagerForRetrieverRunDocument)BaseRetrieverc                   b     e Zd ZU dZeed<   dZeed<   def fdZdedede	e
         fd	Z x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                 Z    t                                          |           || _        d S )N)r
   )super__init__r
   )selfr
   	__class__s     a/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/retrievers/breebs.pyr   zBreebsRetriever.__init__   s)    9---"    queryrun_managerreturnc                    t          j        | j        | j        |d          }|j        dk    rg S |                                }d |D             S )zURetrieve context for given query.
        Note that for time being there is no score.)r
   r   )json   c                 N    g | ]"}t          |d          |d         dd          #S )content
source_url   )sourcescore)page_contentmetadatar   ).0chunks     r   
<listcomp>z;BreebsRetriever._get_relevant_documents.<locals>.<listcomp>+   sQ       
 	 !&y!1(-l(;aHH    r   )requestspostr   r
   status_coder   )r   r   r   rchunkss        r   _get_relevant_documentsz'BreebsRetriever._get_relevant_documents   su    
 MH!^ 
 
 
 =CIVVXXF 
 $   r   )__name__
__module____qualname____doc__str__annotations__r   r   r   r   r   r)   __classcell__)r   s   @r   r	   r	   	   s           NNN<C<<<## # # # # # #*H	h       r   r	   )
typingr   r$    langchain_core.callbacks.managerr   langchain_core.documents.baser   langchain_core.retrieversr   r	    r   r   <module>r6      s           K K K K K K 2 2 2 2 2 2 3 3 3 3 3 3( ( ( ( (m ( ( ( ( (r   