§
    šŠtj99  ã                   ó  — d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZmZmZ  ej        e¦  «        Zd	Z ed
dd¬¦  «         G d„ de¦  «        ¦   «         ZdS )é    N)ÚAnyÚAsyncIteratorÚDictÚIteratorÚListÚMappingÚOptional)Ú
deprecated)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚLLM)ÚGenerationChunk)Úget_pydantic_field_namesÚpre_init)Ú
ConfigDictÚFieldÚmodel_validator)ztext2text-generationztext-generationÚsummarizationÚconversationalz0.0.37z1.0z)langchain_huggingface.HuggingFaceEndpoint)ÚsinceÚremovalÚalternative_importc                   óà  — e Zd ZU dZdZee         ed<   	 dZee         ed<   	 dZ	ee         ed<   dZ
eed<   	 dZee         ed<   	 d	Zee         ed
<   	 d	Zee         ed<   	 dZee         ed<   	 dZee         ed<   	 dZeed<   	 dZee         ed<   	  ee¬¦  «        Zee         ed<   	 dZee         ed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	  ee¬¦  «        Z e!ee"f         ed<   	  ee¬¦  «        Z#e!ee"f         ed<   	 eed<   dZ$e"ed<   dZ%e"ed <   dZ&ee         ed!<   	  e'd"¬#¦  «        Z( e)d$¬%¦  «        e*d&e!ee"f         d'e"fd(„¦   «         ¦   «         Z+e,d&e!d'e!fd)„¦   «         Z-e.d'e!ee"f         fd*„¦   «         Z/e.d'e0ee"f         fd+„¦   «         Z1e.d'efd,„¦   «         Z2d-eee                  d.e"d'e!ee"f         fd/„Z3	 	 d7d0ed1eee                  d2ee4         d.e"d'ef
d3„Z5	 	 d7d0ed1eee                  d2ee6         d.e"d'ef
d4„Z7	 	 d7d0ed1eee                  d2ee4         d.e"d'e8e9         f
d5„Z:	 	 d7d0ed1eee                  d2ee6         d.e"d'e;e9         f
d6„Z<dS )8ÚHuggingFaceEndpointa£  
    HuggingFace Endpoint.

    To use this class, you should have installed the ``huggingface_hub`` package, and
    the environment variable ``HUGGINGFACEHUB_API_TOKEN`` set with your API token,
    or given as a named parameter to the constructor.

    Example:
        .. code-block:: python

            # Basic Example (no streaming)
            llm = HuggingFaceEndpoint(
                endpoint_url="http://localhost:8010/",
                max_new_tokens=512,
                top_k=10,
                top_p=0.95,
                typical_p=0.95,
                temperature=0.01,
                repetition_penalty=1.03,
                huggingfacehub_api_token="my-api-key"
            )
            print(llm.invoke("What is Deep Learning?"))

            # Streaming response example
            from langchain_core.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

            callbacks = [StreamingStdOutCallbackHandler()]
            llm = HuggingFaceEndpoint(
                endpoint_url="http://localhost:8010/",
                max_new_tokens=512,
                top_k=10,
                top_p=0.95,
                typical_p=0.95,
                temperature=0.01,
                repetition_penalty=1.03,
                callbacks=callbacks,
                streaming=True,
                huggingfacehub_api_token="my-api-key"
            )
            print(llm.invoke("What is Deep Learning?"))

    NÚendpoint_urlÚrepo_idÚhuggingfacehub_api_tokeni   Úmax_new_tokensÚtop_kgffffffî?Útop_pÚ	typical_pgš™™™™™é?ÚtemperatureÚrepetition_penaltyFÚreturn_full_textÚtruncate)Údefault_factoryÚstop_sequencesÚseedÚ Úinference_server_urléx   ÚtimeoutÚ	streamingÚ	do_sampleÚ	watermarkÚserver_kwargsÚmodel_kwargsÚmodelÚclientÚasync_clientÚtaskÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc           
      óZ  — t          | ¦  «        }|                     di ¦  «        }t          |¦  «        D ]Y}||v rt          d|› d�¦  «        ‚||vr<t                               d|› d|› d|› d�¦  «         |                     |¦  «        ||<   ŒZ|                     |                     ¦   «         ¦  «        }|rt          d|› d	�¦  «        ‚||d<   d
