§
    æ˜ºhO
  ã                   óR   — d dl Z d dlmZmZmZ d dlmZmZmZ  G d„ de¦  «        Z	dS )é    N)ÚAnyÚDictÚLiteral)Ú	BaseModelÚFieldÚroot_validatorc                   óÎ   — e Zd ZU dZeed<   dZeed<   	 dZe	d         ed<   	  e
e¬¦  «        Zeeef         ed	<   	 d
Zeed<   	  e¦   «         dedefd„¦   «         Zdedefd„ZdS )ÚStackExchangeAPIWrapperzWrapper for Stack Exchange API.Úclienté   Úmax_resultsÚall)r   ÚtitleÚbodyÚ
query_type)Údefault_factoryÚfetch_paramsz

Úresult_separatorÚvaluesÚreturnc                 ól   — 	 ddl m}  |d¦  «        |d<   n# t          $ r t          d¦  «        ‚w xY w|S )z1Validate that the required Python package exists.r   )ÚStackAPIÚstackoverflowr   z^The 'stackapi' Python package is not installed. Please install it with `pip install stackapi`.)Ústackapir   ÚImportError)Úclsr   r   s      ús/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/utilities/stackexchange.pyÚvalidate_environmentz,StackExchangeAPIWrapper.validate_environment   sj   € ð	Ø)Ð)Ð)Ð)Ð)Ð)à'˜x¨Ñ8Ô8ˆF�8ÑÐøÝð 	ð 	ð 	ÝðAñô ð ð	øøøð
 ˆs   ‚ —1Úqueryc                 ó8  ‡— | j         dk    rdn| j         } | j        j        	 di ||i¤| j        ¤Ž}t	          |d         ¦  «        dk     rd|› d�S d„ |d         D ¦   «         d	| j        …         }d
„ |d         D ¦   «         }g }|D ]{Šd‰d         › d‰d         › �}ˆfd„|D ¦   «         }d„ |D ¦   «         }	|r4|	r|	d         n|d         }
t          j        |
d         ¦  «        }|d|› �z  }|                     |¦  «         Œ|| j	         
                    |¦  «        S )z6Run query through StackExchange API and parse results.r   Úqúsearch/excerptsÚitemsé   zNo relevant results found for 'z' on Stack Overflow.c                 ó*   — g | ]}|d          dk    ¯|‘ŒS )Ú	item_typeÚquestion© ©Ú.0Úitems     r   ú
<listcomp>z/StackExchangeAPIWrapper.run.<locals>.<listcomp>-   s.   € ð 
ð 
ð 
Ø°°[Ô0AÀZÒ0OÐ0OˆDÐ0OÐ0OÐ0Oó    Nc                 ó*   — g | ]}|d          dk    ¯|‘ŒS )r&   Úanswerr(   r)   s     r   r,   z/StackExchangeAPIWrapper.run.<locals>.<listcomp>0   s'   € ÐUÐUÐU˜D°t¸KÔ7HÈHÒ7TÐ7T�4Ð7TÐ7TÐ7Tr-   z
Question: r   ú
Úexcerptc                 ó8   •— g | ]}|d          ‰d          k    ¯|‘ŒS )Úquestion_idr(   )r*   r/   r'   s     €r   r,   z/StackExchangeAPIWrapper.run.<locals>.<listcomp>4   s8   ø€ ð  ð  ð  àØ˜-Ô(¨H°]Ô,CÒCÐCð àCÐCÐCr-   c                 ó"   — g | ]}|d          ¯
|‘ŒS )Úis_acceptedr(   )r*   r/   s     r   r,   z/StackExchangeAPIWrapper.run.<locals>.<listcomp>9   s2   € ð  ð  ð  Ø!¸ÀÔ9Nð Øð ð  ð  r-   r   z	
Answer: )r"   )r   r   Úfetchr   Úlenr   ÚhtmlÚunescapeÚappendr   Újoin)Úselfr   Ú	query_keyÚoutputÚ	questionsÚanswersÚresultsÚres_textÚrelevant_answersÚaccepted_answersÚ
top_answerr1   r'   s               @r   ÚrunzStackExchangeAPIWrapper.run$   sÁ  ø€ ð  œ?¨eÒ3Ð3�C�C¸¼ˆ	Ø"�”Ô"Øð
ð 
Ø"+¨UÐ!3ð
Ø7;Ô7Hð
ð 
ˆõ ˆv�gŒÑÔ !Ò#Ð#ØP°UÐPÐPÐPÐPð
ð 
Ø# Gœ_ð
ñ 
ô 
à
ˆDÔÐ
ôˆ	ð VÐU F¨7¤OÐUÑUÔUˆØˆØ!ð 	%ð 	%ˆHØN H¨WÔ$5ÐNÐN¸À)Ô9LÐNÐNˆHð ð  ð  ð  à%ð ñ  ô  Ðð
 ð  Ø%5ð ñ  ô  Ðð  ð 3à+;ÐTÐ$ QÔ'Ð'ÐAQÐRSÔATð õ œ-¨
°9Ô(=Ñ>Ô>�ØÐ2¨Ð2Ð2Ñ2�Ø�NŠN˜8Ñ$Ô$Ð$Ð$àÔ$×)Ò)¨'Ñ2Ô2Ð2r-   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   Úintr   r   r   Údictr   r   Ústrr   r   r   rF   r(   r-   r   r
   r
      sè   € € € € € € Ø)Ð)à€K€K�KØ€K�ÐÐÑØ5Ø27€J�Ð.Ô/Ð7Ð7Ñ7ðð $) 5¸Ð#>Ñ#>Ô#>€L�$�s˜C�x”.Ð>Ð>Ñ>Ø6Ø"Ð�cÐ"Ð"Ñ"Ø2à€^ÑÔð¨$ð °4ð ð ð ñ Ôðð 3˜ð  3 ð  3ð  3ð  3ð  3ð  3ð  3r-   r
   )
r8   Útypingr   r   r   Úlangchain_core.pydantic_v1r   r   r   r
   r(   r-   r   ú<module>rQ      s~   ðØ €€€Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gð=3ð =3ð =3ð =3ð =3˜iñ =3ô =3ð =3ð =3ð =3r-   