o
    Q5i,                  
   @  s8  U d Z ddlm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
mZ ddlmZ ddlmZmZmZmZmZmZmZmZmZ ddlZddlmZ eZded	< ergz
dd
lmZ  e ZW n	 e!yf   Y nw eZ"ej#dkrrddini Z$ej%eej&ej&f  Z'ej%ej& Z(e
dVi e$G dd dZ)G dd deZ*e+Z,ee'e,e*f Z-G dd de.ej/Z0G dd de0Z1G dd de0Z2G dd de0Z3G dd de0Z4G dd de0Z5G dd de0Z6G d d! d!e7e8 Z9G d"d# d#e.Z:e
dVi e$G d$d% d%Z;e
dVi e$G d&d' d'eZ<e
dVi e$G d(d) d)e<Z=e
dVi e$G d*d+ d+e<Z>e
dVi e$G d,d- d-e=Z?e
dVi e$G d.d/ d/e<Z@e
dVi e$G d0d1 d1e<ZAed2ZBe
dVd3die$G d4d5 d5eeeB ZCe
dVd3die$G d6d7 d7eCZDe
dd8G d9d: d:eCZEe
dd8G d;d< d<eCZFe
dVd3die$G d=d> d>eCZGe
dVd3die$G d?d@ d@eCZHeeDeEeFeGeHf ZIe=eDe>eEe?eFe@eGeAeHiZJdWdEdFZKe
dd8G dGdH dHZLe
G dIdJ dJZMG dKdL dLeNZOG dMdN dNeNZPG dOdP dPeNZQG dQdR dReNZRedS ZSG dTdU dUe.ej/ZTdS )Xz
Definition of enums and dataclasses used in the library.

Do not import infinity_emb from this file, as it will cause a circular import.
    )annotationsN)ABCabstractmethod)	dataclassfield)	lru_cache)	TYPE_CHECKINGAnyGenericLiteralOptionalType	TypedDictTypeVarUnionr	   EmptyImageClassType)Image)   
   kw_onlyTc                   @  s&   e Zd ZU ded< ded< ded< dS )RerankReturnTypefloatrelevance_scorestrdocumentintindexN__name__
__module____qualname____annotations__ r"   r"   e/lsinfo/ai/hellotax_ai/llm_service/venv_embed/lib/python3.10/site-packages/infinity_emb/primitives.pyr   5      
 r   c                   @  s   e Zd ZU ded< ded< dS )ClassifyReturnTyper   labelr   scoreNr   r"   r"   r"   r#   r%   <   s   
 r%   c                   @  s,   e Zd Zeed	ddZed
ddZdS )EnumTypereturn	enum.Enumc                 C  s"   t | jd dd | j D S )zDEPRECATED
        returns an enum with the same names as the class.

        Allows for type hinting of the enum names.
        __namesc                 S  s   i | ]}||qS r"   r"   ).0kr"   r"   r#   
<dictcomp>O   s    z'EnumType.names_enum.<locals>.<dictcomp>)enumEnumr   __members__keys)clsr"   r"   r#   
names_enumG   s   "zEnumType.names_enumr   c                   C  s   t N)NotImplementedErrorr"   r"   r"   r#   default_valueQ      zEnumType.default_valueN)r)   r*   r)   r   )r   r   r    classmethodr   r4   staticmethodr7   r"   r"   r"   r#   r(   F   s    r(   c                   @  s    e Zd ZdZdZedd ZdS )EmbeddingEncodingFormatr   base64c                   C     t jjS r5   )r<   r   valuer"   r"   r"   r#   r7   Z      z%EmbeddingEncodingFormat.default_valueN)r   r   r    r   r=   r;   r7   r"   r"   r"   r#   r<   V   s
    r<   c                   @  s,   e Zd ZdZdZdZdZdZedd Z	dS )	InferenceEnginetorchctranslate2optimumneurondebugenginec                   C  r>   r5   )rA   rB   r?   r"   r"   r"   r#   r7   f   r@   zInferenceEngine.default_valueN)