|vrd|vrt          d¦  «        ‚d
|v rd|v rt          d¦  «        ‚|                     d
¦  «        p|                     d¦  «        |d<   |S )z>Build extra kwargs from additional params that were passed in.r1   zFound z supplied twice.z	WARNING! z/ is not default parameter.
                    zL was transferred to model_kwargs.
                    Please make sure that z is what you intended.zParameters za should be specified explicitly. Instead they were passed in as part of `model_kwargs` parameter.r   r   z<Please specify an `endpoint_url` or `repo_id` for the model.zAPlease specify either an `endpoint_url` OR a `repo_id`, not both.r2   )	r   ÚgetÚlistÚ
ValueErrorÚloggerÚwarningÚpopÚintersectionÚkeys)Úclsr:   Úall_required_field_namesr7   Ú
field_nameÚinvalid_model_kwargss         úk/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/huggingface_endpoint.pyÚbuild_extrazHuggingFaceEndpoint.build_extra…   s²  € õ $<¸CÑ#@Ô#@Ð Ø—
’
˜>¨2Ñ.Ô.ˆÝ˜v™,œ,ð 		;ð 		;ˆJØ˜UÐ"Ð"Ý Ð!F¨*Ð!FÐ!FÐ!FÑGÔGÐGØÐ!9Ð9Ð9Ý—’ðP *ð Pð PØðPð Pà+5ðPð Pð Pñô ð ð
 %+§J¢J¨zÑ$:Ô$:��jÑ!øà7×DÒDÀUÇZÂZÁ\Ä\ÑRÔRÐØð 	ÝðTÐ2ð Tð Tð Tñô ð ð
 "'ˆˆ~ÑØ Ð'Ð'¨I¸VÐ,CÐ,CÝØNñô ð ð ˜VÐ#Ð#¨	°VÐ(;Ð(;ÝØSñô ð ð !Ÿ*š* ^Ñ4Ô4ÐM¸¿
º
À9Ñ8MÔ8Mˆˆw‰Øˆó    c                 ó€  — 	 ddl m} n# t          $ r t          d¦  «        ‚w xY w|d         pt          j        d¦  «        }|�0	  ||¬¦  «         n"# t
          $ r}t          d¦  «        |‚d}~ww xY wdd	l m}m}  |d|d
         |d         |dœ|d         ¤Ž|d<    |d|d
         |d         |dœ|d         ¤Ž|d<   |S )zCValidate that package is installed and that the API token is valid.r   )ÚloginzfCould not import huggingface_hub python package. Please install it with `pip install huggingface_hub`.r   ÚHUGGINGFACEHUB_API_TOKENN)ÚtokenzICould not authenticate with huggingface_hub. Please check your API token.)ÚAsyncInferenceClientÚInferenceClientr2   r,   )r2   r,   rO   r0   r3   r4   © )	Úhuggingface_hubrM   ÚImportErrorÚosÚgetenvÚ	Exceptionr?   rP   rQ   )rE   r:   rM   r   ÚerP   rQ   s          rI   Úvalidate_environmentz(HuggingFaceEndpoint.validate_environment©   s{  € ð	Ø-Ð-Ð-Ð-Ð-Ð-Ð-øåð 	ð 	ð 	ÝðHñô ð ð	øøøð
 $*Ð*DÔ#Eð $
ÍÌØ&ñJ
ô J
Ð ð $Ð/ðØ�Ð4Ð5Ñ5Ô5Ð5Ð5øÝð ð ð Ý ð3ñô ð ðøøøøðøøøð 	JÐIÐIÐIÐIÐIÐIÐIà*˜?ð 
Ø˜”/Ø˜9Ô%Ø*ð
ð 
ð �_Ô%ð	
ð 
ˆˆxÑð "6Ð!5ð "
Ø˜”/Ø˜9Ô%Ø*ð"
ð "
ð �_Ô%ð	"
ð "
ˆˆ~Ñð ˆs    ‚	 ‰#ÁA Á
A1ÁA,Á,A1c                 ó¦   — | j         | j        | j        | j        | j        | j        | j        | j        | j        | j	        | j
        | j        dœ| j        ¥S )zEGet the default parameters for calling text generation inference API.)r   r   r    r!   r"   r#   r$   r%   r'   r(   r.   r/   )r   r   r    r!   r"   r#   r$   r%   r'   r(   r.   r/   r1   ©Úselfs    rI   Ú_default_paramsz#HuggingFaceEndpoint._default_paramsÑ   sa   € ð #Ô1Ø”ZØ”ZØœØÔ+Ø"&Ô"9Ø $Ô 5ØœØ"Ô1Ø”IØœØœð
