
    dh                    z    S SK Jr  S SKJrJr  S SKrS SK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)ListOptionalN)#AsyncCallbackManagerForRetrieverRunCallbackManagerForRetrieverRun)Document)BaseRetriever)
ConfigDictc                      \ rS rSr% SrS\S'    S\S'    SrS\S'    S	rS
\S'    S	rS\S'    \	" SS9r
      SS jr      SS jrSS jrSrg	)ChatGPTPluginRetriever   z`ChatGPT plugin` retriever.strurlbearer_token   inttop_kNzOptional[dict]filterzOptional[aiohttp.ClientSession]
aiosessionT)arbitrary_types_allowedc               j   U R                  U5      u  p4n[        R                  " X4US9nUR                  5       S   S   S   n/ nU Hh  n	U	R	                  S5      n
U	R	                  SU	5      nUR                  S5      (       a  UR	                  S5      US'   UR                  [        XS95        Mj     U$ )	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               o/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/retrievers/chatgpt_plugin_retriever.py_get_relevant_documents.ChatGPTPluginRetriever._get_relevant_documents"   s     "11%87==A--/),Q/	:AeeFmGuuZ+H||K((%-\\+%>"KKgIJ      c                 #    U R                  U5      u  p4nU R                  (       dp  [        R                  " 5        IS h  vN nUR	                  X5US9 IS h  vN nUR                  5       I S h  vN nS S S 5      IS h  vN   S S S 5      IS h  vN   OKU R                  R	                  X5US9 IS h  vN nUR                  5       I S h  vN nS S S 5      IS h  vN   WS   S   S   n	/ n
U	 Hh  nUR                  S5      nUR                  SU5      nUR                  S5      (       a  UR                  S5      US'   U
R                  [        XS95        Mj     U
$  GN GN	 N N! , IS h  vN  (       d  f       N= f N! , IS h  vN  (       d  f       N= f N N N! , IS h  vN  (       d  f       N= f7f)	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_documents/ChatGPTPluginRetriever._aget_relevant_documents1   sl     "11%87,,..'"<<4<HHH (/C IH /.. ++4 ,  $MMO+ 
 i.#I.AeeFmGuuZ+H||K((%-\\+%>"KKgIJ  # /H/ IHHH /... ,   s   ?G E G FE#FE*2E&3E*7FE(FG F#G 6F 7G :F&F"F&G F$BG #F&E*(F*F	0E31F	=FG FFFG "F&$G &F=,F/-F=9G c                    U R                    S3nSUU R                  U R                  S./0nSSU R                   3S.nX#U4$ )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!   &ChatGPTPluginRetriever._create_requestJ   sa    
&!""kk!ZZ
 /&t'8'8&9:
 '!!r1    )r(   r   r)   r   returnList[Document])r(   r   r)   r   r>   r?   )r(   r   r>   ztuple[str, dict, dict])__name__
__module____qualname____firstlineno____doc____annotations__r   r   r   r
   model_configr/   r7   r!   __static_attributes__r=   r1   r.   r   r      s    %	H$.E3N(!FN!)26J/6. $L*H	*M	2"r1   r   )
__future__r   typingr   r   r3   r"   langchain_core.callbacksr   r   langchain_core.documentsr   langchain_core.retrieversr	   pydanticr
   r   r=   r1   r.   <module>rN      s/    " !   . 3 I"] I"r1   