§
    }Štj—:  ã                   ó\  — U d Z ddlZddlZddl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mZmZmZmZmZm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m Z m!Z! d
dl"m#Z#m$Z$ erddl%m&Z& e'Z(ee'ef         Z)ee*ee)e(de+e,f         Z-ddhZ. ej/        e0¦  «        Z1e
 G d„ d¦  «        ¦   «         Z2 G d„ de*¦  «        Z3d„ Z4d„ Z5ede-de3fd„¦   «         Z6eded         ded         fd„¦   «         Z6de-dz  de3dz  fd„Z6de-de'fd„Z7de-de'de'fd„Z8de'ddfd„Z9de*de:fd „Z;de*de<fd!„Z=de*ddfd"„Z>d#e*e<z  de<fd$„Z?d%ee'         d&e@dee'         ee$         z  fd'„ZAd%ee'         d&e@dee'         ee$         z  fd(„ZBd)e'd&e@de'e$z  dz  fd*„ZCd+ee'         dee#         fd,„ZDd+ee'         dee#         fd-„ZEd)e'de#dz  fd.„ZFd/ejG        d#ejH        dee'         fd0„ZIi ZJe<e'dz  e:e'         f         eKd1<   d2e'dz  d3e:e'         ddfd4„ZLd2e'dz  de:e'         fd5„ZMd6edefd7„ZNd8e'dz  d9e'dz  defd:„ZOdS );zEContains utilities used by both the sync and async inference clients.é    N)ÚAsyncIterableÚIterable)Ú	dataclass)ÚPath)ÚTYPE_CHECKINGÚAnyÚBinaryIOÚLiteralÚNoReturnÚUnionÚoverload)ÚGenerationErrorÚHfHubHTTPErrorÚIncompleteGenerationErrorÚOverloadedErrorÚTextGenerationErrorÚUnknownErrorÚValidationErroré   )Úget_sessionÚis_numpy_availableÚis_pillow_availableé   )ÚChatCompletionStreamOutputÚTextGenerationStreamOutput©ÚImager   ztext-to-imagezimage-to-imagec                   óz   — e Zd ZU eed<   eed<   edz  ed<   eez  ez  dz  ed<   edz  ed<   eeef         ed<   dS )ÚRequestParametersÚurlÚtaskNÚmodelÚjsonÚdataÚheaders)	Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__ÚdictÚlistÚbytesr   © ó    ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/huggingface_hub/inference/_common.pyr   r   8   sr   € € € € € € à	€H€H�HØ
€I€I�IØ�‰:ÐÐÑØ
�‰*�tÑ
˜dÑ
"Ð"Ð"Ñ"Ø
�$‰,ÐÐÑØ�#�s�(Œ^ÐÐÑÐÐr/   r   c                   óF   ‡ — e Zd ZU dZedz  ed<   ddededz  fˆ fd„Zˆ xZS )Ú	MimeBytesa&  
    A bytes object with a mime type.
    To be returned by `_prepare_payload_open_as_mime_bytes` in subclasses.

    Example:
    ```python
        >>> b = MimeBytes(b"hello", "text/plain")
        >>> isinstance(b, bytes)
        True
        >>> b.mime_type
        'text/plain'
    ```
    NÚ	mime_typer$   c                 ó    •— t          ¦   «                              | |¦  «        }||_        t          |t          ¦  «        r|€|j        |_        |S ©N)ÚsuperÚ__new__r3   Ú