ð 
ð Ôð
ð 	
rK   c                 ó>   — | j         pi }i | j        | j        dœ¥d|i¥S )zGet the identifying parameters.)r   r5   r1   )r1   r   r5   )r\   Ú_model_kwargss     rI   Ú_identifying_paramsz'HuggingFaceEndpoint._identifying_paramsä   s=   € ð Ô)Ð/¨Rˆð
Ø#Ô0¸$¼)ÐDÐDð
à˜}Ð-ð
ð 	
rK   c                 ó   — dS )zReturn type of llm.Úhuggingface_endpointrR   r[   s    rI   Ú	_llm_typezHuggingFaceEndpoint._llm_typeí   s
   € ð &Ð%rK   Úruntime_stopÚkwargsc                 ó<   — i | j         ¥|¥}|d         |pg z   |d<   |S )Nr'   )r]   )r\   rd   re   Úparamss       rI   Ú_invocation_paramsz&HuggingFaceEndpoint._invocation_paramsò   s6   € ð 4�DÔ(Ð3¨FÐ3ˆØ#)Ð*:Ô#;¸|Ð?QÈrÑ#RˆÐÑ ØˆrK   ÚpromptÚstopÚrun_managerc                 ó0  —  | j         |fi |¤Ž}| j        r!d} | j        |||fi |¤ŽD ]}||j        z  }Œ|S |d         |d<   | j                             ||dœd| j        ¬¦  «        }	 t          j        | 	                    ¦   «         ¦  «        d         d         }	n<# t          $ r/ t          j        | 	                    ¦   «         ¦  «        d         }	Y nw xY w|d         D ]6}
