
    h                        d dl mZ d dlmZmZmZmZ 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 d dlmZ d d	lmZmZ erd d
lmZ ddZ eddd       G d de             Zy)    )annotations)TYPE_CHECKINGAnyDictList)
deprecated)#AsyncCallbackManagerForRetrieverRunCallbackManagerForRetrieverRun)Document)BaseChatModel)HumanMessage)BaseRetriever)
ConfigDictField)BaseMessagec                Z   d| j                   vrg n*| j                   d   D cg c]  }t        |d   |       c}}|j                  t        | j                  j                  d| j                   d   | j                   d   | j                   d   | j                   d   d	             |S c c}w )
N	documentssnippet)page_contentmetadatamodel_response	citationssearch_resultssearch_queriestoken_count)typer   r   r   r   )generation_infor   appendmessagecontent)responsedocdocss      q/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/retrievers/cohere_rag_retriever.py	_get_docsr%      s     h666 	  //<
 #i.3?
 	 	KK!))11(%55kB"*":":;K"L"*":":;K"L'77F		
 K#
s   B(z0.0.30z1.0z#langchain_cohere.CohereRagRetriever)sinceremovalalternative_importc                      e Zd ZU dZ ed       Zded<   	 ded<   	  ed	      Z	 	 	 	 	 	 	 	 dd
Z		 	 	 	 	 	 	 	 ddZ
y)CohereRagRetrieverzCohere Chat API with RAG.c                     ddigS )Nidz
web-search r-       r$   <lambda>zCohereRagRetriever.<lambda>4   s    T<<P;Q r.   )default_factoryz
List[Dict]
connectorsr   llmT)arbitrary_types_allowedc                   t        |      gg} | j                  j                  |f| j                  |j	                         d|j
                  d   d   }t        |      S N)r    )r1   	callbacksr   )r   r2   generater1   	get_childgenerationsr%   selfqueryrun_managerkwargsmessagesress         r$   _get_relevant_documentsz*CohereRagRetriever._get_relevant_documentsD   ss     /;5.I-J,Kdhh
!++-
 	

 +a
  ~r.   c                  K   t        |      gg} | j                  j                  |f| j                  |j	                         d| d {   j
                  d   d   }t        |      S 7 wr5   )r   r2   	agenerater1   r8   r9   r%   r:   s         r$   _aget_relevant_documentsz+CohereRagRetriever._aget_relevant_documentsP   s      /;5.I-J,K$$(($$??%//1 	  +a  ~s   A
A.A, A.N)r<   strr=   r
   r>   r   returnList[Document])r<   rE   r=   r	   r>   r   rF   rG   )__name__
__module____qualname____doc__r   r1   __annotations__r   model_configrA   rD   r-   r.   r$   r*   r*   ,   s     $"3QRJ
R 
" $L

*H
TW
	
 9	
  
r.   r*   N)r!   r   rF   rG   )
__future__r   typingr   r   r   r   langchain_core._api.deprecationr   langchain_core.callbacksr	   r
   langchain_core.documentsr   *langchain_core.language_models.chat_modelsr   langchain_core.messagesr   langchain_core.retrieversr   pydanticr   r   r   r%   r*   r-   r.   r$   <module>rW      s[    " 1 1 6 . D 0 3 &30 
<
/ /
/r.   