
    Ng                        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dS )    )annotations)TYPE_CHECKINGAnyDictList)
deprecated)#AsyncCallbackManagerForRetrieverRunCallbackManagerForRetrieverRunDocument)BaseChatModel)HumanMessage)BaseRetriever)
ConfigDictField)BaseMessageresponser   returnList[Document]c                
   d| j         vrg nd | j         d         D             }|                    t          | j        j        d| j         d         | j         d         | j         d         | j         d         d	                     |S )
N	documentsc                <    g | ]}t          |d          |          S )snippetpage_contentmetadatar   ).0docs     o/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/retrievers/cohere_rag_retriever.py
<listcomp>z_get_docs.<locals>.<listcomp>   s9     
 
 
 #i.3???
 
 
    model_response	citationssearch_resultssearch_queriestoken_count)typer#   r$   r%   r&   r   )generation_infoappendr   messagecontent)r   docss     r   	_get_docsr-      s     h666 	
 
/<
 
 
 	 	KK!)1(%5kB"*":;K"L"*":;K"L'7F 		
 		
 		
   Kr!   z0.0.30z1.0z#langchain_cohere.CohereRagRetriever)sinceremovalalternative_importc                  n    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
dS )CohereRagRetrieverzCohere Chat API with RAG.c                     ddigS )Nidz
web-search r5   r!   r   <lambda>zCohereRagRetriever.<lambda>4   s    T<<P;Q r!   )default_factoryz
List[Dict]
connectorsr   llmT)arbitrary_types_allowedquerystrrun_managerr
   kwargsr   r   r   c                   t          |          gg} | j        j        |f| j        |                                d|j        d         d         }t          |          S N)r+   )r8   	callbacksr   )r   r9   generater8   	get_childgenerationsr-   selfr;   r=   r>   messagesress         r   _get_relevant_documentsz*CohereRagRetriever._get_relevant_documentsD   s     /;5.I.I.I-J,Kdh
!++--
 
 	
 

 a
  ~~r!   r	   c                  K   t          |          gg} | j        j        |f| j        |                                d| d {V j        d         d         }t          |          S r@   )r   r9   	agenerater8   rC   rD   r-   rE   s         r   _aget_relevant_documentsz+CohereRagRetriever._aget_relevant_documentsP   s       /;5.I.I.I-J,K$$($?%//11  	        a  ~~r!   N)r;   r<   r=   r
   r>   r   r   r   )r;   r<   r=   r	   r>   r   r   r   )__name__
__module____qualname____doc__r   r8   __annotations__r   model_configrI   rL   r5   r!   r   r2   r2   ,   s          $#"U3Q3QRRRJRRRR ": $  L
 
 
 
     r!   r2   N)r   r   r   r   )
__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-   r2   r5   r!   r   <module>r\      sb   " " " " " " 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6        . - - - - - D D D D D D 0 0 0 0 0 0 3 3 3 3 3 3 & & & & & & & & 4333333   0 
<  
/ / / / / / / 
/ / /r!   