r   r   r    rB   rC   rD   rE   rF   r;   r7   r"   r"   r"   r#   rA   _   s    rA   c                   @  s6   e Zd ZdZdZdZdZdZedd Z	dd
dZ
dS )Devicecpucudampstensorrtautoc                   C  r>   r5   rG   rL   r?   r"   r"   r"   r#   r7   r   r@   zDevice.default_valuer)   Optional[str]c                 C     | t jkrdS | jS )zgets the torch device stringNrM   selfr"   r"   r#   resolvev      
zDevice.resolveNr)   rN   )r   r   r    rH   rI   rJ   rK   rL   r;   r7   rR   r"   r"   r"   r#   rG   k   s    
rG   c                   @  sl   e Zd ZU dZded< dZded< dZded< dZded< dZded< dZ	ded< e
dd	 ZdddZdS )Dtypefloat32r   float16bfloat16int8fp8rL   c                   C  r>   r5   rU   rL   r?   r"   r"   r"   r#   r7      r@   zDtype.default_valuer)   rN   c                 C  rO   )zgets the torch dtype stringNr[   rP   r"   r"   r#   rR      rS   zDtype.resolveNrT   )r   r   r    rV   r!   rW   rX   rY   rZ   rL   r;   r7   rR   r"   r"   r"   r#   rU   }   s   
 
rU   c                   @  sd   e Zd ZU dZded< dZded< dZded< dZded< dZded< e	dd	d
Z
edd ZdS )EmbeddingDtyperV   r   rY   uint8binaryubinaryr)   boolc                 C  s   | t jt jfv S r5   )r\   r^   r_   rP   r"   r"   r#   uses_bitpacking   s   zEmbeddingDtype.uses_bitpackingc                   C  r>   r5   )r\   rV   r?   r"   r"   r"   r#   r7      r@   zEmbeddingDtype.default_valueN)r)   r`   )r   r   r    rV   r!   rY   r]   r^   r_   r   ra   r;   r7   r"   r"   r"   r#   r\      s   
 r\   c                   @  s>   e Zd ZU dZded< dZded< dZded< edd ZdS )PoolingMethodmeanr   r3   rL   c                   C  r>   r5   )rb   rL   r?   r"   r"   r"   r#   r7      r@   zPoolingMethod.default_valueN)	r   r   r    rc   r!   r3   rL   r;   r7   r"   r"   r"   r#   rb      s   
 rb   c                      s4   e Zd Zd fddZdddZed	d
 Z  ZS )DeviceIDidsUnion[list[int], str]c                   s8   t |trdd |dD }t|| _t | d S )Nc                 S  s   g | ]}|rt |qS r"   )r   r,   ir"   r"   r#   
<listcomp>   s    z%DeviceID.__init__.<locals>.<listcomp>,)
isinstancer   splitlistre   super__init__)rQ   re   	__class__r"   r#   ro      s   

zDeviceID.__init__r)   r   c                 C  s   dd dd | jD  d S )Nz	DeviceID(z, c                 s  s    | ]}t |V  qd S r5   )r   rg   r"   r"   r#   	<genexpr>   s    z$DeviceID.__repr__.<locals>.<genexpr>))joinre   rP   r"   r"   r#   __repr__   s   zDeviceID.__repr__c                   C  s   g S r5   r"   r"   r"   r"   r#   r7      r8   zDeviceID.default_value)re   rf   r9   )r   r   r    ro   ru   r;   r7   __classcell__r"   r"   rp   r#   rd      s
    
