§
    ˜Štj}  ã            	       óŽ  — d dl 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 d dlmZmZ d dlmZ d dlZd dlmZ  G d„ ded	¬
¦  «        Z G d„ ded	¬
¦  «        Z G d„ ded¬
¦  «        Zdedefd„Zdeeef         defd„Zdedefd„Zdedeeef         fd„Z G d„ ded	¬
¦  «        Zdeeef         defd„Z G d„ ded	¬
¦  «        Zdeeef         defd„Z G d„ d ed	¬
¦  «        Z d!e
de fd"„Z!d!eeef         de fd#„Z"deeef         de fd$„Z#	 dMde d!ee
         defd%„Z$	 dMde d!ee
         deeef         fd&„Z%	 dMded'ee         defd(„Z& G d)„ d*ed	¬
¦  «        Z'deeef         de'fd+„Z( G d,„ d-ed	¬
¦  «        Z)deeef         de)fd.„Z* G d/„ d0ed	¬
¦  «        Z+d!e
de+fd1„Z,d!ede+fd2„Z-de+defd3„Z.de+deeef         fd4„Z/d5ede+fd6„Z0deeef         de+fd7„Z1d8ed9e'defd:„Z2d;ed<e)defd=„Z3d>ed?edefd@„Z4dAedBe+defdC„Z5dDee         dEee         ddfdF„Z6dDee         dGeeeef                  ddfdH„Z7	 	 	 	 	 	 dNdL„Z8dS )Oé    )Ú	TypedDictÚDictÚAnyÚOptionalÚcastÚget_argsN)ÚSpaceÚCollectionMetadataÚUpdateMetadataÚEmbeddingFunction)Úknown_embedding_functionsÚregister_embedding_function)Ú	cpu_count)ÚSchemac                   ó`   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   d	S )
ÚHNSWConfigurationÚspaceÚef_constructionÚmax_neighborsÚ	ef_searchÚnum_threadsÚ
batch_sizeÚsync_thresholdÚresize_factorN©Ú__name__Ú
__module__Ú__qualname__r	   Ú__annotations__ÚintÚfloat© ó    úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/api/collection_configuration.pyr   r      ói   € € € € € € Ø€L€L�LØÐÐÑØÐÐÑØ€N€N�NØÐÐÑØ€O€O�OØÐÐÑØÐÐÑÐÐr#   r   F)Útotalc                   ój   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   d
S )ÚSpannConfigurationÚsearch_nprobeÚwrite_nprober   r   r   r   Úreassign_neighbor_countÚsplit_thresholdÚmerge_thresholdN©r   r   r   r    r   r	   r"   r#   r$   r(   r(      óx   € € € € € € ØÐÐÑØÐÐÑØ€L€L�LØÐÐÑØ€N€N�NØÐÐÑØ Ð Ð Ñ ØÐÐÑØÐÐÑÐÐr#   r(   c                   óR   — e Zd ZU ee         ed<   ee         ed<   ee         ed<   dS )ÚCollectionConfigurationÚhnswÚspannÚembedding_functionN)r   r   r   r   r   r   r(   r   r"   r#   r$   r1   r1   *   sH   € € € € € € Ø
Ð$Ô
%Ð%Ð%Ñ%ØÐ&Ô'Ð'Ð'Ñ'Ø Ð!2Ô3Ð3Ð3Ñ3Ð3Ð3r#   r1   TÚconfig_json_strÚreturnc                 óH   — t          j        | ¦  «        }t          |¦  «        S ©N)ÚjsonÚloadsÚ'load_collection_configuration_from_json)r5   Úconfig_json_maps     r$   Ú+load_collection_configuration_from_json_strr=   0   s!   € õ ”j Ñ1Ô1€OÝ2°?ÑCÔCÐCr#   r<   c           	      óR  — |                       d¦  «        �$|                       d¦  «        �t          d¦  «        ‚d }d }d }|                       d¦  «        �t          t          | d         ¦  «        }|                       d¦  «        �t          t          | d         ¦  «        }|                       d¦  «        �à| d         }|d         dk    rt          j        dt          d¬	¦  «         d }n¯	 |d
         }n # t          $ r t          d|› �¦  «        ‚w xY w	 t          |         }n!# t          $ r t          d|› d�¦  «        ‚w xY w	 | 
                    |d         ¦  «        }n8# t          $ r)}t          d|d
         › d|d         › d|› �¦  «        ‚d }~ww xY wd }t          |||¬¦  «        S )Nr3   r2   ú&hnsw and spann cannot both be providedr4   ÚtypeÚlegacyú legacy embedding function configé   ©Ú
stacklevelÚnamez-Embedding function name not found in config: zEmbedding function zO not found. Add @register_embedding_function decorator to the class definition.Úconfigz#Could not build embedding function z from config z: ©r2   r3   r4   )ÚgetÚ
ValueErrorr   r   r(   ÚwarningsÚwarnÚDeprecationWarningÚKeyErrorr   Úbuild_from_configÚ	Exceptionr1   )r<   Úhnsw_configÚspann_configÚ	ef_configÚefÚef_nameÚes          r$   r;   r;   8   s;  € ð 	×Ò˜GÑ$Ô$Ð0Ø×Ò Ñ'Ô'Ð3åÐAÑBÔBÐBà€KØ€LØ€Ið ×Ò˜6Ñ"Ô"Ð.ÝÕ,¨o¸fÔ.EÑFÔFˆØ×Ò˜7Ñ#Ô#Ð/ÝÕ.°ÀÔ0HÑIÔIˆð ×ÒÐ/Ñ0Ô0Ð<Ø#Ð$8Ô9ˆ	Ø�VÔ Ò(Ð(ÝŒMØ2Ý"Øðñ ô ð ð
 ˆBˆBðØ# FÔ+��øÝð ð ð Ý ØOÀIÐOÐOñô ð ðøøøðÝ.¨wÔ7��øÝð ð ð Ý ð C¨'ð  Cð  Cð  Cñô ð ðøøøðØ×)Ò)¨)°HÔ*=Ñ>Ô>��øÝð ð ð Ý Øt¸)ÀFÔ:KÐtÐtÐZcÐdlÔZmÐtÐtÐqrÐtÐtñô ð øøøøðøøøð
 ˆå"ØØØðñ ô ð s0   Ã)C2 Ã2DÄD! Ä!D?ÅE Å
