
    7|h                     R    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	y)    )ListN)CallbackManagerForRetrieverRun)Document)BaseRetrieverc                   \     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                 4    t         |   |       || _        y )N)r	   )super__init__r	   )selfr	   	__class__s     d/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/retrievers/breebs.pyr   zBreebsRetriever.__init__   s    9-"    queryrun_managerreturnc          	          t        j                  | j                  | j                  |d      }|j                  dk7  rg S |j                         }|D cg c]  }t        |d   |d   dd       c}S c c}w )	zURetrieve context for given query.
        Note that for time being there is no score.)r	   r   )json   content
source_url   )sourcescore)page_contentmetadata)requestspostr
   r	   status_coder   r   )r   r   r   rchunkschunks         r   _get_relevant_documentsz'BreebsRetriever._get_relevant_documents   s    
 MMHH!^^
 ==CIVVXF $
 	 !&y!1(-l(;aH  s   A4)__name__
__module____qualname____doc__str__annotations__r
   r   r   r   r   r%   __classcell__)r   s   @r   r   r   	   sF     N<C<## #*H	hr   r   )
typingr   r    langchain_core.callbacks.managerr   langchain_core.documents.baser   langchain_core.retrieversr   r    r   r   <module>r2      s       K 2 3(m (r   