§
    ˜Štjâ—  ã                   óX  — d dl mZ d dlmZmZmZmZ d dlmZ erd dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZmZmZmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZ d dlm Z  d dl!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-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z6 d dl7m8Z8 d dl9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZS d dlTmUZUmVZVmWZWmXZXmYZYmZZZ d dl4m[Z\ d dl m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZe d dlfmgZg d dlhmiZimjZj d dlkmlZl d dlmZmd dlnZnd dloZod dl'mpZp  eddecdeaf         ¬¦  «        Zq enjr        es¦  «        Ztd eud!dfd"„Zvd#eqd!eqfd$„Zw G d%„ d&e¦  «        Zx	 	 	 	 d.d'e\jy        d(e?d)e]e@         d*e]eA         d+e]eB         d,e]eE         d!e_e\jz        ddf         fd-„Z{dS )/é    )ÚTYPE_CHECKING)ÚretryÚstop_after_attemptÚretry_if_exceptionÚ
wait_fixed)Ú	ServerAPI)ÚAttachedFunction)ÚCreateCollectionConfigurationÚUpdateCollectionConfigurationÚ'create_collection_configuration_to_json)ÚUserIdentity)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚSettingsÚSystem)ÚSysDB)ÚQuotaEnforcerÚAction)ÚRateLimitEnforcer)ÚSegmentManager)ÚExecutor)ÚScanÚFilterÚLimitÚKNNÚ
Projection)Ú	CountPlanÚGetPlanÚKNNPlan)Úadd_attributes_to_current_spanÚOpenTelemetryClientÚOpenTelemetryGranularityÚtrace_method)ÚProductTelemetryClient)ÚProducer)Ú
Collection©Ú__version__)ÚInvalidDimensionExceptionÚNotFoundErrorÚVersionMismatchError)ÚCollectionMetadataÚIDsÚ
EmbeddingsÚ	MetadatasÚ	DocumentsÚ	ReadLevelÚSchemaÚURIsÚWhereÚWhereDocumentÚIncludeÚ	GetResultÚQueryResultÚSearchResultÚvalidate_metadataÚvalidate_update_metadataÚvalidate_whereÚvalidate_where_documentÚvalidate_batchÚIncludeMetadataDocumentsÚ!IncludeMetadataDocumentsDistancesÚDeleteResult)ÚCollectionAddEventÚCollectionDeleteEventÚCollectionGetEventÚCollectionUpdateEventÚCollectionQueryEventÚClientCreateCollectionEventN)	ÚOptionalÚSequenceÚ	GeneratorÚListÚAnyÚDictÚCallableÚTypeVarÚTuple)Úoverride)ÚUUIDÚuuid4)Úwraps)ÚSearchÚT.)ÚboundÚ
index_nameÚreturnc                 ó0  — d| › �}t          | ¦  «        dk     st          | ¦  «        dk    rt          |¦  «        ‚t          j        d| ¦  «        st          |¦  «        ‚d| v rt          |¦  «        ‚t          j        d| ¦  «        rt          |¦  «        ‚d S )Na  Expected collection name that (1) contains 3-63 characters, (2) starts and ends with an alphanumeric character, (3) otherwise contains only alphanumeric characters, underscores or hyphens (-), (4) contains no two consecutive periods (..) and (5) is not a valid IPv4 address, got é   é?   z'^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]$z..z0^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$)ÚlenÚ
ValueErrorÚreÚmatch)rX   Úmsgs     úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/api/segment.pyÚcheck_index_namerc   `   s­   € ð	ð ð	ð 	ð õ ˆ:�„˜ÒÐ�c *™oœo°Ò2Ð2Ý˜‰oŒoÐÝŒ8Ð=¸zÑJÔJð Ý˜‰oŒoÐØˆzÐÐÝ˜‰oŒoÐÝ	„xÐEÀzÑRÔRð Ý˜‰oŒoÐðð ó    Úfuncc                 óh   ‡ — t          ‰ ¦  «        dt          dt          dt          fˆ fd„¦   «         }|S )NÚargsÚkwargsrY   c                  óT   •— | d         } |j                              ‰¦  «        | i |¤ŽS )Nr   )Ú_rate_limit_enforcerÚ
rate_limit)rg   rh   Úselfre   s      €rb   Úwrapperzrate_limit.<locals>.wrapperu   s2   ø€ à�AŒwˆØ9ˆtÔ(×3Ò3°DÑ9Ô9¸4ÐJÀ6ÐJÐJÐJrd   )rT   rL   )re   rm   s   ` rb   rk   rk   t   sV   ø€ Ý
ˆ4�[„[ðK•sð K¥cð K­cð Kð Kð Kð Kð Kñ „[ðKð €Nrd   c                   óØ  ‡ — e Zd ZU dZ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
<   eed<   defˆ fd„Zedefd„¦   «         Z edej        ¦  «        eefdededdfd„¦   «         ¦   «         Z edej        ¦  «        eefdededej        fd„¦   «         ¦   «         Z edej        ¦  «        eefdededdfd„¦   «         ¦   «         Z edej        ¦  «        eddefdee         dee         dedeej                 fd„¦   «         ¦   «         Z edej        ¦  «        ededdfd„¦   «         ¦   «         Zede fd„¦   «         Z! ed ej        ¦  «        ededej"        fd!„¦   «         ¦   «         Z# ed"ej        ¦  «        ee$dddd#ee%fded$ee&         d%ee'         d&ee(         d'e)ded(ede*fd)„¦   «         ¦   «         ¦   «         Z+ ed*ej        ¦  «        ee$dddee%fded$ee&         d%ee'         d&ee(         ded(ede*fd+„¦   «         ¦   «         ¦   «         Z, ed,ej        ¦  «        ee$dee%fdee         ded(ede*fd-„¦   «         ¦   «         ¦   «         Z- ed.ej        ¦  «        ee$ee%fd/e.ded(ede*fd0„¦   «         ¦   «         ¦   «         Z/ ed1ej        ¦  «        ee$ddee%fdee         dee         ded(edee*         f
d2„¦   «         ¦   «         ¦   «         Z0 ed3ej        ¦  «        ee$ee%fded(edefd4„¦   «         ¦   «         ¦   «         Z1 ed5ej        ¦  «        ee$dddee%fd6e.d7ee         d8ee(         d9ee2         ded(eddfd:„¦   «         ¦   «         ¦   «         Z3eee%fd/e.d7eded(ede*f
d;„¦   «         Z4eee%fd/e.ded(edefd<„¦   «         Z5eee%fd/e.ded(edd=fd>„¦   «         Z6eee%e7j8        fd/e.d?e9e:         ded(ed@e7de;fdA„¦   «         Z< edBej        ¦  «        ee$ee%fdeded(eddfdC„¦   «         ¦   «         ¦   «         Z= edDej        ¦  «        ee$dddee%fdEe>d/e.dFe?dGee@         dHeeA         dIeeB         ded(ede)fdJ„¦   «         ¦   «         ¦   «         ZC edKej        ¦  «        ee$ddddee%fd/e.dEe>dFee?         dGee@         dHeeA         dIeeB         ded(ede)fdL„¦   «         ¦   «         ¦   «         ZD edMej        ¦  «        ee$dddee%fd/e.dEe>dFe?dGee@         dHeeA         dIeeB         ded(ede)fdN„¦   «         ¦   «         ¦   «         ZE edOej        ¦  «         eF eGdP„ ¦  «         eHdQ¦  «         eIdR¦  «        dS¬T¦  «        ee$dddddeJee%fd/e.dEee>         dUeeK         dee         dee         dVeeL         dWeMded(edeNfdX„¦   «         ¦   «         ¦   «         ¦   «         ZO edYej        ¦  «        ee$ddddee%fd/e.dEee>         dUeeK         dVeeL         dee         ded(edePfdZ„¦   «         ¦   «         ¦   «         ZQ ed[ej        ¦  «         eF eGd\„ ¦  «         eHdQ¦  «         eIdR¦  «        dS¬T¦  «        ee$ee%e7j8        fd/e.ded(ed@e7def
d]„¦   «         ¦   «         ¦   «         ¦   «         ZR ed^ej        ¦  «         eF eGd_„ ¦  «         eHdQ¦  «         eIdR¦  «        dS¬T¦  «        ee$dd`ddeSee%fd/e.dae?dEee>         dbedUeeK         dVeeL         dWeMded(edeTfdc„¦   «         ¦   «         ¦   «         ¦   «         ZU eddej        ¦  «        ee$d`ee%fd/e.deeded(edeNf
df„¦   «         ¦   «         ¦   «         ZVedefdg„¦   «         ZWed€dh„¦   «         ZXede)fdi„¦   «         ZYedefdj„¦   «         ZZedefdk„¦   «         Z[edee%fdlededme.dnedoee\ee]f                  ded(ede^dpe)f         fdq„¦   «         Z_eee%fdedme.ded(eddpf
dr„¦   «         Z`ed#ee%fdedme.dse)ded(ede)fdt„¦   «         Za eduejb        ¦  «        dvejc        dwe9ejd                 ddfdx„¦   «         Zedvejc        dyedze)ddfd{„Zf ed|ejb        ¦  «        d/e.dejc        fd}„¦   «         Zg ed~ej        ¦  «        d/e.dehfd„¦   «         Ziˆ xZjS )�Ú
SegmentAPIzHAPI implementation utilizing the new segment-based internal architectureÚ	_settingsÚ_sysdbÚ_managerÚ	_executorÚ	_producerÚ_product_telemetry_clientÚ_opentelemetry_clientÚ
_tenant_idÚ	_topic_nsrj   Úsystemc                 ó\  •— t          ¦   «                              |¦  «         |j        | _        |                      t
          ¦  «        | _        |                      t          ¦  «        | _        |                      t          ¦  «        | _
        |                      t          ¦  «        | _        |                      t          ¦  «        | _        |                      t          ¦  «        | _        |                      t"          ¦  «        | _        | j                             t(          ¦  «        | _        d S ©N)ÚsuperÚ__init__Úsettingsrp   Úrequirer   rq   r   rr   r   rs   r   Ú_quota_enforcerr$   ru   r!   rv   r%   rt   Ú_systemr   rj   )rl   ry   Ú	__class__s     €rb   r}   zSegmentAPI.__init__‹   sÍ   ø€ Ý‰Œ×Ò˜Ñ Ô Ð ØœˆŒØ—l’l¥5Ñ)Ô)ˆŒØŸš¥^Ñ4Ô4ˆŒØŸš¥hÑ/Ô/ˆŒØ#Ÿ|š|­MÑ:Ô:ˆÔØ)-¯ªÕ6LÑ)MÔ)MˆÔ&Ø%)§\¢\Õ2EÑ%FÔ%FˆÔ"ØŸš¥hÑ/Ô/ˆŒØ$(¤L×$8Ò$8Õ9JÑ$KÔ$KˆÔ!Ð!Ð!rd   rY   c                 óB   — t          t          j        ¦   «         ¦  «        S r{   )ÚintÚtimeÚtime_ns©rl   s    rb   Ú	heartbeatzSegmentAPI.heartbeat—   s   € å•4”<‘>”>Ñ"Ô"Ð"rd   zSegmentAPI.create_databaseÚnameÚtenantNc                 óê   — t          |¦  «        dk     rt          d¦  «        ‚| j                             t          j        ||¬¦  «         | j                             t          ¦   «         ||¬¦  «         d S )Nr[   z0Database name must be at least 3 characters long)ÚactionrŠ   r‰   )Úidr‰   rŠ   )	r]   r^   r€   Úenforcer   ÚCREATE_DATABASErq   Úcreate_databaserS   ©rl   r‰   rŠ   s      rb   r�   zSegmentAPI.create_database›   s†   € õ ˆt‰9Œ9�qŠ=ˆ=ÝÐOÑPÔPÐPàÔ×$Ò$ÝÔ)ØØð 	%ñ 	
ô 	
ð 	
ð 	Œ×#Ò#Ý‰wŒwØØð 	$ñ 	
ô 	
ð 	
ð 	
ð 	
rd   zSegmentAPI.get_databasec                 ó:   — | j                              ||¬¦  «        S ©N)r‰   rŠ   )rq   Úget_databaser‘   s      rb   r”   zSegmentAPI.get_database­   s   € ð Œ{×'Ò'¨T¸&Ð'ÑAÔAÐArd   zSegmentAPI.delete_databasec                 ó>   — | j                              ||¬¦  «         d S r“   )rq   Údelete_databaser‘   s      rb   r–   zSegmentAPI.delete_database²   s%   € ð 	Œ×#Ò#¨°fÐ#Ñ=Ô=Ð=Ð=Ð=rd   zSegmentAPI.list_databasesÚlimitÚoffsetc                 ó<   — | j                              |||¬¦  «        S )N)r—   r˜   rŠ   )rq   Úlist_databases)rl   r—   r˜   rŠ   s       rb   rš   zSegmentAPI.list_databases·   s!   € ð Œ{×)Ò)°¸fÈVÐ)ÑTÔTÐTrd   zSegmentAPI.create_tenantc                 ó€   — t          |¦  «        dk     rt          d¦  «        ‚| j                             |¬¦  «         d S )Nr[   z.Tenant name must be at least 3 characters long©r‰   )r]   r^   rq   Úcreate_tenant©rl   r‰   s     rb   r�   zSegmentAPI.create_tenantÁ   sN   € õ ˆt‰9Œ9�qŠ=ˆ=ÝÐMÑNÔNÐNàŒ×!Ò!Øð 	"ñ 	
ô 	
ð 	
ð 	
ð 	
rd   c                 ó<   — t          dt          t          g¬¦  «        S )NÚ )Úuser_idrŠ   Ú	databases)r   r   r   r‡   s    rb   Úget_user_identityzSegmentAPI.get_user_identityË   s%   € åØÝ!Ý'Ð(ð
ñ 
ô 
ð 	
rd   zSegmentAPI.get_tenantc                 ó8   — | j                              |¬¦  «        S )Nrœ   )rq   Ú
get_tenantrž   s     rb   r¥   zSegmentAPI.get_tenantÓ   s   € ð Œ{×%Ò%¨4Ð%Ñ0Ô0Ð0rd   zSegmentAPI.create_collectionFÚschemaÚconfigurationÚmetadataÚget_or_createÚdatabasec                 óú  — |�t          |¦  «         t          |¦  «         | j                             t          j        |||¬¦  «         t          ¦   «         }t          |||d t          |pt          ¦   «         |¦  «        ||d ¬¦  «        }	| j
                             |	j        |	j        ||pt          ¦   «         g |	j        d |||¬¦
  «
        \  }
}|r:| j                             |
¦  «        }|D ]}| j
                             |¦  «         Œnt$                               d|› d�¦  «         | j                             t-          t/          |¦  «        ¬¦  «        ¦  «         t1          dt/          |¦  «        i¦  «         |
S )N©rŒ   rŠ   r‰   r¨   )r�   r‰   r¨   Úserialized_schemaÚconfiguration_jsonrŠ   rª   Ú	dimension)
r�   r‰   r¦   r§   Úsegmentsr¨   r¯   r©   rŠ   rª   úCollection z/ already exists, returning existing collection.)Úcollection_uuidr²   )r:   rc   r€   rŽ   r   ÚCREATE_COLLECTIONrS   ÚCollectionModelr   r
   rq   Úcreate_collectionr�   r‰   r¨   rr   Ú#prepare_segments_for_new_collectionÚcreate_segmentÚloggerÚdebugru   ÚcapturerG   Ústrr    )rl   r‰   r¦   r§   r¨   r©   rŠ   rª   r�   ÚmodelÚcollÚcreatedr°   Úsegments                 rb   rµ   zSegmentAPI.create_collectionÛ   sÈ  € ð ÐÝ˜hÑ'Ô'Ð'õ 	˜ÑÔÐàÔ×$Ò$ÝÔ+ØØØð	 	%ñ 	
ô 	
ð 	
õ ‰WŒWˆåØØØØ"ÝFØÐ@Õ!>Ñ!@Ô!@À(ñ ô  ð ØØð
ñ 
ô 
ˆð œ×5Ò5ØŒxØ”ØØ'ÐJÕ+HÑ+JÔ+JØØ”^ØØ'ØØð 6ñ 
ô 
‰ˆˆgð ð 	Ø”}×HÒHÈÑNÔNˆHØ#ð 4ð 4�Ø”×*Ò*¨7Ñ3Ô3Ð3Ð3ð4õ �LŠLØS˜dÐSÐSÐSñô ð ð 	Ô&×.Ò.Ý'Ý # B¡¤ðñ ô ñ	
ô 	
ð 	
õ 	'Ð(9½3¸r¹7¼7Ð'CÑDÔDÐDàˆrd   z#SegmentAPI.get_or_create_collectionc           	      ó:   — |                       ||||d||¬¦  «        S )NT)r‰   r¦   r¨   r§   r©   rŠ   rª   )rµ   )rl   r‰   r¦   r§   r¨   rŠ   rª   s          rb   Úget_or_create_collectionz#SegmentAPI.get_or_create_collection'  s6   € ð ×%Ò%ØØØØ'ØØØð &ñ 
ô 
ð 	
rd   zSegmentAPI.get_collectionc                 óv   — | j                              |||¬¦  «        }|r|d         S t          d|› d�¦  «        ‚)N©r‰   rŠ   rª   r   r±   ú does not exist.©rq   Úget_collectionsr*   ©rl   r‰   rŠ   rª   Úexistings        rb   Úget_collectionzSegmentAPI.get_collectionB  sV   € ð ”;×.Ò.Ø˜f¨xð /ñ 
ô 
ˆð ð 	FØ˜A”;ÐåÐ D¨dÐ DÐ DÐ DÑEÔEÐErd   zSegmentAPI.get_collection_by_idÚcollection_idc                 óv   — | j                              |||¬¦  «        }|r|d         S t          d|› d�¦  «        ‚)N)r�   rŠ   rª   r   r±   rÄ   rÅ   )rl   rÊ   rŠ   rª   rÈ   s        rb   Úget_collection_by_idzSegmentAPI.get_collection_by_idT  sV   € ð ”;×.Ò.Ø V°hð /ñ 
ô 
ˆð ð 	OØ˜A”;ÐåÐ M¨mÐ MÐ MÐ MÑNÔNÐNrd   zSegmentAPI.list_collectionc                 óŒ   — | j                              t          j        ||¬¦  «         | j                             ||||¬¦  «        S )N)rŒ   rŠ   r—   )r—   r˜   rŠ   rª   )r€   rŽ   r   ÚLIST_COLLECTIONSrq   rÆ   )rl   r—   r˜   rŠ   rª   s        rb   Úlist_collectionszSegmentAPI.list_collectionsf  sZ   € ð 	Ô×$Ò$ÝÔ*ØØð 	%ñ 	
ô 	
ð 	
ð Œ{×*Ò*Ø ¨vÀð +ñ 
ô 
ð 	
rd   zSegmentAPI.count_collectionsc                 ó:   — | j                              ||¬¦  «        S )N©rŠ   rª   )rq   Úcount_collections)rl   rŠ   rª   s      rb   rÒ   zSegmentAPI.count_collectionsz  s   € ð Œ{×,Ò,°FÀXÐ,ÑNÔNÐNrd   zSegmentAPI._modifyr�   Únew_nameÚnew_metadataÚnew_configurationc                 ó¢  — |rt          |¦  «         |rt          |¦  «         |                      |¦  «        }| j                             t
          j        |||¬¦  «         |r$|r"|r | j                             ||||¬¦  «         d S |r!|r| j                             |||¬¦  «         d S |r!|r| j                             |||¬¦  «         d S |r!|r| j                             |||¬¦  «         d S |r| j                             ||¬¦  «         d S |r| j                             ||¬¦  «         d S |r| j                             ||¬¦  «         d S d S )	Nr¬   )r‰   r¨   r§   )r‰   r¨   )r‰   r§   )r¨   r§   rœ   )r¨   )r§   )	rc   r;   Ú_get_collectionr€   rŽ   r   ÚUPDATE_COLLECTIONrq   Úupdate_collection)rl   r�   rÓ   rÔ   rÕ   rŠ   rª   Ú_s           rb   Ú_modifyzSegmentAPI._modify„  s  € ð ð 	'å˜XÑ&Ô&Ð&àð 	3Ý$ \Ñ2Ô2Ð2ð × Ò  Ñ$Ô$ˆàÔ×$Ò$ÝÔ+ØØØ!ð	 	%ñ 	
ô 	
ð 	
ð ð 	O˜ð 	OÐ):ð 	OØŒK×)Ò)ØØØ%Ø/ð	 *ñ ô ð ð ð ð ð 	O˜,ð 	OØŒK×)Ò)¨"°8ÀlÐ)ÑSÔSÐSÐSÐSØð 	OÐ+ð 	OØŒK×)Ò)Ø˜Ð1Bð *ñ ô ð ð ð ð ð 		OÐ/ð 		OØŒK×)Ò)Ø˜\Ð9Jð *ñ ô ð ð ð ð ð 	OØŒK×)Ò)¨"°8Ð)Ñ<Ô<Ð<Ð<Ð<Øð 	OØŒK×)Ò)¨"°|Ð)ÑDÔDÐDÐDÐDØð 	OØŒK×)Ò)¨"Ð<MÐ)ÑNÔNÐNÐNÐNð	Oð 	Ord   c                 ó    — t          d¦  «        ‚)Nz4Collection forking is not implemented for SegmentAPI©ÚNotImplementedError)rl   rÊ   rÓ   rŠ   rª   s        rb   Ú_forkzSegmentAPI._fork»  s   € õ "ØBñ
ô 
ð 	
rd   c                 ó    — t          d¦  «        ‚)Nz,Fork count is not implemented for SegmentAPIrÝ   ©rl   rÊ   rŠ   rª   s       rb   Ú_fork_countzSegmentAPI._fork_countÇ  s   € õ "Ø:ñ
ô 
ð 	
rd   ÚIndexingStatusc                 ó    — t          d¦  «        ‚)Nz1Indexing status is not implemented for SegmentAPIrÝ   rá   s       rb   Ú_get_indexing_statuszSegmentAPI._get_indexing_statusÒ  s   € õ "Ð"UÑVÔVÐVrd   ÚsearchesÚ
read_levelc                 ó    — t          d¦  «        ‚)Nz(Search is not implemented for SegmentAPIrÝ   )rl   rÊ   ræ   rŠ   rª   rç   s         rb   Ú_searchzSegmentAPI._searchÛ  s   € õ "Ð"LÑMÔMÐMrd   zSegmentAPI.delete_collectionc                 ó  — | j                              |||¬¦  «        }|rO| j                             |d         j        ¦  «         | j                              |d         j        ||¬¦  «         d S t          d|› d�¦  «        ‚)NrÃ   r   rÑ   r±   rÄ   )rq   rÆ   rr   Údelete_segmentsr�   Údelete_collectionr^   rÇ   s        rb   rì   zSegmentAPI.delete_collectionæ  s    € ð ”;×.Ò.Ø˜f¨xð /ñ 
ô 
ˆð ð 	CØŒM×)Ò)¨(°1¬+¬.Ñ9Ô9Ð9ØŒK×)Ò)Ø˜”” v¸ð *ñ ô ð ð ð õ ÐA¨4ÐAÐAÐAÑBÔBÐBrd   zSegmentAPI._addÚidsÚ
embeddingsÚ	metadatasÚ	documentsÚurisc	                 óä  — |                       |¦  «        }	| j                             |t          j        j        ¦  «         t          |||||fd|                      ¦   «         i¦  «         t          t          t          j        j        |||||¬¦  «        ¦  «        }
|  
                    |	|
¦  «         | j                             t          j        |||||||¬¦  «         | j                             ||
¦  «         | j                             t%          t'          |¦  «        t)          |¦  «        |�t)          |¦  «        nd|�t)          |¦  «        nd|�t)          |¦  «        nd¬¦  «        ¦  «         dS )NÚmax_batch_size©rí   rî   rï   rð   rñ   ©rŒ   rŠ   rí   rî   rï   rð   rñ   rÊ   r   )r²   Ú
add_amountÚwith_metadataÚwith_documentsÚ	with_urisT)r×   rr   Úhint_use_collectionÚtÚ	OperationÚADDr>   Úget_max_batch_sizeÚlistÚ_recordsÚ_validate_embedding_record_setr€   rŽ   r   rt   Úsubmit_embeddingsru   rº   rB   r»   r]   )rl   rí   rÊ   rî   rï   rð   rñ   rŠ   rª   r½   Úrecords_to_submits              rb   Ú_addzSegmentAPI._addû  s�  € ð ×#Ò# MÑ2Ô2ˆØŒ×)Ò)¨-½¼¼ÑIÔIÐIÝØ�*˜i¨°DÐ9Ø˜t×6Ò6Ñ8Ô8Ð9ñ	
ô 	
ð 	
õ !ÝÝ””ØØ%Ø#Ø#Øðñ ô ñ	
ô 	
Ðð 	×+Ò+¨DÐ2CÑDÔDÐDàÔ×$Ò$Ý”:ØØØ!ØØØØ'ð 	%ñ 		
ô 		
ð 		
ð 	Œ×(Ò(¨Ð8IÑJÔJÐJàÔ&×.Ò.ÝÝ # MÑ 2Ô 2Ý˜s™8œ8Ø*3Ð*?�c #™hœh˜hÀQØ+4Ð+@�s 3™xœx˜xÀaØ&*Ð&6�#˜c™(œ(˜(¸Aðñ ô ñ	
ô 	
ð 	
ð ˆtrd   zSegmentAPI._updatec	                 ó  — |                       |¦  «        }	| j                             |t          j        j        ¦  «         t          |||||fd|                      ¦   «         i¦  «         t          t          t          j        j        |||||¬¦  «        ¦  «        }
|  
                    |	|
¦  «         | j                             t          j        ||||||¬¦  «         | j                             ||
¦  «         | j                             t%          t'          |¦  «        t)          |¦  «        |rt)          |¦  «        nd|rt)          |¦  «        nd|rt)          |¦  «        nd|rt)          |¦  «        nd¬¦  «        ¦  «         dS )Nró   rô   )rŒ   rŠ   rí   rî   rï   rð   rñ   r   )r²   Úupdate_amountÚwith_embeddingsr÷   rø   rù   T)r×   rr   rú   rû   rü   ÚUPDATEr>   rþ   rÿ   r   r  r€   rŽ   r   rt   r  ru   rº   rE   r»   r]   ©rl   rÊ   rí   rî   rï   rð   rñ   rŠ   rª   r½   r  s              rb   Ú_updatezSegmentAPI._update3  sž  € ð ×#Ò# MÑ2Ô2ˆØŒ×)Ò)¨-½¼Ô9KÑLÔLÐLÝØ�*˜i¨°DÐ9Ø˜t×6Ò6Ñ8Ô8Ð9ñ	
ô 	
ð 	
õ !ÝÝ”Ô"ØØ%Ø#Ø#Øðñ ô ñ	
ô 	
Ðð 	×+Ò+¨DÐ2CÑDÔDÐDàÔ×$Ò$Ý”=ØØØ!ØØØð 	%ñ 	
ô 	
ð 	
ð 	Œ×(Ò(¨Ð8IÑJÔJÐJàÔ&×.Ò.Ý!Ý # MÑ 2Ô 2Ý! #™hœhØ3=Ð D¥ J¡¤ À1Ø09Ð@�c )™nœn˜n¸qØ1:ÐA�s 9™~œ~˜~ÀØ'+Ð2�#˜d™)œ)˜)°ðñ ô ñ		
ô 		
ð 		
ð ˆtrd   zSegmentAPI._upsertc	           
      óò  — |                       |¦  «        }	| j                             |t          j        j        ¦  «         t          |||||fd|                      ¦   «         i¦  «         t          t          t          j        j        |||||¬¦  «        ¦  «        }
|  
                    |	|
¦  «         | j                             t          j        |||||||¬¦  «         | j                             ||
¦  «         dS )Nró   rô   rõ   T)r×   rr   rú   rû   rü   ÚUPSERTr>   rþ   rÿ   r   r  r€   rŽ   r   rt   r  r	  s              rb   Ú_upsertzSegmentAPI._upsertl  s  € ð ×#Ò# MÑ2Ô2ˆØŒ×)Ò)¨-½¼Ô9KÑLÔLÐLÝØ�*˜i¨°DÐ9Ø˜t×6Ò6Ñ8Ô8Ð9ñ	
ô 	
ð 	
õ !ÝÝ”Ô"ØØ%Ø#Ø#Øðñ ô ñ	
ô 	
Ðð 	×+Ò+¨DÐ2CÑDÔDÐDàÔ×$Ò$Ý”=ØØØ!ØØØØ'ð 	%ñ 		
ô 		
ð 		
ð 	Œ×(Ò(¨Ð8IÑJÔJÐJàˆtrd   zSegmentAPI._getc                 ó,   — t          | t          ¦  «        S r{   ©Ú
isinstancer+   ©Úes    rb   ú<lambda>zSegmentAPI.<lambda>�  ó   € ­:°aÕ9MÑ+NÔ+N€ rd   é   é   T)r   ÚwaitÚstopÚreraiseÚwhereÚwhere_documentÚincludec
                 ó®  — t          t          |¦  «        |rt          |¦  «        nddœ¦  «         |                      |¦  «        }
|�t	          |¦  «         |�t          |¦  «         | j                             t          j	        |||||¬¦  «         |rt          |¦  «        nd}| j
                             t          t          |¦  «        ||r|ndd|v r|ndd|v r|ndd|v r|nd¬¦  «        ¦  «         | j                             t          |
t!          |||¦  «        t#          |pd|¦  «        t%          d|v d|v d|v d	d|v ¦  «        ¦  «        ¦  «        S )
Nr   ©rÊ   Ú	ids_count)rŒ   rŠ   rí   r  r  r—   rï   rð   rñ   )r²   r  r—   Úinclude_metadataÚinclude_documentsÚinclude_urisrî   F)r    r»   r]   Ú_scanr<   r=   r€   rŽ   r   ÚGETru   rº   rD   rs   Úgetr   r   r   r   )rl   rÊ   rí   r  r—   r˜   r  r  rŠ   rª   ÚscanÚ
ids_amounts               rb   Ú_getzSegmentAPI._get›  sº  € õ* 	'å!$ ]Ñ!3Ô!3Ø),Ð3�S ™XœX˜X°!ðð ñ	
ô 	
ð 	
ð �zŠz˜-Ñ(Ô(ˆð ÐÝ˜5Ñ!Ô!Ð!àÐ%Ý# NÑ3Ô3Ð3àÔ×$Ò$Ý”:ØØØØ)Øð 	%ñ 	
ô 	
ð 	
ð "%Ð+•S˜‘X”X�X¨!ˆ
ØÔ&×.Ò.ÝÝ # MÑ 2Ô 2Ø$Ø$Ð+�e�e¨!Ø/:¸gÐ/EÐ/E  È1Ø0;¸wÐ0FÐ0F * *ÈAØ+1°WÐ+<Ð+<˜Z˜ZÀ!ðñ ô ñ		
ô 		
ð 		
ð Œ~×!Ò!ÝØÝ�s˜E >Ñ2Ô2Ý�f�k  5Ñ)Ô)ÝØ 7Ð*Ø  GÐ+Ø 7Ð*ØØ˜gÐ%ñô ñ	ô ñ
ô 
ð 	
rd   zSegmentAPI._deletec           
      ó  — t          t          |¦  «        |rt          |¦  «        nddœ¦  «         |�t          |¦  «         |�t	          |¦  «         |�|�Pt          |¦  «        dk    r=|�|�9t          |¦  «        dk    r&|�|�"t          |¦  «        dk    rt          d¦  «        ‚|                      |¦  «        }| j                             t          j
        ||||¬¦  «         | j                             |t          j        j
        ¦  «         |s|s|s>| j                             t#          |t%          |||¦  «        ¦  «        ¦  «        d         }	n|}	|�\t'          |t(          ¦  «        rt'          |t*          ¦  «        s|dk     rt          d¦  «        ‚|€|€t          d¦  «        ‚|	d |…         }	t          |	¦  «        dk    rt-          d¬¦  «        S t/          t1          t          j        j
        |	¬	¦  «        ¦  «        }
|                      |j        |
¦  «         | j                             ||
¦  «         t          |	¦  «        }| j                             t?          t          |¦  «        |¬
¦  «        ¦  «         t-          |¬¦  «        S )Nr   r  aU  
                You must provide either ids, where, or where_document to delete. If
                you want to delete all data in a collection you can delete the
                collection itself using the delete_collection method. Or alternatively,
                you can get() all the relevant ids and then delete them.
                )rŒ   rŠ   rí   r  r  rí   z$limit must be a non-negative integerzMlimit can only be specified when a where or where_document clause is provided)Údeleted)Ú	operationrí   )r²   Údelete_amount) r    r»   r]   r<   r=   r^   r#  r€   rŽ   r   ÚDELETErr   rú   rû   rü   rs   r%  r   r   r  r„   ÚboolrA   rÿ   r   r  Ú
collectionrt   r  ru   rº   rC   )rl   rÊ   rí   r  r  r—   rŠ   rª   r&  Úids_to_deleter  Údeleted_counts               rb   Ú_deletezSegmentAPI._deleteä  sÔ  € õ 	'å!$ ]Ñ!3Ô!3Ø),Ð3�S ™XœX˜X°!ðð ñ	
ô 	
ð 	
ð ÐÝ˜5Ñ!Ô!Ð!àÐ%Ý# NÑ3Ô3Ð3ð ˆ[˜S˜_µ°S±´¸Q²°Ø� 5Ð#4½¸U¹¼Àqº¸àÐ&Ø"Ð.µ3°~Ñ3FÔ3FÈ!Ò3KÐ3Kõ ðñô ð ð �zŠz˜-Ñ(Ô(ˆàÔ×$Ò$Ý”=ØØØØ)ð 	%ñ 	
ô 	
ð 	
ð 	Œ×)Ò)¨-½¼Ô9KÑLÔLÐLàð 	 �^ð 	 ¨Cð 	 Ø œN×.Ò.Ý˜�f S¨%°Ñ@Ô@ÑAÔAñô àôˆMˆMð  ˆMð ÐÝ˜e¥SÑ)Ô)ð I­Z¸½tÑ-DÔ-Dð IÈÐPQÊ	È	Ý Ð!GÑHÔHÐHØˆ} Ð!7Ý Øcñô ð ð *¨&¨5¨&Ô1ˆMåˆ}ÑÔ Ò"Ð"Ý¨Ð*Ñ*Ô*Ð*å Ý�qœ{Ô1°}ÐEÑEÔEñ
ô 
Ðð 	×+Ò+¨D¬OÐ=NÑOÔOÐOØŒ×(Ò(¨Ð8IÑJÔJÐJå˜MÑ*Ô*ˆàÔ&×.Ò.Ý!Ý # MÑ 2Ô 2À-ðñ ô ñ	
ô 	
ð 	
õ  MÐ2Ñ2Ô2Ð2rd   zSegmentAPI._countc                 ó,   — t          | t          ¦  «        S r{   r  r  s    rb   r  zSegmentAPI.<lambda>C  r  rd   c                 ó²   — t          dt          |¦  «        i¦  «         | j                             t	          |                      |¦  «        ¦  «        ¦  «        S )NrÊ   )r    r»   rs   Úcountr   r#  )rl   rÊ   rŠ   rª   rç   s        rb   Ú_countzSegmentAPI._countA  sI   € õ  	'¨½¸]Ñ9KÔ9KÐ'LÑMÔMÐMØŒ~×#Ò#¥I¨d¯jªj¸Ñ.GÔ.GÑ$HÔ$HÑIÔIÐIrd   zSegmentAPI._queryc                 ó,   — t          | t          ¦  «        S r{   r  r  s    rb   r  zSegmentAPI.<lambda>]  r  rd   é
   Úquery_embeddingsÚ	n_resultsc
                 ó@  — t          t          |¦  «        |t          |¦  «        dœ¦  «         t          |¦  «        }
|rt          |¦  «        nd}| j                             t          t          |¦  «        |
|||�|
nd|�|
ndd|v r|
ndd|v r|
ndd|v r|
ndd|v r|
nd¬¦
  «
        ¦  «         |�t          |¦  «         |�t          |¦  «         |                      |¦  «        }|D ],}|  	                    |j
        t          |¦  «        d¬	¦  «         Œ-| j                             t          j        |||||¬
¦  «         | j                             t#          |t%          ||¦  «        t'          d ||¦  «        t)          d|v d|v d|v d|v d|v ¦  «        ¦  «        ¦  «        S )N)rÊ   r:  r  r   rï   rð   rñ   Ú	distances)
r²   Úquery_amountÚfiltered_ids_amountr:  Úwith_metadata_filterÚwith_document_filterÚinclude_metadatasr!  r"  Úinclude_distancesF©Úupdate)rŒ   rŠ   r  r  r9  r:  rî   )r    r»   r]   ru   rº   rF   r<   r=   r#  Ú_validate_dimensionr/  r€   rŽ   r   ÚQUERYrs   Úknnr   r   r   r   )rl   rÊ   r9  rí   r:  r  r  r  rŠ   rª   r=  r'  r&  Ú	embeddings                 rb   Ú_queryzSegmentAPI._queryT  s  € õ8 	'å!$ ]Ñ!3Ô!3Ø&Ý˜U™œðð ñ	
ô 	
ð 	
õ Ð+Ñ,Ô,ˆØ!$Ð+•S˜‘X”X�X¨!ˆ
ØÔ&×.Ò.Ý Ý # MÑ 2Ô 2Ø)Ø$.Ø#Ø5:Ð5F \ \ÈAØ5CÐ5O \ \ÐUVØ2=ÀÐ2HÐ2H , ,ÈaØ2=ÀÐ2HÐ2H , ,ÈaØ-3°wÐ->Ð->˜\˜\ÀAØ2=ÀÐ2HÐ2H , ,Èaðñ ô ñ	
ô 	
ð 	
ð  ÐÝ˜5Ñ!Ô!Ð!ØÐ%Ý# NÑ3Ô3Ð3à�zŠz˜-Ñ(Ô(ˆØ)ð 	Tð 	TˆIØ×$Ò$ T¤_µc¸)±n´nÈUÐ$ÑSÔSÐSÐSàÔ×$Ò$Ý”<ØØØ)Ø-Øð 	%ñ 	
ô 	
ð 	
ð Œ~×!Ò!ÝØÝÐ$ iÑ0Ô0Ý�t˜U NÑ3Ô3ÝØ 7Ð*Ø  GÐ+Ø 7Ð*Ø 7Ð*Ø˜gÐ%ñô ñ	ô ñ
ô 
ð 	
rd   zSegmentAPI._peekÚnc                 ól   — t          dt          |¦  «        i¦  «         |                      ||¬¦  «        S )NrÊ   )r—   )r    r»   r(  )rl   rÊ   rJ  rŠ   rª   s        rb   Ú_peekzSegmentAPI._peek«  s5   € õ 	'¨½¸]Ñ9KÔ9KÐ'LÑMÔMÐMØ�yŠy˜¨aˆyÑ0Ô0Ð0rd   c                 ó   — t           S r{   r'   r‡   s    rb   Úget_versionzSegmentAPI.get_version¸  s   € åÐrd   c                 ó   — d S r{   © r‡   s    rb   Úreset_statezSegmentAPI.reset_state¼  s   € àˆrd   c                 ó8   — | j                              ¦   «          dS )NT)r�   rQ  r‡   s    rb   ÚresetzSegmentAPI.resetÀ  s   € àŒ× Ò Ñ"Ô"Ð"Øˆtrd   c                 ó   — | j         S r{   )rp   r‡   s    rb   Úget_settingszSegmentAPI.get_settingsÅ  s
   € àŒ~Ðrd   c                 ó   — | j         j        S r{   )rt   ró   r‡   s    rb   rþ   zSegmentAPI.get_max_batch_sizeÉ  s   € àŒ~Ô,Ð,rd   Úfunction_idÚinput_collection_idÚoutput_collectionÚparamsr	   c                 ó    — t          d¦  «        ‚©zNAttached functions are not supported in the Segment API (local embedded mode).z§Attached functions are only supported when connecting to a Chroma server via HttpClient. The Segment API (embedded mode) does not support attached function operations.rÝ   )rl   rW  r‰   rX  rY  rZ  rŠ   rª   s           rb   Úattach_functionzSegmentAPI.attach_functionÍ  s   € õ "ð]ñ
ô 
ð 	
rd   c                 ó    — t          d¦  «        ‚r\  rÝ   )rl   r‰   rX  rŠ   rª   s        rb   Úget_attached_functionz SegmentAPI.get_attached_functionÞ  s   € õ "ð]ñ
ô 
ð 	
rd   Údelete_outputc                 ó    — t          d¦  «        ‚r\  rÝ   )rl   r‰   rX  r`  rŠ   rª   s         rb   Údetach_functionzSegmentAPI.detach_functionì  s   € õ "ð]ñ
ô 
ð 	
rd   z)SegmentAPI._validate_embedding_record_setr/  Úrecordsc                 ó¾   — t          dt          |d         ¦  «        i¦  «         |D ]5}|d         �+|                      |t          |d         ¦  «        d¬¦  «         Œ6dS )zQValidate the dimension of an embedding record before submitting it to the system.rÊ   r�   rH  NTrC  )r    r»   rE  r]   )rl   r/  rc  Úrecords       rb   r  z)SegmentAPI._validate_embedding_record_setÿ  sz   € õ 	'¨½¸ZÈÔ=MÑ9NÔ9NÐ'OÑPÔPÐPØð 	ð 	ˆFØ�kÔ"Ð.Ø×(Ò(Ø¥ F¨;Ô$7Ñ 8Ô 8Àð )ñ ô ð øð	ð 	rd   ÚdimrD  c                 óÀ   — |d         €.|r*|j         }| j                             ||¬¦  «         ||d<   dS dS |d         |k    rt          d|› d|d         › �¦  «        ‚dS )z°Validate that a collection supports records of the given dimension. If update
        is true, update the collection if the collection doesn't already have a
        dimension.r¯   N)r�   r¯   zEmbedding dimension z* does not match collection dimensionality )r�   rq   rÙ   r)   )rl   r/  rf  rD  r�   s        rb   rE  zSegmentAPI._validate_dimension  s˜   € ð �kÔ"Ð*Øð .Ø”]�Ø”×-Ò-°¸sÐ-ÑCÔCÐCØ*-�
˜;Ñ'Ð'Ð'ð.ð .ð ˜Ô$¨Ò+Ð+Ý+Øo sÐoÐoÐV`ÐalÔVmÐoÐoñô ð ð ˆFrd   zSegmentAPI._get_collectionc                 ó˜   — | j                              |¬¦  «        }|rt          |¦  «        dk    rt          d|› d�¦  «        ‚|d         S )N)r�   r   r±   rÄ   )rq   rÆ   r]   r*   )rl   rÊ   Úcollectionss      rb   r×   zSegmentAPI._get_collection   sY   € à”k×1Ò1°]Ð1ÑCÔCˆØð 	O�c +Ñ.Ô.°!Ò3Ð3ÝÐ M¨mÐ MÐ MÐ MÑNÔNÐNØ˜1Œ~Ðrd   zSegmentAPI._scanc           	      ó&  — | j                              |¦  «        }d„ |d         D ¦   «         }t          |d         |t          j        j                 |t          j        j                 |                     t          j        j        d ¦  «        ¬¦  «        S )Nc                 ó    — i | ]}|d          |“ŒS )ÚscoperP  )Ú.0r¿   s     rb   ú
<dictcomp>z$SegmentAPI._scan.<locals>.<dictcomp>/  s,   € ð 
ð 
ð 
Ø*1ˆG�GÔ˜gð
ð 
ð 
rd   r°   r/  )r/  rG  r¨   re  )	rq   Úget_collection_with_segmentsr   rû   ÚSegmentScopeÚVECTORÚMETADATAr%  ÚRECORD)rl   rÊ   Úcollection_and_segmentsÚscope_to_segments       rb   r#  zSegmentAPI._scan'  s”   € à"&¤+×"JÒ"JØñ#
ô #
Ðð
ð 
Ø5LÈZÔ5Xð
ñ 
ô 
Ðõ Ø.¨|Ô<Ø ¥¤Ô!6Ô7Ø%¥a¤nÔ&=Ô>à#×'Ò'­¬Ô(=¸tÑDÔDð
ñ 
ô 
ð 	
rd   )rY   N)kÚ__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r%   r$   r!   r»   r   r   r}   rQ   r„   rˆ   r#   r"   Ú	OPERATIONr   r�   rû   ÚDatabaser”   r–   rH   rI   rš   r�   r   r£   ÚTenantr¥   rk   r   r2   r
   r,   r.  r´   rµ   rÁ   rÉ   rR   rÌ   rÏ   rÒ   r   rÛ   rß   râ   rå   r1   ÚINDEX_AND_WALrK   rU   r9   ré   rì   r-   r.   r/   r0   r3   r  r
  r  r   r   r   r   r?   r4   r5   r6   r7   r(  rA   r2  r6  r@   r8   rI  rL  rN  rQ  rS  rU  rþ   rM   rL   rP   r]  r_  rb  ÚALLr&   ÚOperationRecordr  rE  r×   r   r#  Ú__classcell__)r‚   s   @rb   ro   ro   }   sË  ø€ € € € € € ØRÐRàÐÐÑØ€M€M�MØÐÐÑØÐÐÑØÐÐÑØ5Ð5Ð5Ñ5Ø.Ð.Ð.Ñ.Ø€O€O�OØ€N€N�NØ+Ð+Ð+Ñ+ð