isinstancer2   )Úclsr$   r3   ÚobjÚ	__class__s       €r0   r7   zMimeBytes.__new__S   sF   ø€ Ý‰gŒg�oŠo˜c 4Ñ(Ô(ˆØ!ˆŒÝ�d�IÑ&Ô&ð 	+¨9Ð+<Ø œNˆCŒMØˆ
r/   r5   )	r&   r'   r(   Ú__doc__r)   r*   r-   r7   Ú__classcell__)r;   s   @r0   r2   r2   B   sr   ø€ € € € € € ðð ð �T‰zÐÐÑðð ˜5ð ¨S°4©Zð ð ð ð ð ð ð ð ð ð r/   r2   c                  óH   — t          ¦   «         st          d¦  «        ‚ddl} | S )z.Make sure `numpy` is installed on the machine.zGPlease install numpy to use deal with embeddings (`pip install numpy`).r   N)r   ÚImportErrorÚnumpy)r@   s    r0   Ú_import_numpyrA   ^   s.   € åÑÔð eÝÐcÑdÔdÐdØ€L€L€Là€Lr/   c                  óL   — t          ¦   «         st          d¦  «        ‚ddlm}  | S )z,Make sure `PIL` is installed on the machine.z¸Please install Pillow to use deal with images (`pip install Pillow`). If you don't want the image to be post-processed, use `client.post(...)` and get the raw response from the server.r   r   )r   r?   ÚPILr   r   s    r0   Ú_import_pil_imagerD   g   sA   € åÑ Ô ð 
Ýð`ñ
ô 
ð 	
ð ÐÐÐÐÐà€Lr/   ÚcontentÚreturnc                 ó   — d S r5   r.   ©rE   s    r0   Ú_open_as_mime_bytesrI   v   s   € Ø9<¸r/   c                 ó   — d S r5   r.   rH   s    r0   rI   rI   z   s   € ØBEÀ#r/   c                 ó˜  — | €dS t          | t          ¦  «        rt          | ¦  «        S t          | t          t          f¦  «        rt          t          | ¦  «        ¦  «        S t          | d¦  «        r¡t                               d¦  «         |                      ¦   «         }t          | d¦  «        r,t          j
        t          | j        ¦  «        ¦  «        d         nd}t          |t          ¦  «        rt          d¦  «        ‚t          ||¬¦  «        S t          | t          ¦  «        rê|                      d¦  «        s|                      d	¦  «        rŠt                               d
| › �¦  «         t          ¦   «                              | ¦  «        }|j                             d¦  «        }|€t          j
        | ¦  «        d         }t          |j        |¬¦  «        S t'          | ¦  «        } |                      ¦   «         st+          d| › d�¦  «        ‚t          | t&          ¦  «        rXt                               d| › �¦  «         t          |                      ¦   «         t          j
        | ¦  «        d         ¬¦  «        S t/          ¦   «         r ddlm} t          | |j        ¦  «        r…t                               d¦  «         t5          j        ¦   «         }| j        pd}|                      ||¬¦  «         t          |                     ¦   «         d|                     ¦   «         › �¬¦  «        S t          dtA          | ¦  «        › d�¦  «        ‚)z‡Open `content` as a binary file, either from a URL, a local path, raw bytes, or a PIL Image.

    Do nothing if `content` is None.
    NÚreadzReading content from BinaryIOÚnamer   z3Expected binary stream (bytes), but got text stream)r3   úhttps://úhttp://zDownloading content from zContent-TypezFile not found at z�. If `data` is a string, it must either be a URL or a path to a local file. To pass raw content, please encode it as bytes first.zOpening content from r   zConverting PIL Image to bytesÚPNG)Úformatzimage/zUnsupported content type: zl. Expected one of: bytes, bytearray, BinaryIO, memoryview, Path, str (URL or file path), or PIL.Image.Image.)!r8   r-   r2   Ú	bytearrayÚ
memoryviewÚhasattrÚloggerÚdebugrL   Ú	mimetypesÚ
guess_typer)   rM   Ú	TypeErrorÚ
startswithr   Úgetr%   rE   r   ÚexistsÚFileNotFoundErrorÚ
read_bytesr   rC   r   ÚioÚBytesIOrQ   ÚsaveÚgetvalueÚlowerÚtype)rE   r$   r3   Úresponser   ÚbufferrQ   s          r0   rI   rI   ~   s8  € ð €Øˆtõ �'�5Ñ!Ô!ð "Ý˜Ñ!Ô!Ð!õ �'�I¥zÐ2Ñ3Ô3ð )Ý�˜w™œÑ(Ô(Ð(õ ˆw˜ÑÔð 4Ý�ŠÐ4Ñ5Ô5Ð5Ø�|Š|‰~Œ~ˆÝBIÈ'ÐSYÑBZÔBZÐd•IÔ(­¨W¬\Ñ):Ô):Ñ;Ô;¸AÔ>Ð>Ð`dˆ	Ý�d�CÑ Ô ð 	SÝÐQÑRÔRÐRÝ˜¨Ð3Ñ3Ô3Ð3õ �'�3ÑÔð Ø×Ò˜jÑ)Ô)ð 	D¨W×-?Ò-?À	Ñ-JÔ-Jð 	DÝ�LŠLÐ>°WÐ>Ð>Ñ?Ô?Ð?Ý"‘}”}×(Ò(¨Ñ1Ô1ˆHØ Ô(×,Ò,¨^Ñ<Ô<ˆIØÐ Ý%Ô0°Ñ9Ô9¸!Ô<�	Ý˜XÔ-¸ÐCÑCÔCÐCå�w‘-”-ˆØ�~Š~ÑÔð 	Ý#ðO Wð Oð Oð Oñô ð õ �'�4Ñ Ô ð [Ý�ŠÐ6¨WÐ6Ð6Ñ7Ô7Ð7Ý˜×+Ò+Ñ-Ô-½Ô9MÈgÑ9VÔ9VÐWXÔ9YÐZÑZÔZÐZõ ÑÔð UØÐÐÐÐÐå�g˜uœ{Ñ+Ô+ð 	UÝ�LŠLÐ8Ñ9Ô9Ð9Ý”Z‘\”\ˆFØ”^Ð, uˆFØ�LŠL˜¨ˆLÑ/Ô/Ð/Ý˜VŸ_š_Ñ.Ô.Ð:SÀ6Ç<Â<Á>Ä>Ð:SÐ:SÐTÑTÔTÐTõ ð	u¥T¨'¡]¤]ð 	uð 	uð 	uñô ð r/   c                 ól   — t          | ¦  «        }t          j        |¦  «                             ¦   «         S )z\Encode a raw file (image, audio) into base64. Can be bytes, an opened file, a path or a URL.)rI   Úbase64Ú	b64encodeÚdecode)rE   Ú	raw_bytess     r0   Ú_b64_encoderl   À   s,   € å# GÑ,Ô,€IÝÔ˜IÑ&Ô&×-Ò-Ñ/Ô/Ð/r/   Údefault_mime_typec                 óæ   — t          | t          ¦  «        r|                      d¦  «        r| S t          | ¦  «        }|j        p|}t          j        |¦  «                             ¦   «         }d|› d|› �S )N)rO   rN   údata:ro   z;base64,)r8   r)   rZ   rI   r3   rh   ri   rj   )rE   rm   rk   r3   Úencoded_datas        r0   Ú_as_urlrq   Æ   s„   € Ý�'�3ÑÔð  G×$6Ò$6Ð7WÑ$XÔ$Xð Øˆõ $ GÑ,Ô,€Ið Ô#Ð8Ð'8€Iõ Ô# IÑ.Ô.×5Ò5Ñ7Ô7€Lð 5�9Ð4Ð4 lÐ4Ð4Ð4r/   Úencoded_imagec                 ó†   — t          ¦   «         } |j        t          j        t	          j        | ¦  «        ¦  «        ¦  «        S )z/Parse a base64-encoded string into a PIL Image.)rD   Úopenr_   r`   rh   Ú	b64decode)rr   r   s     r0   Ú_b64_to_imagerv   ×   s4   € åÑÔ€EØˆ5Œ:•b”j¥Ô!1°-Ñ!@Ô!@ÑAÔAÑBÔBÐBr/   c                 óN   — t          j        |                      ¦   «         ¦  «        S )ac  Parse bytes from a Response object into a Python list.

    Expects the response body to be JSON-encoded data.

    NOTE: This is exactly the same implementation as `_bytes_to_dict` and will not complain if the returned data is a
    dictionary. The only advantage of having both is to help the user (and mypy) understand what kind of data to expect.
    ©r#   Úloadsrj   rH   s    r0   Ú_bytes_to_listrz   Ý   ó   € õ Œ:�g—n’nÑ&Ô&Ñ'Ô'Ð'r/   c                 óN   — t          j        |                      ¦   «         ¦  «        S )ac  Parse bytes from a Response object into a Python dictionary.

    Expects the response body to be JSON-encoded data.

    NOTE: This is exactly the same implementation as `_bytes_to_list` and will not complain if the returned data is a
    list. The only advantage of having both is to help the user (and mypy) understand what kind of data to expect.
    rx   rH   s    r0   Ú_bytes_to_dictr}   è   r{   r/   c                 ób   — t          ¦   «         } |j        t          j        | ¦  «        ¦  «        S )z§Parse bytes from a Response object into a PIL Image.

    Expects the response body to be raw bytes. To deal with b64 encoded images, use `_b64_to_image` instead.
    )rD   rt   r_   r`   )rE   r   s     r0   Ú_bytes_to_imager   ó   s+   € õ
 ÑÔ€EØˆ5Œ:•b”j Ñ)Ô)Ñ*Ô*Ð*r/   re   c                 óX   — t          | t          ¦  «        rt          j        | ¦  «        n| S r5   )r8   r-   r#   ry   )re   s    r0   Ú_as_dictr�   ü   s&   € Ý#-¨h½Ñ#>Ô#>ÐL�4Œ:�hÑÔÐÀHÐLr/   Úoutput_linesÚdetailsc              #   óh   K  — | D ],}	 t          ||¦  «        }n# t          $ r Y  dS w xY w|�|V — Œ-dS )z*Used in `InferenceClient.text_generation`.N©Ú%_format_text_generation_stream_outputÚStopIteration©r‚   rƒ   ÚlineÚoutputs       r0   Ú _stream_text_generation_responser‹     sk   è è € ð
 ð ð ˆð	Ý:¸4ÀÑIÔIˆFˆFøÝð 	ð 	ð 	ØˆEˆEˆEð	øøøàÐØˆLˆLˆLøðð s   ˆ™
(§(c                óv   K  — | 2 3 d{V —†}	 t          ||¦  «        }n# t          $ r Y  dS w xY w|�|W V — Œ36 dS )z/Used in `AsyncInferenceClient.text_generation`.Nr…   rˆ   s       r0   Ú&_async_stream_text_generation_responser�     s…   è è € ð
 #ð ð ð ð ð ð ð ˆdð	Ý:¸4ÀÑIÔIˆFˆFøÝð 	ð 	ð 	ØˆEˆEˆEð	øøøàÐØˆLˆLˆLˆLøð #�l�ls   …8�ž
-¬-r‰   c                 óº  — |                       d¦  «        sd S |                      ¦   «         dk    rt          d¦  «        ‚|                      d¦  «                             d¦  «        }t          j        |¦  «        }|                     d¦  «        �)t          |d         |                     d¦  «        ¦  «        ‚t          j
        |¦  «        }|s|j        j        n|S )Nro   údata: [DONE]ú[DONE] signal received.z/nÚerrorÚ
error_type)rZ   Ústripr‡   ÚlstripÚrstripr#   ry   r[   Ú_parse_text_generation_errorr   Úparse_obj_as_instanceÚtokenÚtext)r‰   rƒ   ÚpayloadÚjson_payloadrŠ   s        r0   r†   r†     sÎ   € Ø�?Š?˜7Ñ#Ô#ð Øˆtà‡z‚z�|„|�~Ò%Ð%ÝÐ5Ñ6Ô6Ð6ð �kŠk˜'Ñ"Ô"×)Ò)¨$Ñ/Ô/€GÝ”:˜gÑ&Ô&€Lð ×Ò˜Ñ Ô Ð,Ý*¨<¸Ô+@À,×BRÒBRÐS_ÑB`ÔB`ÑaÔaÐaõ (Ô=¸lÑKÔK€FØ$+Ð7ˆ6Œ<ÔÐ°Ð7r/   Úlinesc              #   óf   K  — | D ]+}	 t          |¦  «        }n# t          $ r Y  dS w xY w|�|V — Œ,dS )zFUsed in `InferenceClient.chat_completion` if model is served with TGI.N©Ú%_format_chat_completion_stream_outputr‡   ©rœ   r‰   rŠ   s      r0   Ú _stream_chat_completion_responser¡   3  si   è è € ð ð ð ˆð	Ý:¸4Ñ@Ô@ˆFˆFøÝð 	ð 	ð 	ØˆEˆEˆEð	øøøàÐØˆLˆLˆLøðð s   ˆ˜
'¦'c                ót   K  — | 2 3 d{V —†}	 t          |¦  «        }n# t          $ r Y  dS w xY w|�|W V — Œ26 dS )z/Used in `AsyncInferenceClient.chat_completion`.Nrž   r    s      r0   Ú&_async_stream_chat_completion_responser£   @  sƒ   è è € ð ð ð ð ð ð ð ð ˆdð	Ý:¸4Ñ@Ô@ˆFˆFøÝð 	ð 	ð 	ØˆEˆEˆEð	øøøàÐØˆLˆLˆLˆLøð �e�es   …7��
,«,c                 ó”  — |                       d¦  «        sd S |                      ¦   «         dk    rt          d¦  «        ‚t          j        |                      d¦  «                             ¦   «         ¦  «        }|                     d¦  «        �)t          |d         |                     d¦  «        ¦  «        ‚t          j	        |¦  «        S )Nro   r�   r�   r‘   r’   )
rZ   r“   r‡   r#   ry   r”   r[   r–   r   r—   )r‰   r›   s     r0   rŸ   rŸ   M  sµ   € ð �?Š?˜7Ñ#Ô#ð Øˆtà‡z‚z�|„|�~Ò%Ð%ÝÐ5Ñ6Ô6Ð6õ ”:˜dŸkšk¨'Ñ2Ô2×8Ò8Ñ:Ô:Ñ;Ô;€Lð ×Ò˜Ñ Ô Ð,Ý*¨<¸Ô+@À,×BRÒBRÐS_ÑB`ÔB`ÑaÔaÐaõ &Ô;¸LÑIÔIÐIr/   Úclientc                ór   K  — |                      ¦   «         2 3 d {V —†}|                     ¦   «         W V — Œ6 d S r5   )Úaiter_linesr“   )r¥   re   r‰   s      r0   Ú_async_yield_fromr¨   a  s_   è è € Ø×*Ò*Ñ,Ô,ð ð ð ð ð ð ð ˆdØ�jŠj‰lŒlÐÐÐÐÐð -Ð,Ð,s   —6Ú#_UNSUPPORTED_TEXT_GENERATION_KWARGSr"   Úunsupported_kwargsc                 ób   — t                                | g ¦  «                             |¦  «         d S r5   )r©   Ú
setdefaultÚextend)r"   rª   s     r0   Ú'_set_unsupported_text_generation_kwargsr®   {  s-   € Ý'×2Ò2°5¸"Ñ=Ô=×DÒDÐEWÑXÔXÐXÐXÐXr/   c                 ó8   — t                                | g ¦  «        S r5   )r©   r[   )r"   s    r0   Ú'_get_unsupported_text_generation_kwargsr°     s   € Ý.×2Ò2°5¸"Ñ=Ô=Ð=r/   Ú
http_errorc                 ó  — | j         €| ‚	 t          | dd¦  «        p| j                              ¦   «         }|                     d¦  «        }|                     d¦  «        }n# t          $ r | ‚w xY w|�t          ||¦  «        }|| ‚| ‚)z¸
    Try to parse text-generation-inference error message and raise HTTPError in any case.

    Args:
        error (`HTTPError`):
            The HTTPError that have been raised.
    NÚresponse_error_payloadr‘   r’   )re   Úgetattrr#   r[   Ú	Exceptionr–   )r±   rš   r‘   r’   Ú	exceptions        r0   Úraise_text_generation_errorr·   Š  sª   € ð ÔÐ"ØÐðå˜*Ð&>ÀÑEÔEÐcÈÔI\×IaÒIaÑIcÔIcˆØ—’˜GÑ$Ô$ˆØ—[’[ Ñ.Ô.ˆ
ˆ
øÝð ð ð ØÐðøøøð ÐÝ0°¸
ÑCÔCˆ	Ø˜ZÐ'ð Ðs   ‹AA  Á A-r‘   r’   c                 óÈ   — |dk    rt          | ¦  «        S |dk    rt          | ¦  «        S |dk    rt          | ¦  «        S |dk    rt          | ¦  «        S t	          | ¦  «        S )NÚ
generationÚincomplete_generationÚ
overloadedÚ
validation)r   r   r   r   r   )r‘   r’   s     r0   r–   r–   §  su   € Ø�\Ò!Ð!Ý˜uÑ%Ô%Ð%ØÐ,Ò,Ð,Ý(¨Ñ/Ô/Ð/Ø�\Ò!Ð!Ý˜uÑ%Ô%Ð%Ø�\Ò!Ð!Ý˜uÑ%Ô%Ð%Ý˜ÑÔÐr/   )Pr<   rh   r_   r#   ÚloggingrW   Úcollections.abcr   r   Údataclassesr   Úpathlibr   Útypingr   r   r	   r
   r   r   r   ÚhttpxÚhuggingface_hub.errorsr   r   r   r   r   r   r   Úutilsr   r   r   Ú_generated.typesr   r   Ú	PIL.Imager   r)   ÚUrlTÚPathTr-   rR   rS   ÚContentTÚTASKS_EXPECTING_IMAGESÚ	getLoggerr&   rU   r   r2   rA   rD   rI   rl   rq   rv   r,   rz   r+   r}   r   r�   Úboolr‹   r�   r†   r¡   r£   rŸ   ÚAsyncClientÚResponser¨   r©   r*   r®   r°   r·   r–   r.   r/   r0   ú<module>rÏ      s  ðð LÐ KÐ Kà €€€Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ Sà €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð IÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ TÐ TÐ TÐ TÐ TÐ TÐ TÐ Tð ð  ØÐÐÐÐÐð €Øˆc�4ˆiÔ€Ø�˜ %¨¨w¸	À:ÐMÔN€ð *Ð+;Ð<Ð à	ˆÔ	˜8Ñ	$Ô	$€ð ðð ð ð ð ñ ô ñ „ððð ð ð ð �ñ ô ð ð8ð ð ð	ð 	ð 	ð 
Ø < Ð <¨iÐ <Ð <Ð <ñ 
„Ø <ð 
Ø E ¨¤Ð E°7¸4´=Ð EÐ EÐ Eñ 
„Ø Eð? ¨D¡ð ?°YÀÑ5Eð ?ð ?ð ?ð ?ðD0˜ð 0 cð 0ð 0ð 0ð 0ð5�Xð 5°#ð 5¸#ð 5ð 5ð 5ð 5ð"C ð C¨ð Cð Cð Cð Cð(˜Eð ( dð (ð (ð (ð (ð(˜Eð ( dð (ð (ð (ð (ð+˜Uð + wð +ð +ð +ð +ðM�u˜t‘|ð M¨ð Mð Mð Mð MðØ˜3”-ðØ*.ðàˆc„]�XÐ8Ô9Ñ9ðð ð ð ðØ Ô$ðØ/3ðà�3Ô˜-Ð(BÔCÑCðð ð ð ð8°ð 8¸dð 8ÀsÐMgÑGgÐjnÑGnð 8ð 8ð 8ð 8ð(
Ø�CŒ=ð
àÐ(Ô)ð
ð 
ð 
ð 
ð
Ø˜Ôð
àÐ-Ô.ð
ð 
ð 
ð 
ðJØ
ðJà $Ñ&ðJð Jð Jð Jð( EÔ$5ð ÀÄð ÐTaÐbeÔTfð ð ð ð ð. DFÐ # T¨#°©*°d¸3´iÐ*?Ô%@Ð EÐ EÑ EðY°3¸±:ð YÐSWÐX[ÔS\ð YÐaeð Yð Yð Yð Yð>°3¸±:ð >À$ÀsÄ)ð >ð >ð >ð >ð¨Nð ¸xð ð ð ð ð:	¨¨d©
ð 	ÀÀdÁ
ð 	ÐObð 	ð 	ð 	ð 	ð 	ð 	r/   