rd   c                   @  s   e Zd Z	 edd ZdS )DeviceIDProxyc                   C  s   dS )N r"   r"   r"   r"   r#   r7      r8   zDeviceIDProxy.default_valueN)r   r   r    r;   r7   r"   r"   r"   r#   rw      s    rw   c                   @  s2   e Zd ZU ded< ded< ded< dZded< dS )	LoadingStrategyz	list[str]device_mappingzUnion[str, Dtype, Any]loading_dtypequantization_dtypeNrN   device_placement)r   r   r    r!   r}   r"   r"   r"   r#   ry      s
   
 ry   c                   @  s(   e Zd Zed	ddZed
ddZdS )AbstractSingler)   r   c                 C     d S r5   r"   rP   r"   r"   r#   str_repr   r8   zAbstractSingle.str_repr;Union[str, tuple[str, str], 'ImageClass', 'AudioInputType']c                 C  r   r5   r"   rP   r"   r"   r#   to_input   s   zAbstractSingle.to_inputNr9   )r)   r   )r   r   r    r   r   r   r"   r"   r"   r#   r~      s
    r~   c                   @  s*   e Zd ZU ded< d	ddZd	ddZdS )
EmbeddingSingler   sentencer)   c                 C     | j S r5   r   rP   r"   r"   r#   r         zEmbeddingSingle.str_reprc                 C  r   r5   r   rP   r"   r"   r#   r      r   zEmbeddingSingle.to_inputNr9   r   r   r    r!   r   r   r"   r"   r"   r#   r      s   
 
r   c                   @  s2   e Zd ZU ded< ded< dddZddd	Zd
S )ReRankSingler   queryr   r)   c                 C  s   | j | j S r5   r   r   rP   r"   r"   r#   r         zReRankSingle.str_reprtuple[str, str]c                 C  s   | j | jfS r5   r   rP   r"   r"   r#   r      r   zReRankSingle.to_inputNr9   )r)   r   r   r"   r"   r"   r#   r      s
   
 
r   c                   @     e Zd ZdS )PredictSingleNr   r   r    r"   r"   r"   r#   r      s    r   c                   @  s*   e Zd ZU ded< d
ddZdddZd	S )ImageSingle'ImageClass'imager)   r   c                 C  s   dd| j j  S )zMcreates a dummy representation of the image to count tokens relative to shapezan image is worth a repeated token)r   heightrP   r"   r"   r#   r      s   zImageSingle.str_reprc                 C  r   r5   )r   rP   r"   r"   r#   r      r   zImageSingle.to_inputNr9   )r)   r   r   r"   r"   r"   r#   r      s   
 
r   c                   @  s2   e Zd ZU ded< ded< dddZdd	d
ZdS )AudioSingleAudioInputTypeaudior   sampling_rater)   r   c                 C  s   ddt | j  S )zMcreates a dummy representation of the audio to count tokens relative to shapezan audio is worth a repeated r   )lenr   rP   r"   r"   r#   r     s   zAudioSingle.str_reprc                 C  r   r5   )r   rP   r"   r"   r#   r     r   zAudioSingle.to_inputNr9   )r)   r   r   r"   r"   r"   r#   r      s
   
 
r   AbstractInnerTypeorderc                   @  s:   e Zd ZU ded< ded< edd	d
ZedddZdS )AbstractInnerr~   contentzasyncio.Futurefutureresultr   r)   Nonec                      d S r5   r"   rQ   r   r"   r"   r#   complete     zAbstractInner.completec                   r   r5   r"   rP   r"   r"   r#   
get_result  r   zAbstractInner.get_resultN)r   r   r)   r   )r)   r   )r   r   r    r!   r   r   r   r"   r"   r"   r#   r     s   
 r   c                   @  6   e Zd ZU ded< dZded< dd
dZdddZdS )EmbeddingInnerr   r   NOptional['EmbeddingReturnType']	embeddingr   EmbeddingReturnTyper)   r   c                   H   || _ | j du rtdz
| j| j  W dS  tjjy#   Y dS w Zmarks the future for completion.
        only call from the same thread as created future.Nzembedding is Noner   