L˜vð 
Lð 
Lð 
Lð 
Lð 
Lð 
Lð ð#˜3ð #ð #ð #ñ „Xð#ð €\Ð.Ð0HÔ0RÑSÔSØØ7Eð 
ð 
 Cð 
°ð 
È$ð 
ð 
ð 
ñ „Xñ TÔSð
ð  €\Ð+Ð-EÔ-OÑPÔPØØ4Bð Bð B ð B¨cð BÀqÄzð Bð Bð Bñ „Xñ QÔPðBð €\Ð.Ð0HÔ0RÑSÔSØØ7Eð >ð > Cð >°ð >È$ð >ð >ð >ñ „Xñ TÔSð>ð €\Ð-Ð/GÔ/QÑRÔRØð  $Ø $Ø$ð	Uð Uà˜Œ}ðUð ˜”ðUð ð	Uð
 
�!”*Ô	ðUð Uð Uñ „Xñ SÔRðUð €\Ð,Ð.FÔ.PÑQÔQØð
 #ð 
¨$ð 
ð 
ð 
ñ „Xñ RÔQð
ð ð
 <ð 
ð 
ð 
ñ „Xð
ð €\Ð)Ð+CÔ+MÑNÔNØð1˜sð 1 q¤xð 1ð 1ð 1ñ „Xñ OÔNð1ð €\Ð0Ð2JÔ2TÑUÔUØØð $(ØAEØ15Ø#Ø$Ø(ðGð GàðGð ˜Ô ðGð  Ð =Ô>ð	Gð
 Ð-Ô.ðGð ðGð ðGð ðGð 
ðGð Gð Gñ „Zñ „Xñ VÔUðGðR €\Ø-Ð/GÔ/Qñô ð Øð $(ØAEØ15Ø$Ø(ð
ð 
àð
ð ˜Ô ð
ð  Ð =Ô>ð	
ð
 Ð-Ô.ð
ð ð
ð ð
ð 
ð
ð 
ð 
ñ „Zñ „Xñô ð

ð, €\Ð-Ð/GÔ/QÑRÔRØØð #Ø$Ø(ð	Fð Fà�sŒmðFð ðFð ð	Fð
 
ðFð Fð Fñ „Zñ „Xñ SÔRðFð €\Ð3Ð5MÔ5WÑXÔXØØð %Ø(ð	Oð OàðOð ðOð ð	Oð
 
ðOð Oð Oñ „Zñ „Xñ YÔXðOð €\Ð.Ð0HÔ0RÑSÔSØØð  $Ø $Ø$Ø(ð
ð 
à˜Œ}ð
ð ˜”ð
ð ð	
ð
 ð
ð 
�/Ô	"ð
ð 
ð 
ñ „Zñ „Xñ TÔSð
ð" €\Ð0Ð2JÔ2TÑUÔUØØð %Ø(ðOð OàðOð ðOð 
ð	Oð Oð Oñ „Zñ „Xñ VÔUðOð €\Ð&Ð(@Ô(JÑKÔKØØð #'Ø59ØEIØ$Ø(ð2Oð 2Oàð2Oð ˜3”-ð2Oð Ð1Ô2ð	2Oð
 $Ð$AÔBð2Oð ð2Oð ð2Oð 
ð2Oð 2Oð 2Oñ „Zñ „Xñ LÔKð2Oðh ð
 %Ø(ð	
ð 	
àð	
ð ð	
ð ð		
ð
 ð	
ð 
ð	
ð 	
ð 	
ñ „Xð	
ð ð %Ø(ð	
ð 
àð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ñ „Xð
ð ð %Ø(ð	Wð WàðWð ðWð ð	Wð
 
ðWð Wð Wñ „XðWð ð
 %Ø(Ø )Ô 7ðNð NàðNð �v”,ðNð ð	Nð
 ðNð ðNð 
ðNð Nð Nñ „XðNð €\Ð0Ð2JÔ2TÑUÔUØØð %Ø(ð	Cð CàðCð ðCð ð	Cð
 
ðCð Cð Cñ „Zñ „Xñ VÔUðCð$ €\Ð#Ð%=Ô%GÑHÔHØØð *.Ø)-Ø#Ø$Ø(ð3ð 3àð3ð ð3ð ð	3ð
 ˜IÔ&ð3ð ˜IÔ&ð3ð �tŒnð3ð ð3ð ð3ð 
ð3ð 3ð 3ñ „Zñ „Xñ IÔHð3ðj €\Ð&Ð(@Ô(JÑKÔKØØð
 ,0Ø)-Ø)-Ø#Ø$Ø(ð4ð 4àð4ð ð4ð ˜ZÔ(ð	4ð
 ˜IÔ&ð4ð ˜IÔ&ð4ð �tŒnð4ð ð4ð ð4ð 
ð4ð 4ð 4ñ „Zñ „Xñ LÔKð4ðl €\Ð&Ð(@Ô(JÑKÔKØØð *.Ø)-Ø#Ø$Ø(ð*ð *àð*ð ð*ð ð	*ð
 ˜IÔ&ð*ð ˜IÔ&ð*ð �tŒnð*ð ð*ð ð*ð 
ð*ð *ð *ñ „Zñ „Xñ LÔKð*ðX €\Ð#Ð%=Ô%GÑHÔHØ
€UØ Ð Ð!NÐ!NÑOÔOØˆZ˜‰]Œ]ØÐ Ñ"Ô"Øð	ñ ô ð Øð "Ø!%Ø#Ø $Ø26Ø3Ø$Ø(ð>
ð >
àð>
ð �cŒ]ð>
ð ˜Œð	>
ð
 ˜Œ}ð>
ð ˜”ð>
ð ! Ô/ð>
ð ð>
ð ð>
ð ð>
ð 
ð>
ð >
ð >
ñ „Zñ „Xñô ñ IÔHð>
ð@ €\Ð&Ð(@Ô(JÑKÔKØØð "Ø!%Ø26Ø#Ø$Ø(ðX3ð X3àðX3ð �cŒ]ðX3ð ˜Œð	X3ð
 ! Ô/ðX3ð ˜Œ}ðX3ð ðX3ð ðX3ð 
ðX3ð X3ð X3ñ „Zñ „Xñ LÔKðX3ðt €\Ð%Ð'?Ô'IÑJÔJØ
€UØ Ð Ð!NÐ!NÑOÔOØˆZ˜‰]Œ]ØÐ Ñ"Ô"Øð	ñ ô ð Øð %Ø(Ø )Ô 7ðJð JàðJð ðJð ð	Jð
 ðJð 
ðJð Jð Jñ „Zñ „Xñô ñ KÔJðJð €\Ð%Ð'?Ô'IÑJÔJð €UØ Ð Ð!NÐ!NÑOÔOØˆZ˜‰]Œ]ØÐ Ñ"Ô"Øð	ñ ô ð Øð
 "ØØ!%Ø26Ø<Ø$Ø(ðE
ð E
àðE
ð %ðE
ð �cŒ]ð	E
ð
 ðE
ð ˜ŒðE
ð ! Ô/ðE
ð ðE
ð ðE
ð ðE
ð 
ðE
ð E
ð E
ñ „Zñ „Xñô ñ KÔJð E
ðN €\Ð$Ð&>Ô&HÑIÔIØØð Ø$Ø(ð1ð 1àð1ð ð1ð ð	1ð
 ð1ð 
ð1ð 1ð 1ñ „Zñ „Xñ JÔIð1ð ð˜Sð ð ð ñ „Xðð ðð ð ñ „Xðð ð�tð ð ð ñ „Xðð ð˜hð ð ð ñ „Xðð ð- Cð -ð -ð -ñ „Xð-ð ð ,0Ø$Ø(ð
ð 
àð
ð ð
ð "ð	
ð
 ð
ð ˜˜c 3˜hœÔ(ð
ð ð
ð ð
ð 
Ð! 4Ð'Ô	(ð
ð 
ð 
ñ „Xð
ð  ð
 %Ø(ð
ð 
àð
ð "ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ñ „Xð
ð ð
 $Ø$Ø(ð
ð 
àð
ð "ð
ð ð	
ð
 ð
ð ð
ð 
ð
ð 
ð 
ñ „Xð
ð$ €\Ø3Ð5MÔ5Qñô ð	Øœ,ð	Ø15°aÔ6GÔ1Hð	à	ð	ð 	ð 	ñô ð	ðØœ,ðØ-0ðØ:>ðà	ðð ð ð ð$ €\Ð.Ð0HÔ0LÑMÔMð¨Tð °a´lð ð ð ñ NÔMðð €\Ð$Ð&>Ô&HÑIÔIð
 4ð 
¨Dð 
ð 
ð 
ñ JÔIð
ð 
ð 
ð 
ð 
rd   ro   r+  rí   rî   rï   rð   rñ   c              #   ó,  K  — |g k    rd}t          |¦  «        D ]y\  }}d}|r||         }|r||         }	|r	i |¥d|	i¥}nd|	i}|r||         }
|r	i |¥d|
i¥}nd|
i}t          j        ||�||         ndt          j        j        || ¬¦  «        }|V — ŒzdS )ziConvert parallel lists of embeddings, metadatas and documents to a sequence of
    SubmitEmbeddingRecordsNzchroma:documentz
chroma:uri)r�   rH  Úencodingr¨   r+  )Ú	enumeraterû   r€  ÚScalarEncodingÚFLOAT32)r+  rí   rî   rï   rð   rñ   Úir�   r¨   ÚdocumentÚurire  s               rb   r   r   ;  s
  è è € ð �RÒÐØˆ
å˜3‘”ð ð ‰ˆˆ2ØˆØð 	$Ø  ”|ˆHàð 	9Ø  ”|ˆHØð 9ØD˜hÐDÐ(9¸8ÐDÐD��à-¨xÐ8�àð 	/Ø�q”'ˆCØð /Ø:˜hÐ:¨°cÐ:Ð:��à(¨#Ð.�åÔ"ØØ'1Ð'=�j ”m�mÀ4ÝÔ%Ô-ØØð
ñ 
ô 
ˆð ˆˆˆˆð5ð rd   )NNNN)|Útypingr   Útenacityr   r   r   r   Úchromadb.apir   Ú$chromadb.api.models.AttachedFunctionr	   Ú%chromadb.api.collection_configurationr
   r   r   Úchromadb.authr   Úchromadb.configr   r   r   r   Úchromadb.db.systemr   Úchromadb.quotar   r   Úchromadb.rate_limitr   Úchromadb.segmentr   Ú$chromadb.execution.executor.abstractr   Ú&chromadb.execution.expression.operatorr   r   r   r   r   Ú"chromadb.execution.expression.planr   r   r   Ú chromadb.telemetry.opentelemetryr    r!   r"   r#   Úchromadb.telemetry.productr$   Úchromadb.ingestr%   Úchromadb.typesr&   r´   Úchromadbr(   Úchromadb.errorsr)   r*   r+   Úchromadb.api.typesr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   Ú!chromadb.telemetry.product.eventsrB   rC   rD   rE   rF   rG   Útypesrû   rH   rI   rJ   rK   rL   rM   rN   rO   rP   Ú	overridesrQ   ÚuuidrR   rS   Ú	functoolsrT   r…   Úloggingr_   rU   rV   Ú	getLoggerrv  r¸   r»   rc   rk   ro   rü   r€  r   rP  rd   rb   ú<module>r¦     sœ  ðØ  Ð  Ð  Ð  Ð  Ð  à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ "Ð "Ð "Ð "Ð "Ð "àð FØEÐEÐEÐEÐEÐEðð ð ð ð ð ð ð ð ð ð
 'Ð &Ð &Ð &Ð &Ð &Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ $Ð $Ð $Ð $Ð $Ð $Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø +Ð +Ð +Ð +Ð +Ð +Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WØ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jðð ð ð ð ð ð ð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =Ø $Ð $Ð $Ð $Ð $Ð $Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð0ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à€GˆC�x  S Ô)Ð*Ñ*Ô*€à	ˆÔ	˜8Ñ	$Ô	$€ð ð ¨ð ð ð ð ð(�Qð ˜1ð ð ð ð ð{
ð {
ð {
ð {
ð {
�ñ {
ô {
ð {
ðB (,Ø%)Ø%)Øð,ð ,ØŒ{ð,à	ð,ð ˜Ô$ð,ð ˜	Ô"ð	,ð
 ˜	Ô"ð,ð �4Œ.ð,ð ˆqÔ  $¨Ð,Ô-ð,ð ,ð ,ð ,ð ,ð ,rd   