
    dh                    Z    S SK Jr  S SKJrJr  S SKJr  S SKJr  S SK	J
r
   " S S\
5      rg)	    )annotations)AnyList)CallbackManagerForRetrieverRun)Document)BaseRetrieverc                  l    \ rS rSr% SrS\S'   S\S'   \ S       SS jj5       r      SS jrS	r	g
)KayAiRetriever
   z
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_contextsc                ^     SSK Jn  U" X5      nU " XSS9$ ! [         a    [        S5      ef = f)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)cls
dataset_id
data_typesr   r   r   s         Z/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/retrievers/kay.pycreateKayAiRetriever.create   sD    $	7 j5&<<  	% 	s    ,c                   U R                   R                  XR                  S9n/ nU H5  nUR                  SS 5      nUc  M  UR	                  [        U0 UES95        M7     U$ )N)querynum_contextchunk_embed_text)page_contentmetadata)r   r   r   popappendr   )selfr   run_managerctxsdocsctxr   s          r   _get_relevant_documents&KayAiRetriever._get_relevant_documents2   sh     {{  u:K:K LC77#5t<L#KKlWWMN	 
      N)   )r   strr   z	List[str]r   r   returnr
   )r   r+   r"   r   r,   zList[Document])
__name__
__module____qualname____firstlineno____doc____annotations__classmethodr   r&   __static_attributes__r)   r(   r   r
   r
   
   sn     K
 	== = 	=
 
= =8

*H
	
r(   r
   N)
__future__r   typingr   r   langchain_core.callbacksr   langchain_core.documentsr   langchain_core.retrieversr   r
   r)   r(   r   <module>r:      s     "  C - 32] 2r(   