|	t          |
¦  «         d	…         |
k    r|	d	t          |
¦  «         …         }	Œ7|	S )
z1Call out to HuggingFace Hub's inference endpoint.r)   r'   rj   ©ÚinputsÚ
parametersF©ÚjsonÚstreamr5   r   Úgenerated_textN)rh   r-   Ú_streamÚtextr3   Úpostr5   rq   ÚloadsÚdecodeÚKeyErrorÚlen©r\   ri   rj   rk   re   Úinvocation_paramsÚ
completionÚchunkÚresponseÚresponse_textÚstop_seqs              rI   Ú_callzHuggingFaceEndpoint._callù   ss  € ð 4˜DÔ3°DÐCÐC¸FÐCÐCÐØŒ>ð 	!ØˆJØ%˜œ f¨d°KÐUÐUÐCTÐUÐUð )ð )�Ø˜eœjÑ(�
�
ØÐà(9Ø ô)Ð˜fÑ%ð ”{×'Ò'Ø &Ð6GÐHÐHØØ”Yð (ñ ô ˆHð
PÝ $¤
¨8¯?ª?Ñ+<Ô+<Ñ =Ô =¸aÔ @ÐAQÔ R��øÝð Pð Pð PÝ $¤
¨8¯?ª?Ñ+<Ô+<Ñ =Ô =Ð>NÔ O���ðPøøøð
 .Ð.>Ô?ð Dð D�Ø ¥# h¡-¤- Ð!1Ð!1Ô2°hÒ>Ð>Ø$1Ð2BµS¸±]´]°NÐ2BÔ$C�MøØ Ð s   Á(2B Â6CÃCc              ‹   óL  K  —  | j         |fi |¤Ž}| j        r'd} | j        |||fi |¤Ž2 3 d {V —†}||j        z  }Œ6 |S |d         |d<   | j                             ||dœd| j        ¬¦  «        ƒ d {V —†}	 t          j        | 	                    ¦   «         ¦  «        d         d         }	n<# t          $ r/ t          j        | 	                    ¦   «         ¦  «        d         }	Y nw xY w|d         D ]6}
|	t          |
¦  «         d …         |
k    r|	d t          |
¦  «         …         }	Œ7|	S )	Nr)   r'   rj   rm   Frp   r   rs   )rh   r-   Ú_astreamru   r4   rv   r5   rq   rw   rx   ry   rz   r{   s              rI   Ú_acallzHuggingFaceEndpoint._acall  s½  è è € ð 4˜DÔ3°DÐCÐC¸FÐCÐCÐØŒ>ð 	!ØˆJØ,˜tœ}Ø˜˜kð ð  Ø->ð ð  ð )ð )ð )ð )ð )ð )ð )�eð ˜eœjÑ(�
�
ð ð Ðà(9Ð:JÔ(KÐ˜fÑ%Ø!Ô.×3Ò3Ø &Ð6GÐHÐHØØ”Yð 4ñ ô ð ð ð ð ð ð ˆHð
PÝ $¤
¨8¯?ª?Ñ+<Ô+<Ñ =Ô =¸aÔ @ÐAQÔ R��øÝð Pð Pð PÝ $¤
¨8¯?ª?Ñ+<Ô+<Ñ =Ô =Ð>NÔ O���ðPøøøð
 .Ð.>Ô?ð Dð D�Ø ¥# h¡-¤- Ð!1Ð!1Ô2°hÒ>Ð>Ø$1Ð2BµS¸±]´]°NÐ2BÔ$C�MøØ Ð s   ª<Á62B) Â)6C"Ã!C"c              +   ó6  K  —  | j         |fi |¤Ž} | j        j        |fi |¤ddi¤ŽD ]p}d }|d         D ]}||v r|}Œ	d }	|r|d |                     |¦  «        …         }	n|}	|	r0t	          |	¬¦  «        }
|r|                     |
j        ¦  «         |
V — |r d S Œqd S ©Nrr   Tr'   )ru   )rh   r3   Útext_generationÚindexr   Úon_llm_new_tokenru   ©r\   ri   rj   rk   re   r|   r   Ústop_seq_foundr�   ru   r~   s              rI   rt   zHuggingFaceEndpoint._stream>  s%  è è € ð 4˜DÔ3°DÐCÐC¸FÐCÐCÐà3˜œÔ3Øð
ð 
Ø'ð
ð 
Ø04ð
ð 
ð 
ð 	ð 	ˆHð -1ˆNØ-Ð.>Ô?ð .ð .�Ø˜xÐ'Ð'Ø%-�Nøð #'ˆDØð  ØÐ @ (§.¢.°Ñ"@Ô"@Ð @ÔA��à�ð ð Ý'¨TÐ2Ñ2Ô2�àð =Ø×0Ò0°´Ñ<Ô<Ð<Ø���ð ð Ø��ðð3	ð 	rK   c                ó\  K  —  | j         |fi |¤Ž} | j        j        |fi |¤ddi¤Žƒ d {V —†2 3 d {V —†}d }|d         D ]}||v r|}Œ	d }	|r|d |                     |¦  «        …         }	n|}	|	r7t	          |	¬¦  «        }
|r |                     |
j        ¦  «        ƒ d {V —† |
W V — |r d S Œ}6 d S r‡   )rh   r4   rˆ   r‰   r   rŠ   ru   r‹   s              rI   r„   zHuggingFaceEndpoint._astreamc  sw  è è € ð 4˜DÔ3°DÐCÐC¸FÐCÐCÐØ$E DÔ$5Ô$EØð%
ð %
Ø'ð%
ð %
Ø04ð%
ð %
ð %
ð 
ð 
ð 
ð 
ð 
ð 
ð 	ð 	ð 	ð 	ð 	ð 	ð 	�(ð -1ˆNØ-Ð.>Ô?ð .ð .�Ø˜xÐ'Ð'Ø%-�Nøð #'ˆDØð  ØÐ @ (§.¢.°Ñ"@Ô"@Ð @ÔA��à�ð ð Ý'¨TÐ2Ñ2Ô2�àð CØ%×6Ò6°u´zÑBÔBÐBÐBÐBÐBÐBÐBÐBØ����ð ð Ø��ðð3
ð 
ð 
s   ®B+)NN)=Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   ÚstrÚ__annotations__r   r   r   Úintr   r    Úfloatr!   r"   r#   r$   Úboolr%   r   r>   r'   r   r(   r*   r,   r-   r.   r/   Údictr0   r   r   r1   r3   r4   r5   r   Úmodel_configr   ÚclassmethodrJ   r   rY   Úpropertyr]   r   r`   rc   rh   r   r‚   r   r…   r   r   rt   r   r„   rR   rK   rI   r   r      s<  € € € € € € ð)ð )ðV #'€L�(˜3”-Ð&Ð&Ñ&ØØ!€GˆX�cŒ]Ð!Ð!Ñ!ØØ.2Ð˜h sœmÐ2Ð2Ñ2Ø€N�CÐÐÑØ,Ø€Eˆ8�CŒ=ÐÐÑðà!€Eˆ8�EŒ?Ð!Ð!Ñ!ðAà!%€Iˆx˜ŒÐ%Ð%Ñ%ðKà#&€K�˜%”Ð&Ð&Ñ&Ø;Ø*.Ð˜ œÐ.Ð.Ñ.ðPà"Ð�dÐ"Ð"Ñ"Ø=Ø"€Hˆh�sŒmÐ"Ð"Ñ"Ø2Ø % °dÐ ;Ñ ;Ô ;€N�D˜”IÐ;Ð;Ñ;ØMØ€Dˆ(�3Œ-ÐÐÑØØ "Ð˜#Ð"Ð"Ñ"Ø5Ø€GˆSÐÐÑØØ€IˆtÐÐÑØ?Ø€IˆtÐÐÑØ"Ø€IˆtÐÐÑð*à$) E¸$Ð$?Ñ$?Ô$?€M�4˜˜S˜”>Ð?Ð?Ñ?ØXØ#( 5¸Ð#>Ñ#>Ô#>€L�$�s˜C�x”.Ð>Ð>Ñ>ØNØ€J€J�JØ€FˆCÐÐÑØ€L�#ÐÐÑØ€Dˆ(�3Œ-ÐÐÑðIð �:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð   c¨3 h¤ð  °Cð  ð  ð  ñ „[ñ $Ô#ð ðD ð%¨$ð %°4ð %ð %ð %ñ „Xð%ðN ð
  c¨3 h¤ð 
