§
    šŠtj¿  ã                   ó�   — d dl mZmZmZmZmZ d dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ  G d„ d¦  «        Z G d	„ d
e
¦  «        ZdS )é    )ÚAnyÚDictÚListÚMappingÚOptionalN)ÚCallbackManagerForLLMRun)ÚLLM)Ú
ConfigDict)Úenforce_stop_tokensc            	       óv   — e Zd ZdZededeeef         deeef         fd„¦   «         Zededefd„¦   «         Z	dS )	ÚContentHandlerAmazonAPIGatewayzµAdapter to prepare the inputs from Langchain to a format
    that LLM model expects.

    It also provides helper function to extract
    the generated text from the model response.ÚpromptÚmodel_kwargsÚreturnc                 ó   — ||dœS )N)ÚinputsÚ
parameters© )Úclsr   r   s      úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/amazon_api_gateway.pyÚtransform_inputz.ContentHandlerAmazonAPIGateway.transform_input   s   € ð !°Ð=Ð=Ð=ó    Úresponsec                 óB   — |                      ¦   «         d         d         S )Nr   Úgenerated_text)Újson)r   r   s     r   Útransform_outputz/ContentHandlerAmazonAPIGateway.transform_output   s   € à�}Š}‰Œ˜qÔ!Ð"2Ô3Ð3r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚclassmethodÚstrr   r   r   r   r   r   r   r   r      s”   € € € € € ð3ð 3ð ð>Øð>Ø(,¨S°#¨X¬ð>à	ˆc�3ˆhŒð>ð >ð >ñ „[ð>ð
 ð4¨ð 4°ð 4ð 4ð 4ñ „[ð4ð 4ð 4r   r   c                   ó  — e Zd ZU dZeed<   	 dZee         ed<   	 dZ	ee         ed<   	  e
¦   «         Ze
ed<   	  ed¬¦  «        Zed	eeef         fd
„¦   «         Zed	efd„¦   «         Z	 	 ddedeee                  dee         ded	ef
d„ZdS )ÚAmazonAPIGatewayz6Amazon API Gateway to access LLM models hosted on AWS.Úapi_urlNÚheadersr   Úcontent_handlerÚforbid)Úextrar   c                 ó>   — | j         pi }i | j        | j        dœ¥d|i¥S )zGet the identifying parameters.)r&   r'   r   )r   r&   r'   )ÚselfÚ_model_kwargss     r   Ú_identifying_paramsz$AmazonAPIGateway._identifying_params3   s<   € ð Ô)Ð/¨Rˆð
Øœ,°4´<Ð@Ð@ð
à˜}Ð-ð
ð 	
r   c                 ó   — dS )zReturn type of llm.Úamazon_api_gatewayr   )r,   s    r   Ú	_llm_typezAmazonAPIGateway._llm_type<   s
   € ð $Ð#r   r   ÚstopÚrun_managerÚkwargsc                 ó4  — | j         pi }| j                             ||¦  «        }	 t          j        | j        | j        |¬¦  «        }| j                             |¦  «        }n$# t          $ r}	t          d|	› �¦  «        ‚d}	~	ww xY w|�t          ||¦  «        }|S )ab  Call out to Amazon API Gateway model.

        Args:
            prompt: The prompt to pass into the model.
            stop: Optional list of stop words to use when generating.

        Returns:
            The string generated by the model.

        Example:
            .. code-block:: python

                response = se("Tell me a joke.")
        )r'   r   zError raised by the service: N)r   r(   r   ÚrequestsÚpostr&   r'   r   Ú	ExceptionÚ
ValueErrorr   )
r,   r   r2   r3   r4   r-   Úpayloadr   ÚtextÚerrors
             r   Ú_callzAmazonAPIGateway._callA   sÂ   € ð* Ô)Ð/¨RˆØÔ&×6Ò6°v¸}ÑMÔMˆð		FÝ”}Ø”ØœØðñ ô ˆHð
 Ô'×8Ò8¸ÑBÔBˆDˆDøåð 	Fð 	Fð 	FÝÐD¸UÐDÐDÑEÔEÐEøøøøð	Føøøð ÐÝ& t¨TÑ2Ô2ˆDàˆs   ¦;A" Á"
BÁ,A>Á>B)NN)r   r   r    r!   r#   Ú__annotations__r'   r   r   r   r   r(   r
   Úmodel_configÚpropertyr   r   r.   r1   r   r   r=   r   r   r   r%   r%      sG  € € € € € € Ø@Ð@à€L€L�LØà"€GˆX�dŒ^Ð"Ð"Ñ"ØCà#'€L�(˜4”.Ð'Ð'Ñ'Ø1à6TÐ6TÑ6VÔ6V€OÐ3ÐVÐVÑVðð
 �:Øðñ ô €Lð ð
 W¨S°#¨XÔ%6ð 
ð 
ð 
ñ „Xð
ð ð$˜3ð $ð $ð $ñ „Xð$ð %)Ø:>ð	&ð &àð&ð �t˜C”yÔ!ð&ð Ð6Ô7ð	&ð
 ð&ð 
ð&ð &ð &ð &ð &ð &r   r%   )Útypingr   r   r   r   r   r6   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úpydanticr
   Úlangchain_community.llms.utilsr   r   r%   r   r   r   ú<module>rF      sæ   ðØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €€€Ø =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð à >Ð >Ð >Ð >Ð >Ð >ð4ð 4ð 4ð 4ð 4ñ 4ô 4ð 4ð$Jð Jð Jð Jð J�sñ Jô Jð Jð Jð Jr   