FÅ)$FÆFrG   c                 óD   — t          j        t          | ¦  «        ¦  «        S r8   )r9   ÚdumpsÚ collection_configuration_to_json)rG   s    r$   Ú$collection_configuration_to_json_strrZ   r   s   € ÝŒ:Õ6°vÑ>Ô>Ñ?Ô?Ð?r#   c                 ó  — t          | t          ¦  «        r@|                      d¦  «        }|                      d¦  «        }|                      d¦  «        }nŠ	 |                      d¦  «        j        }n# t
          $ r d }Y nw xY w	 |                      d¦  «        j        }n# t
          $ r d }Y nw xY w	 |                      d¦  «        j        }n# t
          $ r d }Y nw xY wd }|�;	 t          t          |¦  «        }n$# t          $ r}t          d|› �¦  «        ‚d }~ww xY w|�;	 t          t          |¦  «        }n$# t          $ r}t          d|› �¦  «        ‚d }~ww xY w|€d }ddi}|��	 | 
                    ¦   «         rddi}nF|                     ¦   «         d|                     ¦   «         d	œ}t          t          |¦  «        ¦  «         n<# t          $ r/}t          j        d
|› �t"          d¬¦  «         d }ddi}Y d }~nd }~ww xY w|||dœS )Nr2   r3   r4   únot a valid hnsw config: únot a valid spann config: r@   rA   Úknown©rF   r@   rG   ú"legacy embedding function config: rC   rD   rH   )Ú
isinstanceÚdictrI   Úget_parameterÚvaluerJ   r   r   rP   r(   Ú	is_legacyrF   Ú
get_configr   r@   rK   rL   rM   )rG   rQ   rR   rT   rS   rV   s         r$   rY   rY   v   s³  € Ý�&�$ÑÔð Ø—j’j Ñ(Ô(ˆØ—z’z 'Ñ*Ô*ˆØ�ZŠZÐ,Ñ-Ô-ˆˆð	Ø ×.Ò.¨vÑ6Ô6Ô<ˆKˆKøÝð 	ð 	ð 	ØˆKˆKˆKð	øøøð	 Ø!×/Ò/°Ñ8Ô8Ô>ˆLˆLøÝð 	 ð 	 ð 	 ØˆLˆLˆLð	 øøøð	Ø×%Ò%Ð&:Ñ;Ô;ÔAˆBˆBøÝð 	ð 	ð 	ØˆBˆBˆBð	øøøð (,€IØÐð	>ÝÕ0°+Ñ>Ô>ˆKˆKøÝð 	>ð 	>ð 	>ÝÐ<¸Ð<Ð<Ñ=Ô=Ð=øøøøð	>øøøàÐð	?ÝÕ 2°LÑAÔAˆLˆLøÝð 	?ð 	?ð 	?ÝÐ=¸!Ð=Ð=Ñ>Ô>Ð>øøøøð	?øøøð 
€zØˆØ˜XÐ&ˆ	à	€~ð	+Ø�|Š|‰~Œ~ð 6Ø# XÐ.�	�	ð ŸGšG™IœIØ#Ø Ÿmšm™oœoðð �	õ
 ,­D°©H¬HÑ5Ô5Ð5øøÝð 	+ð 	+ð 	+ÝŒMØ8°QÐ8Ð8Ý"Øðñ ô ð ð
 ˆBØ Ð*ˆIˆIˆIˆIˆIˆIøøøøð	+øøøð ØØ'ðð ð s   ÁA2 Á2BÂ BÂB  Â B/Â.B/Â3C ÃCÃCÃ%C; Ã;
DÄDÄDÄ"D8 Ä8
EÅEÅEÅ'AG Ç
H Ç%G;Ç;H c                   ó`   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   d	S )
ÚCreateHNSWConfigurationr   r   r   r   r   r   r   r   Nr   r"   r#   r$   rh   rh   ´   r%   r#   rh   Újson_mapc                 óP  — i }d| v r6| d         }|t          t          ¦  «        v r||d<   nt          d|› �¦  «        ‚d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   d	| v r| d	         |d	<   |S )
Nr   únot a valid space: r   r   r   r   r   r   r   ©r   r	   rJ   ©ri   rG   Úspace_values      r$   Ú!json_to_create_hnsw_configurationro   ¿   s  € ð ')€FØ�(ÐÐØ˜wÔ'ˆØ�(¥5™/œ/Ð)Ð)Ø)ˆF�7‰OˆOåÐ@°;Ð@Ð@ÑAÔAÐAØ˜HÐ$Ð$Ø$,Ð->Ô$?ˆÐ Ñ!Ø˜(Ð"Ð"Ø"*¨?Ô";ˆˆÑØ�hÐÐØ& {Ô3ˆˆ{ÑØ˜Ð Ð Ø (¨Ô 7ˆˆ}ÑØ�xÐÐØ'¨Ô5ˆˆ|ÑØ˜8Ð#Ð#Ø#+Ð,<Ô#=ˆÐÑ Ø˜(Ð"Ð"Ø"*¨?Ô";ˆˆÑØ€Mr#   c                   ój   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   d
S )ÚCreateSpannConfigurationr)   r*   r   r   r   r   r+   r,   r-   Nr.   r"   r#   r$   rq   rq   Ú   r/   r#   rq   c                 ó  — i }d| v r| d         |d<   d| v r| d         |d<   d| v r6| d         }|t          t          ¦  «        v r||d<   nt          d|› �¦  «        ‚d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   |S )Nr)   r*   r   rk   r   r   r   rl   rm   s      r$   Ú"json_to_create_spann_configurationrs   æ   sÚ   € ð (*€FØ˜(Ð"Ð"Ø"*¨?Ô";ˆˆÑØ˜Ð!Ð!Ø!)¨.Ô!9ˆˆ~ÑØ�(ÐÐØ˜wÔ'ˆØ�(¥5™/œ/Ð)Ð)Ø)ˆF�7‰OˆOåÐ@°;Ð@Ð@ÑAÔAÐAØ˜HÐ$Ð$Ø$,Ð->Ô$?ˆÐ Ñ!Ø�hÐÐØ& {Ô3ˆˆ{ÑØ˜(Ð"Ð"Ø"*¨?Ô";ˆˆÑØ€Mr#   c                   óR   — e Zd ZU ee         ed<   ee         ed<   ee         ed<   dS )ÚCreateCollectionConfigurationr2   r3   r4   N)r   r   r   r   rh   r   rq   r   r"   r#   r$   ru   ru   ý   óH   € € € € € € Ø
Ð*Ô
+Ð+Ð+Ñ+ØÐ,Ô-Ð-Ð-Ñ-Ø Ð!2Ô3Ð3Ð3Ñ3Ð3Ð3r#   ru   Úmetadatac                 ó    — t          | ¦  «        S )úFCreate a CreateCollectionConfiguration from legacy collection metadata)Ú9create_collection_configuration_from_legacy_metadata_dict)rw   s    r$   Ú?create_collection_configuration_from_legacy_collection_metadatar{     s   € õ EÀXÑNÔNÐNr#   c           	      óÊ   — ddddddddd	œ}i }|                       ¦   «         D ]\  }}||v r||||         <   Œt          |¦  «        }t          |¦  «        }t          |¬
¦  «        S )ry   r   r   r   r   r   r   r   r   )ú
hnsw:spacezhnsw:construction_efzhnsw:Múhnsw:search_efúhnsw:num_threadsúhnsw:batch_sizeúhnsw:sync_thresholdúhnsw:resize_factor©r2   )Úitemsro   Úpopulate_create_hnsw_defaultsru   ©rw   Ú
old_to_newri   rF   rd   rQ   s         r$   rz   rz   
  s’   € ð
 Ø 1Ø!Ø%Ø)Ø'Ø/Ø-ð	ð 	€Jð €HØ—~’~Ñ'Ô'ð /ð /‰ˆˆeØ�:ÐÐØ).ˆH�Z Ô%Ñ&øÝ3°HÑ=Ô=€KÝ/°Ñ<Ô<€Kå(¨kÐ:Ñ:Ô:Ð:r#   c                 ó6  — |                       d¦  «        �$|                       d¦  «        �t          d¦  «        ‚t          ¦   «         }|                       d¦  «        �t          | d         ¦  «        |d<   |                       d¦  «        �t	          | d         ¦  «        |d<   |                       d¦  «        �b| d         }|d         dk    rt          j        dt          d¬	¦  «         n1t          |d
                  }| 	                    |d         ¦  «        |d<   |S )Nr2   r3   r?   r4   r@   rA   rB   rC   rD   rF   rG   )
rI   rJ   ru   ro   rs   rK   rL   rM   r   rO   )ri   ÚresultrS   rT   s       r$   Ú.load_create_collection_configuration_from_jsonrŠ   #  s  € ð ‡|‚|�FÑÔÐ'¨H¯LªL¸Ñ,AÔ,AÐ,MÝÐAÑBÔBÐBå*Ñ,Ô,€Fð ‡|‚|�FÑÔÐ'Ý:¸8ÀFÔ;KÑLÔLˆˆv‰à‡|‚|�GÑÔÐ(Ý<¸XÀgÔ=NÑOÔOˆˆw‰ð ‡|‚|Ð(Ñ)Ô)Ð5ØÐ1Ô2ˆ	Ø�VÔ Ò(Ð(ÝŒMØ2Ý"Øðñ ô ð ð õ +¨9°VÔ+<Ô=ˆBØ+-×+?Ò+?À	È(Ô@SÑ+TÔ+TˆFÐ'Ñ(à€Mr#   c                 óF   — t          j        t          | |¦  «        ¦  «        S )zFConvert a CreateCollection configuration to a JSON-serializable string)r9   rX   Ú'create_collection_configuration_to_json)rG   rw   s     r$   Ú+create_collection_configuration_to_json_strr�   B  s   € õ
 Œ:Õ=¸fÀhÑOÔOÑPÔPÐPr#   c           	      óÜ  — d}|                       d¦  «        }|                       d¦  «        }|�;	 t          t          |¦  «        }n$# t          $ r}t	          d|› �¦  «        ‚d}~ww xY w|�;	 t          t
          |¦  «        }n$# t          $ r}t	          d|› �¦  «        ‚d}~ww xY w|�|�t	          d¦  «        ‚|                       d¦  «        €d}dd	i}|||d
œS 	 t          t          |                       d¦  «        ¦  «        }|                     ¦   «         rdd	i}�n�|€;|€9|�|                      d¦  «        €"t          |                     ¦   «         ¬¦  «        }|�,|                      d¦  «        €|                     ¦   «         |d<   |�,|                      d¦  «        €|                     ¦   «         |d<   |�…|                      d¦  «        | 	                    ¦   «         vr\t          j        d|                      d¦  «        › d|                     ¦   «         › d| 	                    ¦   «         › �t          d¬¦  «         |�…|                      d¦  «        | 	                    ¦   «         vr\t          j        d|                      d¦  «        › d|                     ¦   «         › d| 	                    ¦   «         › �t          d¬¦  «         |€ž|€œ|�š|                      d¦  «        �…|                      d¦  «        | 	                    ¦   «         vr\t          j        d|                      d¦  «        › d|                     ¦   «         › d| 	                    ¦   «         › �t          d¬¦  «         |                     ¦   «         d|                     ¦   «         dœ}t          t!          |¦  «        ¦  «         n<# t          $ r/}t          j        d|› �t"          d¬¦  «         d}dd	i}Y d}~nd}~ww xY w|||d
œS )zDConvert a CreateCollection configuration to a JSON-serializable dictNr2   r3   r\   r]   r?   r4   r@   rA   rH   r}   )r   r   zspace z is not supported by z. Supported spaces: rC   rD   r^   r_   r`   )rI   r   rh   rP   rJ   rq   r   re   Údefault_spaceÚsupported_spacesrK   rL   rF   ÚUserWarningrf   r   r@   rM   )rG   rw   rS   rQ   rR   rV   rT   s          r$   rŒ   rŒ   K  sò  € ð
 (,€IØ—*’*˜VÑ$Ô$€KØ—:’:˜gÑ&Ô&€LØÐð	>ÝÕ6¸ÑDÔDˆKˆKøÝð 	>ð 	>ð 	>ÝÐ<¸Ð<Ð<Ñ=Ô=Ð=øøøøð	>øøøàÐð	?ÝÕ 8¸,ÑGÔGˆLˆLøÝð 	?ð 	?ð 	?ÝÐ=¸!Ð=Ð=Ñ>Ô>Ð>øøøøð	?øøøð Ð <Ð#;ÝÐAÑBÔBÐBà‡z‚zÐ&Ñ'Ô'Ð/ØˆØ˜XÐ&ˆ	àØ!Ø"+ð
ð 
ð 	
ðB'ÝÕ# V§Z¢ZÐ0DÑ%EÔ%EÑFÔFˆØ�<Š<‰>Œ>ð 8	2Ø Ð*ˆI‰Ið Ð" |Ð';ØÐ# x§|¢|°LÑ'AÔ'AÐ'Iå"9À×@PÒ@PÑ@RÔ@RÐ"SÑ"SÔ"S�Kð Ð&¨;¯?ª?¸7Ñ+CÔ+CÐ+KØ')×'7Ò'7Ñ'9Ô'9�˜GÑ$ØÐ'¨L×,<Ò,<¸WÑ,EÔ,EÐ,MØ(*×(8Ò(8Ñ(:Ô(:�˜WÑ%ð Ð&Ø—?’? 7Ñ+Ô+°2×3FÒ3FÑ3HÔ3HÐHÐHÝ”Mð G §¢°Ñ!9Ô!9ð  Gð  GÐPR×PWÒPWÑPYÔPYð  Gð  GÐoq÷  pCò  pCñ  pEô  pEð  Gð  GÝ#Ø#$ðñ ô ð ð
 Ð'Ø×#Ò# GÑ,Ô,°B×4GÒ4GÑ4IÔ4IÐIÐIÝ”Mð H ×!1Ò!1°'Ñ!:Ô!:ð  Hð  HÐQS×QXÒQXÑQZÔQZð  Hð  HÐpr÷  qDò  qDñ  qFô  qFð  Hð  HÝ#Ø#$ðñ ô ð ð Ð#Ø Ð(ØÐ(Ø—L’L Ñ.Ô.Ð:à—<’< Ñ-Ô-°R×5HÒ5HÑ5JÔ5JÐJÐJÝ”Mð I §¢¨lÑ!;Ô!;ð  Ið  IÐRT×RYÒRYÑR[ÔR[ð  Ið  IÐqs÷  rEò  rEñ  rGô  rGð  Ið  IÝ#Ø#$ðñ ô ð ð Ÿš™	œ	ØØŸ-š-™/œ/ðð ˆIõ
 (­¨R©¬Ñ1Ô1Ð1øøÝð 'ð 'ð 'ÝŒØ4°Ð4Ð4ÝØð	
ñ 	
ô 	
ð 	
ð
 ˆØ˜XÐ&ˆ	ˆ	ˆ	ˆ	ˆ	ˆ	øøøøð'øøøð ØØ'ðð ð sH   °A Á
A'ÁA"Á"A'Á-B Â
B$ÂBÂB$ÃKN, Î,
O%Î6%O Ï O%rT   c                 óê  — |                       d¦  «        €|r|                     ¦   «         nd| d<   |                       d¦  «        €d| d<   |                       d¦  «        €d| d<   |                       d¦  «        €d| d<   |                       d	¦  «        €t          ¦   «         | d	<   |                       d
¦  «        €d| d
<   |                       d¦  «        €d| d<   |                       d¦  «        €d| d<   | S )z7Populate a CreateHNSW configuration with default valuesr   NÚl2r   éd   r   é   r   r   r   r   iè  r   g333333ó?)rI   r�   r   )rG   rT   s     r$   r…   r…   µ  s  € ð ‡z‚z�'ÑÔÐ"Ø02Ð<˜"×*Ò*Ñ,Ô,Ð,¸ˆˆw‰Ø‡z‚zÐ#Ñ$Ô$Ð,Ø$'ˆÐ Ñ!Ø‡z‚z�/Ñ"Ô"Ð*Ø"$ˆˆÑØ‡z‚z�+ÑÔÐ&Ø!ˆˆ{ÑØ‡z‚z�-Ñ Ô Ð(Ý )¡¤ˆˆ}ÑØ‡z‚z�,ÑÔÐ'Ø"ˆˆ|ÑØ‡z‚zÐ"Ñ#Ô#Ð+Ø#'ˆÐÑ Ø‡z‚z�/Ñ"Ô"Ð*Ø"%ˆˆÑØ€Mr#   c                   óB   — e Zd ZU eed<   eed<   eed<   eed<   eed<   dS )ÚUpdateHNSWConfigurationr   r   r   r   r   N)r   r   r   r    r   r!   r"   r#   r$   r—   r—   Ì  sH   € € € € € € Ø€N€N�NØÐÐÑØ€O€O�OØÐÐÑØÐÐÑÐÐr#   r—   c                 ó    — i }d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   d| v r| d         |d<   |S )Nr   r   r   r   r   r"   ©ri   rG   s     r$   Ú!json_to_update_hnsw_configurationrš   Ô  s’   € ð ')€FØ�hÐÐØ& {Ô3ˆˆ{ÑØ˜Ð Ð Ø (¨Ô 7ˆˆ}ÑØ�xÐÐØ'¨Ô5ˆˆ|ÑØ˜8Ð#Ð#Ø#+Ð,<Ô#=ˆÐÑ Ø˜(Ð"Ð"Ø"*¨?Ô";ˆˆÑØ€Mr#   c                   ó$   — e Zd ZU eed<   eed<   dS )ÚUpdateSpannConfigurationr)   r   N)r   r   r   r    r   r"   r#   r$   rœ   rœ   å  s%   € € € € € € ØÐÐÑØ€N€N�N€N€Nr#   rœ   c                 óF   — i }d| v r| d         |d<   d| v r| d         |d<   |S )Nr)   r   r"   r™   s     r$   Ú"json_to_update_spann_configurationrž   ê  sB   € ð (*€FØ˜(Ð"Ð"Ø"*¨?Ô";ˆˆÑØ�hÐÐØ& {Ô3ˆˆ{ÑØ€Mr#   c                   óR   — e Zd ZU ee         ed<   ee         ed<   ee         ed<   dS )ÚUpdateCollectionConfigurationr2   r3   r4   N)r   r   r   r   r—   r   rœ   r   r"   r#   r$   r    r    õ  rv   r#   r    c                 ó¦   — ddddddœ}i }|                       ¦   «         D ]\  }}||v r||||         <   Œt          |¦  «        }t          |¬¦  «        S )zGCreate an UpdateCollectionConfiguration from legacy collection metadatar   r   r   r   r   ©r~   r   r€   r�   r‚   rƒ   ©r„   rš   r    r†   s         r$   Ú?update_collection_configuration_from_legacy_collection_metadatar¤   û  ó|   € ð
 &Ø)Ø'Ø/Ø-ðð €Jð €HØ—~’~Ñ'Ô'ð /ð /‰ˆˆeØ�:ÐÐØ).ˆH�Z Ô%Ñ&øÝ3°HÑ=Ô=€KÝ(¨kÐ:Ñ:Ô:Ð:r#   c                 ó¦   — ddddddœ}i }|                       ¦   «         D ]\  }}||v r||||         <   Œt          |¦  «        }t          |¬¦  «        S )zCCreate an UpdateCollectionConfiguration from legacy update metadatar   r   r   r   r   r¢   rƒ   r£   r†   s         r$   Ú;update_collection_configuration_from_legacy_update_metadatar§     r¥   r#   c                 óH   — t          | ¦  «        }t          j        |¦  «        S )zFConvert an UpdateCollectionConfiguration to a JSON-serializable string)Ú'update_collection_configuration_to_jsonr9   rX   )rG   Ú	json_dicts     r$   Ú+update_collection_configuration_to_json_strr«   !  s!   € õ 8¸Ñ?Ô?€IÝŒ:�iÑ Ô Ð r#   c                 óª  — |                       d¦  «        }|                       d¦  «        }|                       d¦  «        }|€|€|€i S |�;	 t          t          |¦  «        }n$# t          $ r}t	          d|› �¦  «        ‚d}~ww xY w|�;	 t          t
          |¦  «        }n$# t          $ r}t	          d|› �¦  «        ‚d}~ww xY wd}|�‡|                     ¦   «         rddi}np|                     |                     ¦   «         ¦  «         | 	                    ¦   «         d	|                     ¦   «         d
