
    Ng                        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dS )
    )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dS )ChatGPTPluginRetrieverz`ChatGPT plugin` retriever.strurlbearer_token   inttop_kNzOptional[dict]filterzOptional[aiohttp.ClientSession]
aiosessionT)arbitrary_types_allowedqueryrun_managerr   returnList[Document]c                  |                      |          \  }}}t          j        |||          }|                                d         d         d         }g }|D ]~}	|	                    d          }
|	                    d|	          }|                    d          r|                    d          |d<   |                    t          |
|                     |S )	N)jsonheadersresultsr   textmetadata	source_idsourcepage_contentr   )_create_requestrequestspostr   popgetappendr   )selfr   r   r   r   r   responser   docsdcontentr   s               s/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/retrievers/chatgpt_plugin_retriever.py_get_relevant_documentsz.ChatGPTPluginRetriever._get_relevant_documents"   s     "11%88T7=4AAA--//),Q/	: 	K 	KAeeFmmGuuZ++H||K(( ?%-\\+%>%>"KKgIIIJJJJ    r   c               p  K   |                      |          \  }}}| j        st          j                    4 d {V }|                    |||          4 d {V }|                                 d {V }d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  n# 1 d {V swxY w Y   nb| j                            |||          4 d {V 	 }|                                 d {V }d d d           d {V  n# 1 d {V swxY w Y   |d         d         d         }	g }
|	D ]~}|                    d          }|                    d|          }|                    d          r|                    d          |d<   |
                    t          ||                     |
S )	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8T7 	,,.. 0 0 0 0 0 0 0'"<<W4<HH 0 0 0 0 0 0 0H (//////C0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ++W4 ,   , , , , , , , ,$MMOO++++++, , , , , , , , , , , , , , , , , , , , , , , , , , ,
 i.#I. 	K 	KAeeFmmGuuZ++H||K(( ?%-\\+%>%>"KKgIIIJJJJsG   B+B6B+
B	B+B	B++
B58B5!D
DDtuple[str, dict, dict]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   sf    !!!""k!Z 
 /:t'8::
 
 D'!!r1   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r8   )__name__
__module____qualname____doc____annotations__r   r   r   r
   model_configr0   r7   r$    r1   r/   r   r      s         %%HHH$.ENNNN(!F!!!!)26J6666.: $  L      2" " " " " "r1   r   )
__future__r   typingr   r   r3   r%   langchain_core.callbacksr   r   langchain_core.documentsr   langchain_core.retrieversr	   pydanticr
   r   rB   r1   r/   <module>rI      s    " " " " " " ! ! ! ! ! ! ! !          . - - - - - 3 3 3 3 3 3      I" I" I" I" I"] I" I" I" I" I"r1   