
    `i                        d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
mZ d dlmZ ddlmZ d dlZ ej        d          Ze G d	 d
                      ZdS )    )annotationsN)Path)AnyLiteralOptional)	dataclass   )Keysmetadatac                     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<   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<   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<   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d6d7d%            Zed8d9d'            Zed8d:d(            Zed8d:d)            Z ed*             Z!ed;d<d-            Z"ed6d=d2            Z#d>d5Z$dS )?MetadataNOptional[str]nameauthorversionorganizationfinetunebasenamedescriptionquantized_by
size_labelurldoiuuidrepo_url
source_url
source_doisource_uuidsource_repo_urllicenselicense_namelicense_linkzOptional[list[dict]]base_modelszOptional[list[str]]tags	languagesdatasetsr   metadata_override_pathOptional[Path]
model_path
model_nametotal_paramsintreturnc                B	   t                      }t                               |          }t                               |          }t                               |||||          }t                               |           }|                    t          j        j        |j	                  |_	        |                    t          j        j
        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j        |j                  |_        |                    t          j        j         |j!                  |_!        |                    t          j        j"        |j#                  |_#        |                    t          j        j$        |j%                  |_%        |                    t          j        j&        |j'                  |_'        |                    t          j        j(        |j)                  |_)        |                    t          j        j*        |j+                  |_+        |                    t          j        j,        |j-                  |_-        |                    d|j.                  |_.        |                    d|j/                  |_/        |                    t          j        j0        |j1                  |_1        |                    t          j        j2        |j3                  |_3        |||_	        |S )Nzgeneral.base_modelszgeneral.datasets)4r   load_model_cardload_hf_parametersapply_metadata_heuristicload_metadata_overridegetr
   GeneralNAMEr   AUTHORr   VERSIONr   ORGANIZATIONr   FINETUNEr   BASENAMEr   DESCRIPTIONr   QUANTIZED_BYr   
SIZE_LABELr   LICENSE_NAMEr!   LICENSE_LINKr"   URLr   DOIr   UUIDr   REPO_URLr   
SOURCE_URLr   
SOURCE_DOIr   SOURCE_UUIDr   SOURCE_REPO_URLr   r#   r&   TAGSr$   	LANGUAGESr%   )r'   r)   r*   r+   r   
model_card	hf_paramsmetadata_overrides           a/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/gguf/metadata.pyloadzMetadata.load.   sj    ::--j99
//
;;	 44Xz9V`bnoo %;;<RSS#4#8#89JW_Wd#e#e#4#8#89LW_Wf#g#g#4#8#89MW_Wg#h#h#4#8#89RW_Wl#m#m#4#8#89NW_Wh#i#i#4#8#89NW_Wh#i#i#4#8#89QW_Wk#l#l#4#8#89RW_Wl#m#m#4#8#89PW_Wj#k#k#4#8#89RW_Wl#m#m#4#8#89RW_Wl#m#m#4#8#89IW_Wc#d#d#4#8#89IW_Wc#d#d#4#8#89JW_Wd#e#e#4#8#89NW_Wh#i#i#4#8#89PW_Wj#k#k#4#8#89PW_Wj#k#k#4#8#89QW_Wk#l#l#4#8#89UW_Wo#p#p  $5#8#89NW_Wk#l#l $5#8#89KW_Wh#i#i#4#8#89JW_Wd#e#e#4#8#89OW_Wi#j#j !&HM    dict[str, Any]c                    | |                                  si S t          | dd          5 }t          j        |          cd d d            S # 1 swxY w Y   d S )Nrutf-8encoding)is_fileopenjsonrN   )r'   fs     rM   r2   zMetadata.load_metadata_overridej   s    !)1G1O1O1Q1Q)I(#@@@ 	 A9Q<<	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAc                   | |                                  si S | dz  }|                                si S d}t          |dd          5 }|                                }|                                }g }t          |          dk    ri cd d d            S t          |          dk    r|d         dk    ri cd d d            S |dd          D ]}|dk    r n|                    |            d	                    |          d	z   }d d d            n# 1 swxY w Y   |                    d
d          }|rXt          j
        |          }t          |t                    r|S t                              dt          |           d           i S i S )Nz	README.md rR   rS   rT   r   z---r	   