œ}t          t          |¦  «        ¦  «         nd}|||dœS )zDConvert an UpdateCollectionConfiguration to a JSON-serializable dictr2   r3   r4   Nr\   r]   r@   rA   r^   r_   rH   )rI   r   r—   rP   rJ   rœ   re   Úvalidate_configrf   rF   r   r@   )rG   rQ   rR   rT   rV   rS   s         r$   r©   r©   )  s•  € ð —*’*˜VÑ$Ô$€KØ—:’:˜gÑ&Ô&€LØ	�ŠÐ(Ñ	)Ô	)€BØÐ˜|Ð3¸¸
Øˆ	àÐð	>ÝÕ6¸ÑDÔDˆKˆKøÝð 	>ð 	>ð 	>ÝÐ<¸Ð<Ð<Ñ=Ô=Ð=øøøøð	>øøøð Ðð	?ÝÕ 8¸,ÑGÔGˆLˆLøÝð 	?ð 	?ð 	?ÝÐ=¸!Ð=Ð=Ñ>Ô>Ð>øøøøð	?øøøð (,€IØ	€~Ø�<Š<‰>Œ>ð 		2Ø Ð*ˆIˆIà×Ò˜rŸ}š}™œÑ/Ô/Ð/àŸš™	œ	ØØŸ-š-™/œ/ðð ˆIõ
 (­¨R©¬Ñ1Ô1Ð1Ð1àˆ	ð ØØ'ðð ð s0   ÁA! Á!
BÁ+A=Á=BÂB Â
B?Â(B:Â:B?Újson_strc                 óH   — t          j        | ¦  «        }t          |¦  «        S r8   )r9   r:   Ú.load_update_collection_configuration_from_json)r®   ri   s     r$   Ú2load_update_collection_configuration_from_json_strr±   U  s!   € õ Œz˜(Ñ#Ô#€HÝ9¸(ÑCÔCÐCr#   c                 óJ  — |                       d¦  «        �$|                       d¦  «        �t          d¦  «        ‚t          ¦   «         }|                       d¦  «        �t          | d         ¦  «        |d<   |                       d¦  «        �t	          | d         ¦  «        |d<   |                       d¦  «        �l| d         d         dk    rt          j        dt          d	¬
¦  «         n=t          | d         d                  }| 	                    | d         d         ¦  «        |d<   |S )z7Convert a JSON dict to an UpdateCollectionConfigurationr2   Nr3   r?   r4   r@   rA   rB   rC   rD   rF   rG   )
rI   rJ   r    rš   rž   rK   rL   rM   r   rO   )ri   r‰   rT   s      r$   r°   r°   ]  s,  € ð ‡|‚|�FÑÔÐ'¨H¯LªL¸Ñ,AÔ,AÐ,MÝÐAÑBÔBÐBå*Ñ,Ô,€Fð ‡|‚|�FÑÔÐ'Ý:¸8ÀFÔ;KÑLÔLˆˆv‰à‡|‚|�GÑÔÐ(Ý<¸XÀgÔ=NÑOÔOˆˆw‰ð ‡|‚|Ð(Ñ)Ô)Ð5ØÐ(Ô)¨&Ô1°XÒ=Ð=ÝŒMØ2Ý"Øðñ ô ð ð õ +¨8Ð4HÔ+IÈ&Ô+QÔRˆBØ+-×+?Ò+?ØÐ-Ô.¨xÔ8ñ,ô ,ˆFÐ'Ñ(ð €Mr#   Úexisting_hnsw_configÚupdate_hnsw_configc                 óz   — t          | ¦  «        }g d¢}|D ]}||v r||         ||<   Œt          t          |¦  «        S )z6Overwrite a HNSWConfiguration with a new configuration)r   r   r   r   r   )rb   r   r   )r³   r´   r‰   Úupdate_fieldsÚfields        r$   Úoverwrite_hnsw_configurationr¸   ~  s`   € õ
 Ð&Ñ'Ô'€Fðð ð €Mð ð 6ð 6ˆØÐ&Ð&Ð&Ø.¨uÔ5ˆF�5‰MøåÕ! 6Ñ*Ô*Ð*r#   Úexisting_spann_configÚupdate_spann_configc                 óz   — t          | ¦  «        }ddg}|D ]}||v r||         ||<   Œt          t          |¦  «        S )z7Overwrite a SpannConfiguration with a new configurationr)   r   )rb   r   r(   )r¹   rº   r‰   r¶   r·   s        r$   Úoverwrite_spann_configurationr¼   “  s\   € õ
 Ð'Ñ(Ô(€FàØð€Mð
 ð 7ð 7ˆØÐ'Ð'Ð'Ø/°Ô6ˆF�5‰MøåÕ" FÑ+Ô+Ð+r#   Úexisting_embedding_functionÚupdate_embedding_functionc                 óÎ  — |                       ¦   «         s|                      ¦   «         rt          j        dt          d¬¦  «         | S |                      ¦   «         |                     ¦   «         k    r:t          d|                      ¦   «         › d|                     ¦   «         › d�¦  «        ‚|                     |                      ¦   «         |                     ¦   «         ¦  «         |S )z7Overwrite an EmbeddingFunction with a new configurationz.cannot update legacy embedding function configrC   rD   z6Cannot update embedding function: incompatible types (ú vs ú))re   rK   rL   rM   rF   rJ   Úvalidate_config_updaterf   )r½   r¾   s     r$   Úoverwrite_embedding_functionrÃ   ¦  s  € ð #×,Ò,Ñ.Ô.ð +Ð2K×2UÒ2UÑ2WÔ2Wð +ÝŒØ<ÝØð	