ValueErrorr   
set_resultasyncio
exceptionsInvalidStateErrorr   r"   r"   r#   r   !     
zEmbeddingInner.completec                   "   | j I dH  | jdusJ | jS z/waits for future to complete and returns resultNr   r   rP   r"   r"   r#   r   -     zEmbeddingInner.get_resultr   r   r)   r   r)   r   r   r   r    r!   r   r   r   r"   r"   r"   r#   r     
   
 
r   )r   c                   @  s>   e Zd ZU ded< edddZded< dddZdddZdS )ReRankInnerr   r   NF)defaultcomparezOptional[float]r'   r   r   r)   r   c                   r   )r   Nzscore is None)r'   r   r   r   r   r   r   r   r"   r"   r#   r   9  r   zReRankInner.completec                   r   r   )r   r'   rP   r"   r"   r#   r   E  r   zReRankInner.get_result)r   r   r)   r   )r)   r   )r   r   r    r!   r   r'   r   r   r"   r"   r"   r#   r   4  s
   
 
r   c                   @  r   )PredictInnerr   r   NzOptional[ClassifyReturnType]class_encodingr   r%   r)   r   c                   r   )r   Nzclass_encoding is None)r   r   r   r   r   r   r   r   r"   r"   r#   r   Q  r   zPredictInner.completec                   r   r   )r   r   rP   r"   r"   r#   r   ]  r   zPredictInner.get_result)r   r%   r)   r   )r)   r%   )r   r   r    r!   r   r   r   r"   r"   r"   r#   r   L  r   r   c                   @  r   )
ImageInnerr   r   Nr   r   r   r   r)   r   c                   r   r   r   r   r"   r"   r#   r   i  r   zImageInner.completec                   r   r   r   rP   r"   r"   r#   r   u  r   zImageInner.get_resultr   r   r   r"   r"   r"   r#   r   d  r   r   c                   @  r   )
AudioInnerr   r   Nr   r   r   r   r)   r   c                   r   r   r   r   r"   r"   r#   r     r   zAudioInner.completec                   r   r   r   rP   r"   r"   r#   r     r   zAudioInner.get_resultr   r   r   r"   r"   r"   r#   r   |  r   r   single_typeType[AbstractSingle]r)   Type[QueueItemInner]c                 C  s   | t vrtd|  t |  S )Nz#Unknown type of input_single_item, )_type_to_inner_item_mapr   )r   r"   r"   r#   get_inner_item  s   r   c                   @  s(   e Zd ZU ded< eddZded< dS )PrioritizedQueueItemr   priorityF)r   QueueItemInneritemN)r   r   r    r!   r   r   r"   r"   r"   r#   r     s   
 r   c                   @  s&   e Zd ZU ded< ded< ded< dS )OverloadStatusr   queue_fractionr   queue_absoluteresults_absoluteNr   r"   r"   r"   r#   r     r$   r   c                   @  r   )ModelNotDeployedErrorNr   r"   r"   r"   r#   r         r   c                   @  r   )MatryoshkaDimErrorNr   r"   r"   r"   r#   r     r   r   c                   @  r   )ImageCorruptionNr   r"   r"   r"   r#   r     r   r   c                   @  r   )AudioCorruptionNr   r"   r"   r"   r#   r     r   r   )embedrerankclassifyimage_embedaudio_embedc                   @  s   e Zd ZdZdZdZdS )Modalitytextr   r   N)r   r   r    r   r   r   r"   r"   r"   r#   r     s    r   r"   )r   r   r)   r   )U__doc__
__future__r   r   r/   sysabcr   r   dataclassesr   r   	functoolsr   typingr   r	   r
   r   r   r   r   r   r   numpynpnumpy.typingnptr   r!   	PIL.Imager   
ImageClassImportErrorImageClassTypeversion_infodataclass_argsNDArrayrV   r   r   r   r%   r   ReRankReturnTypeUnionReturnTyper   r0   r(   r<   rA   rG   rU   r\   rb   rm   r   rd   rw   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	Exceptionr   r   r   r   ModelCapabilitesr   r"   r"   r"   r#   <module>   s   ,	


	