z- no
z- "no"
z3while reading YAML model card frontmatter, data is z instead of dict)is_dirrV   rW   read
splitlineslenappendjoinreplaceyaml	safe_load
isinstancedictloggererrortype)	r)   model_card_pathyaml_contentrY   contentlines
lines_yamllinedatas	            rM   r/   zMetadata.load_model_cardr   s!   Z%6%6%8%8I${2&&(( 	I /3999 	8QffhhG&&((EJ5zzQ	8 	8 	8 	8 	8 	8 	8 	8 5zzA~~%(e"3"3	8 	8 	8 	8 	8 	8 	8 	8 abb	 , ,5==E%%d++++99Z0047L	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8& $++HlCC 	>,//D$%% oSWX\S]S]oooppp	Is   ?D DADDDc                    | |                                  si S | dz  }|                                si S t          |dd          5 }t          j        |          cd d d            S # 1 swxY w Y   d S )Nzconfig.jsonrR   rS   rT   )r]   rV   rW   rX   rN   )r)   config_pathrY   s      rM   r0   zMetadata.load_hf_parameters   s    Z%6%6%8%8I =0""$$ 	I+sW555 	 9Q<<	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   A''A+.A+c                    d                     d |                                                     dd                                          D                       S )N c                    g | ]A}|                                 r)t          j        d |          s|                                n|BS )z^(v\d+(?:\.\d+)*|\d.*)$)islowerrematchtitle).0ws     rM   
<listcomp>z(Metadata.id_to_title.<locals>.<listcomp>   sX      \  \  \mnaiikkh"(C]_`:a:ahgh  \  \  \rO   -)rb   striprc   split)strings    rM   id_to_titlezMetadata.id_to_title   s     xx  \  \rxr~r~  sA  sA  sI  sI  JM  OR  sS  sS  sY  sY  s[  s[  \  \  \  ]  ]  	]rO   model_idMtuple[str | None, str | None, str | None, str | None, str | None, str | None]c           	     *   | dS d| v r| d d d d d fS d| v r|                      dd          \  }}nd | }}|!t          |          dk    r|d         dk    rd }|                     d          }t          t          t          |                              D ]}t          ||                   dk    r||= d |D             }t	          |          D ]\  }}t          j        d	|t
          j                  r||                             d
           Bt          j        d|t
          j                  r3||                             d           |	                                ||<   |dk    rt          j        d|t
          j                  r|
                    dd          }|d                                         r|d d         dz   |d         z   |d         z   }t          |          dk    rI|d                                         r/|d         dv r%|d d         |d         	                                z   }|dk    r	 t          |d d                   t          dd                    |d                             z  }|dk     r|t          |          dz  k     s"|dk    r\t          ||z
            d|z  dz  k    r@||                             d           |d d         |d                                         z   }n# t"          $ r Y nw xY wt          ||                   dk    r||                             d           |||<   z|dk    rvt          j        d|t
          j                  rV|dk     r5|                                dk    r||                             d           ||                             d           t%          d t'          ||          D                       rHt'          ||          D ]7\  }	}
d|
v r.t)          d |	D                       r|
                    d           8d}t'          ||          D ]z\  }}
|rGt          |
          dk    r|d                                         sd