ñ 	
ô 	
ð 	
ð
 +Ð*ð #×'Ò'Ñ)Ô)Ð-F×-KÒ-KÑ-MÔ-MÒMÐMÝð\Ø+×0Ò0Ñ2Ô2ð\ð \Ø8Q×8VÒ8VÑ8XÔ8Xð\ð \ð \ñ
ô 
ð 	
ð ×4Ò4Ø#×.Ò.Ñ0Ô0Ð2K×2VÒ2VÑ2XÔ2Xñô ð ð %Ð$r#   Úexisting_configÚupdate_configc                 óÆ  — |                      d¦  «        }|                      d¦  «        }|�|�t          d¦  «        ‚|                       d¦  «        }|�|�t          ||¦  «        }|                       d¦  «        }|�|�t          ||¦  «        }|                       d¦  «        }|                      d¦  «        }|�|�t	          ||¦  «        }n|}t          |||¬¦  «        S )z<Overwrite a CollectionConfiguration with a new configurationr3   r2   Nr?   r4   rH   )rI   rJ   r¸   r¼   rÃ   r1   )rÄ   rÅ   Úupdate_spannÚupdate_hnswÚupdated_hnsw_configÚupdated_spann_configÚupdated_embedding_functionÚ	update_efs           r$   Ú"overwrite_collection_configurationrÍ   Â  s'  € ð
 !×$Ò$ WÑ-Ô-€LØ×#Ò# FÑ+Ô+€KØÐ KÐ$;ÝÐAÑBÔBÐBð *×-Ò-¨fÑ5Ô5ÐØÐ&¨;Ð+BÝ:Ø ñ
