
    h                    z    d dl mZ d dlmZmZ d dlZd dl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y)
    )annotations)ListOptionalN)#AsyncCallbackManagerForRetrieverRunCallbackManagerForRetrieverRun)Document)BaseRetriever)
ConfigDictc                      e Zd ZU dZded<   	 ded<   	 dZded<   	 dZd	ed
<   	 dZded<   	  ed      Z		 	 	 	 	 	 ddZ
	 	 	 	 	 	 ddZddZy)ChatGPTPluginRetrieverz`ChatGPT plugin` retriever.strurlbearer_token   inttop_kNzOptional[dict]filterzOptional[aiohttp.ClientSession]
aiosessionT)arbitrary_types_allowedc               l   | j                  |      \  }}}t        j                  |||      }|j                         d   d   d   }g }|D ]f  }	|	j	                  d      }
|	j	                  d|	      }|j                  d      r|j	                  d      |d<   |j                  t        |
|             h |S )	N)jsonheadersresultsr   textmetadata	source_idsourcepage_contentr   )_create_requestrequestspostr   popgetappendr   )selfqueryrun_managerr   r   r   responser   docsdcontentr   s               u/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/retrievers/chatgpt_plugin_retriever.py_get_relevant_documentsz.ChatGPTPluginRetriever._get_relevant_documents"   s     "11%8T7==4A--/),Q/	: 	KAeeFmGuuZ+H||K(%-\\+%>"KKgIJ	K     c               f  K   | j                  |      \  }}}| j                  sst        j                         4 d {   }|j	                  |||      4 d {   }|j                          d {   }d d d       d {    d d d       d {    nO| j                  j	                  |||      4 d {   }|j                          d {   }d d d       d {    d   d   d   }	g }
|	D ]f  }|j                  d      }|j                  d|      }|j                  d      r|j                  d      |d<   |
j                  t        ||             h |
S 7 $7 
7 7 # 1 d {  7  sw Y   xY w7 # 1 d {  7  sw Y   xY w7 7 7 # 1 d {  7  sw Y   xY ww)	N)r   r   r   r   r   r   r   r   r   )
r    r   aiohttpClientSessionr"   r   r#   r$   r%   r   )r&   r'   r(   r   r   r   sessionr)   resr   r*   r+   r,   r   s                 r-   _aget_relevant_documentsz/ChatGPTPluginRetriever._aget_relevant_documents1   s     "11%8T7,,. 0 0'"<<W4<H 0 0H (/C0 00 0 0 ++W4 ,  , ,$MMO+, ,
 i.#I. 	KAeeFmGuuZ+H||K(%-\\+%>"KKgIJ	K #00/0 0 0 00 0 0 0, ,, , , ,s   :F1E F1 FE#FE*1E&2E*6FE(FF1E?'F19F:F1=FFFF1!F"A?F1#F&E*(F*E<	0E31E<	8F?F1FF
FF1FF1F."F%#F.*F1c                    | j                    d}d|| j                  | j                  dgi}dd| j                   d}|||fS )Nz/queryqueries)r'   r   r   zapplication/jsonzBearer )zContent-TypeAuthorization)r   r   r   r   )r&   r'   r   r   r   s        r-   r    z&ChatGPTPluginRetriever._create_requestJ   sc    
&!""kk!ZZ
 /&t'8'8&9:
 D'!!r/   )r'   r   r(   r   returnList[Document])r'   r   r(   r   r9   r:   )r'   r   r9   ztuple[str, dict, dict])__name__
__module____qualname____doc____annotations__r   r   r   r
   model_configr.   r5   r     r/   r-   r   r      s    %	H$.E3N(!FN!)26J/6. $L*H	*M	2"r/   r   )
__future__r   typingr   r   r1   r!   langchain_core.callbacksr   r   langchain_core.documentsr   langchain_core.retrieversr	   pydanticr
   r   rA   r/   r-   <module>rH      s/    " !   . 3 I"] I"r/   