|
v r|
                    d           N|rd}t          |
          dk    r|
                    d           {t'          t          |          t          |                    D ]2\  }}
d|
v r)t          |
          dk    r|
                    d           2 d                    d t'          ||          D                       pd }d                    t0                              d  t'          ||          D                                                                 pd }d                    d! t'          ||          D                       pd }d                    d" t'          ||          D                       pd }|||d }||||||fS )#N)NNNNNNru   /r	   r   .r~   c                *    g | ]}t                      S  )set)r{   _s     rM   r}   z4Metadata.get_model_id_components.<locals>.<listcomp>   s    '''qSUU'''rO   z(v|iter)?\d+([.]\d+)*r   zi?q\d(_\w)*|b?fp?(16|32)rj   zD(([A]|\d+[x])?\d+([._]\d+)?[KMBT][\d]?|small|mini|medium|large|x?xl)r   kmbti  z KMBT      r   r   zchat|instruct|vision|loralorac              3  V   K   | ]$\  }}d |v 	|D ]}|                                 V  %dS r   N)	isdecimal)r{   ntcs       rM   	<genexpr>z3Metadata.get_model_id_components.<locals>.<genexpr>  sH      eeAXYHYHYcdHYHY^_q{{}}HYHYHYHYHYeerO   c              3  >   K   | ]}|                                 V  d S N)isalpha)r{   r   s     rM   r   z3Metadata.get_model_id_components.<locals>.<genexpr>
  s*      221199;;222222rO   Tr   Fc              3  (   K   | ]\  }}d |v 	|V  dS )r   Nr   )r{   r   r   s      rM   r   z3Metadata.get_model_id_components.<locals>.<genexpr>  +      YY$!QWXAYYrO   c              3  (   K   | ]\  }}d |v 	|V  dS r   r   )r{   sr   s      rM   r   z3Metadata.get_model_id_components.<locals>.<genexpr>!  s2      +k+k$!QYeijYjYjAYjYjYjYj+k+krO   c              3  (   K   | ]\  }}d |v 	|V  dS )r   Nr   )r{   rY   r   s      rM   r   z3Metadata.get_model_id_components.<locals>.<genexpr>"  r   rO   c              3  0   K   | ]\  }}d |v 	d|v|V  dS )r   r   Nr   )r{   vr   s      rM   r   z3Metadata.get_model_id_components.<locals>.<genexpr>%  s;      ppAVW\fno\o\o1\o\o\o\opprO   )r   r`   reversedrange	enumeraterx   	fullmatch
IGNORECASEaddupperrc   r   floatpowfindabslower
ValueErroranyzipallremover   rb   rg   fromkeyskeys)r   r+   org_componentmodel_full_name_component
name_partsi
name_typespartlabel_paramsr   r   at_startr   r   r   r   s                   rM   get_model_id_componentsz Metadata.get_model_id_components   s~   
 55(?? T4tT99(??7?~~c17M7M4M44 8<X4M $]););a)?)?MRSDTX[D[D[ M 9 ? ? D D
 %J0011 	" 	"A:a=!!Q&&qM ('J''' 	
 !,, -	2 -	2GAt|4dBMJJ +21!!),,,,94OO (21!!&))) $


1Q2<(oquwy  xE  F  F||C--8%%'' A9s?T"X5R@Dt99q==T"X%7%7%9%9=Bx6))#CRCy48>>+;+;;1$$',T#2#Y'7'7#dGLLQUVXQYDZDZ:[:['[
 )1,,L@Q@QUV@V1V1V(1,,\L5P1Q1QTUXdTdhiTi1i1i 'qM--j999#'9tBx~~/?/?#?D%    z!}%%**qM%%l333 $
1Q2<(DdBMZZ!##

(>(>qM%%f----qM%%j111 eeZ)D)Deeeee 	/J
33 / /11$$2222222 /...:z22 	& 	&GD! &c!ffkkd1goo.?.?kIQRNNj!!!! %$Hq66Q;;EE*%%% 8J//*1E1EFF 	 	GD!Q3q66A::$$$$88YY#j**E*EYYYYYa]aXXdmm+k+k#j*:U:U+k+k+kkkpprrss{w{
88YY#j**E*EYYYYYa]a ((pp#j**E*Epppppxtx("2wH(-8WV```s   =B?K==
L
	L
r   rJ   Optional[dict]rK   c           
     N    ~d> fd}d> fd} |dd            |dd            |dd            |d	d	            |d