ô 
Ðð
 +×.Ò.¨wÑ7Ô7ÐØÐ'¨LÐ,DÝ<Ø  ,ñ 
ô  
Ðð
 "1×!4Ò!4Ð5IÑ!JÔ!JÐØ×!Ò!Ð"6Ñ7Ô7€IØÐØ%Ð1Ý)EØ*¨Iñ*ô *Ð&Ð&ð *3Ð&å"Ø Ø"Ø5ðñ ô ð r#   r4   Úconfiguration_efc                 ó  — | �}|�{|                       ¦   «         dk    rc|                       ¦   «         |                      ¦   «         k    r9t          d|                       ¦   «         › d|                      ¦   «         › �¦  «        ‚dS )ap  
    Validates that there are no conflicting embedding functions between function parameter
    and collection configuration.

    Args:
        embedding_function: The embedding function provided as a parameter
        configuration_ef: The embedding function from collection configuration

    Returns:
        bool: True if there is a conflict, False otherwise
    NÚdefaultz]Multiple embedding functions provided. Please provide only one. Embedding function conflict: rÀ   )rF   rJ   )r4   rÎ   s     r$   Ú.validate_embedding_function_conflict_on_createrÑ   í  sÈ   € ð$ Ð%Ð*:Ð*Fà×#Ò#Ñ%Ô%¨Ò2Ð2Ø"×'Ò'Ñ)Ô)Ð-=×-BÒ-BÑ-DÔ-DÒDÐDåð ið  qC÷  qHò  qHñ  qJô  qJð  ið  ið  P`÷  Peò  Peñ  Pgô  Pgð  ið  iñô ð ð ˆ4r#   Úpersisted_ef_configc                 ó2  — |�”| �’|                       ¦   «         dk    rz|                     d¦  «        �e|                     d¦  «        |                       ¦   «         k    r:t          d|                       ¦   «         › d|                     d¦  «        › �¦  «        ‚dS )z‚
    Validates that there are no conflicting embedding functions between function parameter
    and collection configuration.
    NrÐ   rF   z¾An embedding function already exists in the collection configuration, and a new one is provided. If this is intentional, please embed documents separately. Embedding function conflict: new: z vs persisted: )rF   rI   rJ   )r4   rÒ   s     r$   Ú+validate_embedding_function_conflict_on_getrÔ     så   € ð Ð&Ð+=Ð+Ià×#Ò#Ñ%Ô%¨Ò2Ð2Ø#×'Ò'¨Ñ/Ô/Ð;Ø#×'Ò'¨Ñ/Ô/Ð3E×3JÒ3JÑ3LÔ3LÒLÐLåð ]ð  Rd÷  Riò  Riñ  Rkô  Rkð  ]ð  ]ð  |O÷  |Sò  |Sð  TZñ  |[ô  |[ð  ]ð  ]ñô ð ð ˆ4r#   Úschemar   Úconfigurationc                 ó\  — | j         j        �| j         j        j        €t          d¦  «        ‚d}|| j        vrt          d|› d�¦  «        ‚| j        |         }|j        �|j        j        €t          d|› d�¦  «        ‚| j         j        j        |j        j        fD �]}d|v r�|d         �…|j        j        €t          d¦  «        ‚|j        j        }|d         }d	|v r|d	         |_        d