ð 
ð 
ñ „Xð
ð$ ð
 W¨S°#¨XÔ%6ð 
ð 
ð 
ñ „Xð
ð ð&˜3ð &ð &ð &ñ „Xð&ðØ$ T¨#¤YÔ/ðØ;>ðà	ˆc�3ˆhŒðð ð ð ð %)Ø:>ð	!!ð !!àð!!ð �t˜C”yÔ!ð!!ð Ð6Ô7ð	!!ð
 ð!!ð 
ð!!ð !!ð !!ð !!ðL %)Ø?Cð	 !ð  !àð !ð �t˜C”yÔ!ð !ð Ð;Ô<ð	 !ð
 ð !ð 
ð !ð  !ð  !ð  !ðJ %)Ø:>ð	#ð #àð#ð �t˜C”yÔ!ð#ð Ð6Ô7ð	#ð
 ð#ð 
�/Ô	"ð#ð #ð #ð #ðP %)Ø?Cð	"ð "àð"ð �t˜C”yÔ!ð"ð Ð;Ô<ð	"ð
 ð"ð 
�Ô	'ð"ð "ð "ð "ð "ð "rK   r   ) rq   ÚloggingrU   Útypingr   r   r   r   r   r   r	   Úlangchain_core._api.deprecationr
   Úlangchain_core.callbacksr   r   Ú#langchain_core.language_models.llmsr   Úlangchain_core.outputsr   Úlangchain_core.utilsr   r   Úpydanticr   r   r   Ú	getLoggerrŽ   r@   ÚVALID_TASKSr   rR   rK   rI   ú<module>r¥      s~  ðØ €€€Ø €€€Ø 	€	€	€	Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nà 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à	ˆÔ	˜8Ñ	$Ô	$€ð€ð €Ø
ØØBðñ ô ð
cð cð cð cð c˜#ñ cô cñô ð
cð cð crK   