d
            |dd            |dd            |dd            |dd            |dd            |dd            |dd            |dd            |dd            |dd            |d	d            |d
d            |dd            |dd            |dd            |dd            |dd            |dd             |dd!            |dd            |dd"            |dd#           d$v s	d%v sd&v rtg }                     d$                     d%                     d&d                               }|Ut          |t                    r|                    |           n*t          |t                    r|                    |            j        g  _        |D ]}	i }
t          |	t                    rS|	                    d'          s*|	                    d(          s|	                    d)          r|	|
d<   d*|	v rt          j	        d+|	          }|r||
                    d,          }t                              ||          \  }}}}}}|t                              |          |
d<   |t                              |          |
d	<   |||
d<   nt                              |	|          \  }}}}}}|t                              |          |
d<   |t                              |          |
d	<   |||
d<   ||d-| d.| |
d<   nCt          |	t                    r|	}
n+t                              d/t          |	           d0            j                            |
           d1v s	d2v sd3v rJg }                     d1                     d2                     d3d                               }|Ut          |t                    r|                    |           n*t          |t                    r|                    |            j        g  _        |D ]}i }t          |t                    r)|                    d4          r||d<   d*|v rt          j	        d+|          }|r||
                    d,          }t                              ||          \  }}}}}}|t                              |          |d<   |t                              |          |d	<   |||d<   nt                              ||          \  }}}}}}|t                              |          |d<   |t                              |          |d	<   |||d<   ||d-| d.| |d<   nCt          |t                    r|}n+t                              d5t          |           d0            j                            |            |d6d6            |d7d7            |d8d8            |d9d9            |d9d:            |d;d;            |d;d<           ||                     d=          }||                    d.          d,k    r|}	t                              |	|          \  }}}}}} j        !|t                              |           _         j        !|t                              |           _         j        	|| _         j        	|| _         j        	|| _         j        	|| _        ||j        }	t                              |	|          \  }}}}}} j        !|t                              |           _         j        !|t                              |           _         j        	|| _         j        	|| _         j        	|| _         j        	|| _         S )?Nmetadata_keystrmodel_card_keyc                    |v r7t          | d           (t          |                     |                     d S d S d S r   )getattrsetattrr3   )r   r   r   rJ   s     rM   use_model_card_metadatazBMetadata.apply_metadata_heuristic.<locals>.use_model_card_metadata5  sR    !Z//GHlTX4Y4Y4aHlJNN>4R4RSSSSS 0/4a4arO   c                2                        |d           }|d S t          | d           }|g }t          |t                    r|                    |           n*t          |t
                    r|                    |           t          | |           d S r   )r3   r   rf   r   ra   listextendr   )r   r   