|v r|d
         |_        d|v r|d         |_	        d|v r|d         |_
        d|v r|d         |_        n]d|v rY|d         �Q|j        j        €t          d¦  «        ‚|j        j        }|d         }d|v r|d         |_        d	|v r|d	         |_        d|v r|d         �|d         |j        _        �Œ| S )a  
    Updates a schema with configuration changes.
    Only updates fields that are present in the configuration update.

    Args:
        schema: The existing Schema object
        configuration: The configuration updates to apply

    Returns:
        Updated Schema object
    Nz2Schema is missing defaults.float_list.vector_indexz
#embeddingzSchema is missing keys[ú]z].float_list.vector_indexr2   z1Trying to update HNSW config but schema has SPANNr   r   r   r   r   r3   z1Trying to update SPANN config but schema has HNSWr)   r4   )ÚdefaultsÚ
float_listÚvector_indexrJ   ÚkeysrG   r2   r   r   r   r   r   r3   r)   r4   )	rÕ   rÖ   Úembedding_keyÚembedding_value_typesrÛ   rQ   rÈ   rR   rÇ   s	            r$   Ú+update_schema_from_collection_configurationrß   !  s-  € ð" 	ŒÔ"Ð*ØŒ?Ô%Ô2Ð:åÐMÑNÔNÐNà €MØ˜FœKÐ'Ð'ÝÐC°=ÐCÐCÐCÑDÔDÐDà"œK¨Ô6ÐàÔ(Ð0Ø Ô+Ô8Ð@åØN mÐNÐNÐNñ
ô 
ð 	
ð 	ŒÔ"Ô/ØÔ(Ô5ðð +Yñ +Yˆð �]Ð"Ð" }°VÔ'<Ð'HàÔ"Ô'Ð/Ý Ð!TÑUÔUÐUà&Ô-Ô2ˆKØ'¨Ô/ˆKð ˜kÐ)Ð)Ø(3°KÔ(@�Ô%Ø Ð+Ð+Ø*5°mÔ*D�Ô'Ø˜{Ð*Ð*Ø)4°\Ô)B�Ô&Ø ;Ð.Ð.Ø-8Ð9IÔ-J�Ô*Ø +Ð-Ð-Ø,7¸Ô,H�Ô)øà˜Ð%Ð%¨-¸Ô*@Ð*LàÔ"Ô(Ð0Ý Ð!TÑUÔUÐUà'Ô.Ô4ˆLØ(¨Ô1ˆLð  ,Ð.Ð.Ø-9¸/Ô-J�Ô*Ø˜lÐ*Ð*Ø)5°kÔ)B�Ô&ð ! MÐ1Ð1ØÐ2Ô3Ð?à5BÐCWÔ5XˆLÔÔ2ùà€Mr#   r8   )rÕ   r   rÖ   r    r6   r   )9Útypingr   r   r   r   r   r   r9   Úchromadb.api.typesr	   r
   r   r   Ú"chromadb.utils.embedding_functionsr   r   Úmultiprocessingr   rK   r   r   r(   r1   Ústrr=   r;   rZ   rY   rh   ro   rq   rs   ru   r{   rz   rŠ   r�   rŒ   r…   r—   rš   rœ   rž   r    r¤   r§   r«   r©   r±   r°   r¸   r¼   rÃ   rÍ   rÑ   rÔ   rß   r"   r#   r$   ú<module>rå      sŸ  ðØ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ €€€ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %Ø €€€à %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ˜	¨ð ñ ô ð ð	ð 	ð 	ð 	ð 	˜¨%ð 	ñ 	ô 	ð 	ð4ð 4ð 4ð 4ð 4˜i¨tð 4ñ 4ô 4ð 4ðDØðDàðDð Dð Dð Dð7Ø˜#˜s˜(”^ð7àð7ð 7ð 7ð 7ðt@Ð1Hð @ÈSð @ð @ð @ð @ð;Ð-Dð ;ÈÈcÐSVÈhÌð ;ð ;ð ;ð ;ð|ð ð ð ð ˜i¨uð ñ ô ð ðØ�3˜�8Œnðàðð ð ð ð6	ð 	ð 	ð 	ð 	˜y°ð 	ñ 	ô 	ð 	ðØ�3˜�8Œnðàðð ð ð ð.4ð 4ð 4ð 4ð 4 I°Uð 4ñ 4ô 4ð 4ðOØ ðOà"ðOð Oð Oð Oð;Ø�3˜�8Œnð;à"ð;ð ;ð ;ð ;ð2Ø�3˜�8Œnðà"ðð ð ð ðB .2ðQð QØ)ðQàÐ)Ô*ðQð 	ðQð Qð Qð Qð .2ðgð gØ)ðgàÐ)Ô*ðgð 
ˆ#ˆsˆ(„^ðgð gð gð gðV HLðð Ø#ðØ)1Ð2CÔ)Dðàðð ð ð ð.ð ð ð ð ˜i¨uð ñ ô ð ðØ�3˜�8Œnðàðð ð ð ð"ð ð ð ð ˜y°ð ñ ô ð ð
Ø�3˜�8Œnðàðð ð ð ð4ð 4ð 4ð 4ð 4 I°Uð 4ñ 4ô 4ð 4ð;Ø ð;à"ð;ð ;ð ;ð ;ð&;Øð;à"ð;ð ;ð ;ð ;ð&!Ø)ð!àð!ð !ð !ð !ð)Ø)ð)à	ˆ#ˆsˆ(„^ð)ð )ð )ð )ðXDØðDà"ðDð Dð Dð DðØ�3˜�8Œnðà"ðð ð ð ðB+Ø+ð+ØAXð+àð+ð +ð +ð +ð*,Ø-ð,à1ð,ð ð,ð ,ð ,ð ,ð&%Ø!2ð%à0ð%ð ð%ð %ð %ð %ð8(Ø,ð(à0ð(ð ð(ð (ð (ð (ðVØ Ð!2Ô3ðàÐ0Ô1ðð 
ðð ð ð ð@Ø Ð!2Ô3ðà! $ s¨C x¤.Ô1ðð 
ðð ð ð ð(QØðQØ%DðQàðQð Qð Qð Qð Qð Qr#   