
    Ng                    b    d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
  G d de
          ZdS )	    )annotations)AnyList)CallbackManagerForRetrieverRun)Document)BaseRetrieverc                  L    e Zd ZU dZded<   ded<   e	 ddd            ZddZdS )KayAiRetrieverz
    Retriever for Kay.ai datasets.

    To work properly, expects you to have KAY_API_KEY env variable set.
    You can get one for free at https://kay.ai/.
    r   clientintnum_contexts   
dataset_idstr
data_types	List[str]returnc                ~    	 ddl m} n# t          $ r t          d          w xY w |||          } | ||          S )a  
        Create a KayRetriever given a Kay dataset id and a list of datasources.

        Args:
            dataset_id: A dataset id category in Kay, like "company"
            data_types: A list of datasources present within a dataset. For
                "company" the corresponding datasources could be
                ["10-K", "10-Q", "8-K", "PressRelease"].
            num_contexts: The number of documents to retrieve on each query.
                Defaults to 6.
        r   )KayRetrieverzNCould not import kay python package. Please install it with `pip install kay`.)r   r   )kay.rag.retrieversr   ImportError)clsr   r   r   r   r   s         ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/retrievers/kay.pycreatezKayAiRetriever.create   sv    $	7777777 	 	 	%  	 j*55s&|<<<<s   	 #queryrun_managerr   List[Document]c                   | j                             || j                  }g }|D ]A}|                    dd           }||                    t          |i |                     B|S )N)r   num_contextchunk_embed_text)page_contentmetadata)r   r   r   popappendr   )selfr   r   ctxsdocsctxr!   s          r   _get_relevant_documentsz&KayAiRetriever._get_relevant_documents2   s     {  u$:K LL 	O 	OC77#5t<<L#KKlWWMMMNNNN    N)r   )r   r   r   r   r   r   r   r
   )r   r   r   r   r   r   )__name__
__module____qualname____doc____annotations__classmethodr   r)    r*   r   r
   r
   
   ss           KKK
 	= = = = [=8
 
 
 
 
 
r*   r
   N)
__future__r   typingr   r   langchain_core.callbacksr   langchain_core.documentsr   langchain_core.retrieversr   r
   r1   r*   r   <module>r7      s    " " " " " "         C C C C C C - - - - - - 3 3 3 3 3 32 2 2 2 2] 2 2 2 2 2r*   