tags_valuecurrent_valuer   rJ   s       rM   use_array_model_card_metadatazHMetadata.apply_metadata_heuristic.<locals>.use_array_model_card_metadata9  s    '^^NDAA
%F ', E E ($&Mj#.. 5!((4444
D11 5!((444,>>>>>rO   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   model_authormodel_versionmodel_organizationmodel_descriptionmodel_finetunemodel_basenamemodel_size_label	model_url	model_doi
model_uuidmodel_repo_urlmodel_creator
model_type
base_modelr#   base_model_sourceshttp://https://ssh://zhuggingface.coz&https?://huggingface.co/([^/]+/[^/]+)$r	   zhttps://huggingface.co/r   zbase model entry 'z' not in a known formatr&   datasetdataset_sources)r   r   r   zdataset entry 'r    r!   r"   r$   pipeline_tagr%   language_name_or_path)r   r   r   r   )r3   rf   r   ra   r   r   r#   
startswithrx   ry   groupr   r   r   rg   rh   ri   r&   countr   r   r   r   r   r   )r   rJ   rK   r)   r+   r   r   metadata_base_modelsbase_model_valuer   r   ry   model_id_componentr   r   r   r   r   r   metadata_datasetsdataset_value
dataset_idr   dataset_id_componentdataset_name_componenthf_name_or_paths   ``                        rM   r1   z!Metadata.apply_metadata_heuristic-  s)    !T T T T T T T? ? ? ? ? ? ?( $#FF333##Hh777##Iy999##NNCCC##M=AAA##J
;;;##J
;;;##L,???##L%888##L%888##M6:::##$5zBBB
 $#FL999##Hn===##I???##N4HIII##M3FGGG##J0@AAA##J0@AAA##L2DEEE##L+>>>##L+>>>##M<@@@##$57GHHH $#FL999##Ho>>>##J===z))]j-H-HL`dnLnLn (*$#->>,
}^h^l^l  nB  DH  _I  _I  AJ  AJ  $K  $K #/!"2C88 F,334DEEEE#$4d;; F,334DEEE'/+-H( 4 *< *<H!#J!(C00 %b#..y99 X=P=PQ[=\=\ `h`s`st|`}`} 5=Jz2  08;;(*1Z\d(e(e#( 
!H9>Q$6 yA  yY  yY  Zl  nz  y{  y{$u$=}hX`biku (A'L=E=Q=QRk=l=l
6(:'4'@EMEYEYZgEhEh
>(B'.':@G
9(= qy  qQ  qQ  RZ  \h  qi  qim5}hPXZacm  9D5=5I5IJc5d5d
6 2,8=E=Q=QR_=`=`
> :&28?
9 5,8=V=b9~S`9~9~c|9~9~
: 6#Hd33 b%-

 %`#h--%`%`%`aaa(//
;;;;Z''9
+B+BFW[eFeFe$&! *z:>>)U_UcUcduw{U|U|;};} ~ ~ ,!-55 @)00????#M488 @)00???$,(*H%"3 *6 *6J G!*c22 %a%001RSS y2<GJ/  0:==(*1Z\f(g(g#( 
!E;@;;q>>$8u}  vV  vV  Wk  my  vz  vz$r$:M8U]_fhr (>'I:B:N:NOe:f:f'4'@BJBVBVWdBeBe(?'.':=D	(: nv  nN  nN  OY  [g  nh  nhj2M8XW^`j  6A2:2F2FG]2^2^,8:B:N:N}:]:] 7&25<	 2,8=S=_6xP]6x6x`v6x6x
 3#J55 a", %_s:%_%_%_```%,,W5555##Iy999##NNCCC##NNCCC))&&999))&.AAA))+{CCC))+zBBB
  'mmO<<O*/D/DS/I/IQ/N/N +dl  eE  eE  FN  P\  e]  e]a)=(HgWa=(-F-R$,$8$89R$S$SHM(0]5N,4,@,@,O,OH)$,1E(0H%$,1E(0H%#+0C'.H$&.:3I*4H' !!H`h  aA  aA  BJ  LX  aY  aY]%}h'S]}$)B)N ( 4 45N O O$,1J(0(<(<](K(K% (X-A$,! (X-A$,!'G,?#* "*z/E&0#rO   gguf_writergguf.GGUFWriterc                   | j         J |                    | j                    | j        |                    | j                   | j        |                    | j                   | j        |                    | j                   | j        |	                    | j                   | j
        |                    | j
                   | j        |                    | j                   | j        |                    | j                   | j        |                    | j                   | j        bt'          | j        t(                    r.|                    d                    | j                             n|                    | j                   | j        |                    | j                   | j        |                    | j                   | j        |                    | j                   | j        |                    | j                   | j        |                     | j                   | j!        |"                    | j!                   | j#        |$                    | j#                   | j%        |&                    | j%                   | j'        |(                    | j'                   | j)        |*                    | j)                   | j+        c|,                    t[          | j+                             t]          | j+                  D ]&\  }}d|v r|/                    ||d                    d|v r|0                    ||d                    d|v r|1                    ||d                    d|v r|2                    ||d                    d|v r|3                    ||d                    d|v r|4                    ||d                    d|v r|5                    ||d                    d	|v r|6                    ||d	                    d
|v r|7                    ||d
                    (| j8        c|9                    t[          | j8                             t]          | j8                  D ]&\  }}d|v r|:                    ||d                    d|v r|;                    ||d                    d|v r|<                    ||d                    d|v r|=                    ||d                    d|v r|>                    ||d                    d|v r|?                    ||d                    d|v r|@                    ||d                    d	|v r|A                    ||d	                    d
|v r|B                    ||d
                    (| jC        |D                    | jC                   | jE        |F                    | jE                   d S d S )N,r   r   r   r   r   r   r   r   r   )Gr   add_namer   
add_authorr   add_versionr   add_organizationr   add_finetuner   add_basenamer   add_descriptionr   add_quantized_byr   add_size_labelr    rf   r   add_licenserb   r!   add_license_namer"   add_license_linkr   add_urlr   add_doir   add_uuidr   add_repo_urlr   add_source_urlr   add_source_doir   add_source_uuidr   add_source_repo_urlr#   add_base_model_countr`   r   add_base_model_nameadd_base_model_authoradd_base_model_versionadd_base_model_organizationadd_base_model_descriptionadd_base_model_urladd_base_model_doiadd_base_model_uuidadd_base_model_repo_urlr&   add_dataset_countadd_dataset_nameadd_dataset_authoradd_dataset_versionadd_dataset_organizationadd_dataset_descriptionadd_dataset_urladd_dataset_doiadd_dataset_uuidadd_dataset_repo_urlr$   add_tagsr%   add_languages)selfr   keybase_model_entrydataset_entrys        rM   set_gguf_meta_modelzMetadata.set_gguf_meta_model  sC   y$$$TY''';"""4;///<###DL111((():;;;=$$$T]333=$$$T]333'''(8999((():;;;?&&&t777<#$,-- 6''(>(>????''555((():;;;((():;;;8)))8)))9   +++=$$$T]333?&&&t777?&&&t777'''(8999+++D,@AAA',,S1A-B-BCCC)243C)D)D [ [%%---33C9I&9QRRR///55c;KH;UVVV 00066s<LY<WXXX!%555;;CAQR`Aabbb $444::3@PQ^@_```,,,2238H8OPPP,,,2238H8OPPP---33C9I&9QRRR!11177=Mj=YZZZ=$))#dm*<*<===&/&>&> U U"]]**00mF6KLLL},,223h8OPPP--33Cy9QRRR!]2288mN>[\\\ M1177]==YZZZM))//]55IJJJM))//]55IJJJ]**00mF6KLLL..44S-
:STTT9   +++>%%%dn55555 &%rO   )NNNr   )
r'   r(   r)   r(   r*   r   r+   r,   r-   r   r   )r'   r(   r-   rP   )r)   r(   r-   rP   )Nr   )r   r   r+   r,   r-   r   )r   r   rJ   r   rK   r   r)   r(   r+   r,   r-   r   )r   r   )%__name__
__module____qualname__r   __annotations__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   staticmethodrN   r2   r/   r0   r   r   r1   r#  r   rO   rM   r   r      s         D F    !G!!!!"&L&&&&"H"""""H""""!%K%%%%"&L&&&& $J$$$$CCD"H"""" $J$$$$ $J$$$$!%K%%%%%)O))))!G!!!!"&L&&&&"&L&&&&(,K,,,, $D$$$$%)I))))%)H))))9 9 9 9 \9v         \  ) ) ) ) \)V 
  
  
  
  \
  ] ] \] za za za za \zax o o o o \obc6 c6 c6 c6 c6 c6rO   r   )
__future__r   rx   rX   rd   loggingpathlibr   typingr   r   r   dataclassesr   	constantsr
   gguf	getLoggerrh   r   r   rO   rM   <module>r1     s    " " " " " " 				          ) ) ) ) ) ) ) ) ) ) ! ! ! ! ! !       		:	&	& o	6 o	6 o	6 o	6 o	6 o	6 o	6 o	6 o	6 o	6rO   