Ë
    lQêj9n  ã                   óÄ  — d dl Z d dlmZ d dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZmZ d dlZd dlZd dlmZ d dl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 d d
l m!Z!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z.m/Z/m0Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dl4mJZJmKZKmLZL  ejš                  eN«      ZO G d„ dee«      ZPy)é    N)ÚUUID)ÚAnyÚMappingÚOptionalÚcastÚTupleÚSequenceÚDictÚList)Úoverride)Ú__version__)ÚUserIdentity)ÚAsyncServerAPI)ÚBaseHTTPClient)ÚCreateCollectionConfigurationÚUpdateCollectionConfigurationÚ'create_collection_configuration_to_jsonÚ'update_collection_configuration_to_json)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚSystemÚSettings)ÚOpenTelemetryClientÚOpenTelemetryGranularityÚtrace_method)ÚProductTelemetryClient)Úasync_to_sync)ÚDatabaseÚTenantÚ
Collection)ÚSearch)ÚDeleteResultÚ	DocumentsÚ
EmbeddingsÚIDsÚIncludeÚIndexingStatusÚSchemaÚ	MetadatasÚ	ReadLevelÚURIsÚWhereÚWhereDocumentÚ	GetResultÚQueryResultÚSearchResultÚCollectionMetadataÚ%optional_embeddings_to_base64_stringsÚvalidate_batchÚconvert_np_embeddings_to_listÚIncludeMetadataDocumentsÚ!IncludeMetadataDocumentsDistances)Ú"IncludeMetadataDocumentsEmbeddingsÚserialize_metadataÚdeserialize_metadatac                   ó°  ‡ — e Zd ZU i Zeeej                  f   ed<   de	fˆ fd„Z
dxd„Zdyd„Zded	ed
eddfd„Zedyˆ fd„«       Zdej                  fd„Zedeeef   fd„«       Zedefd„«       Zdededeeef   defd„Z edej2                  «      edefd„«       «       Z edej2                  «      eefdededdfd„«       «       Z edej2                  «      eefdededefd„«       «       Z edej2                  «      eefdededdfd„«       «       Z edej2                  «      eddefde e   d e e   dede!e   fd!„«       «       Z" ed"ej2                  «      ededdfd#„«       «       Z# ed$ej2                  «      edede$fd%„«       «       Z% ed&ej2                  «      ede&fd'„«       «       Z' ed(ej2                  «      eddee(fde e   d e e   ded)ede!e)   f
d*„«       «       Z* ed+ej2                  «      eee(fded)edefd,„«       «       Z+ ed-ej2                  «      edddd.ee(fded/e e,   d0e e-   d1e e.   d2e/ded)ede)fd3„«       «       Z0 ed4ej2                  «      eee(fdeded)ede)fd5„«       «       Z1 ed6ej2                  «      eee(fd7e2ded)ede)fd8„«       «       Z3 ed9ej2                  «      edddee(fded/e e,   d0e e-   d1e e.   ded)ede)fd:„«       «       Z4 ed;ej2                  «      edddee(fd<e2d=e e   d>e e.   d?e e5   ded)eddfd@„«       «       Z6 edAej2                  «      eee(fd7e2d=eded)ede)f
dB„«       «       Z7 edCej2                  «      eee(fd7e2ded)edefdD„«       «       Z8 edEej2                  «      eee(fd7e2ded)ede9fdF„«       «       Z: edGej2                  «      eee(e;jx                  fd7e2dHe=e>   ded)edIe;de?fdJ„«       «       Z@ edKej2                  «      eee(fdeded)eddfdL„«       «       ZA edMej2                  «      eee(e;jx                  fd7e2ded)edIe;def
dN„«       «       ZB edOej2                  «      edPee(fd7e2dQeded)edeCf
dR„«       «       ZD edSej2                  «      edddddeEee(fd7e2dTe eF   dUe eG   de e   d e e   dVe eH   dWeIded)edeCfdX„«       «       ZJ edYej2                  «      eddddee(fd7e2dTe eF   dUe eG   dVe eH   de e   ded)edeKfdZ„«       «       ZL ed[ejš                  «      d\eNeFe eO   e eP   e eQ   e eR   f   d]edefd^„«       ZS ed_ejš                  «      edddee(fdTeFd7e2d`eOdae eP   dbe eQ   dce eR   ded)ede/fdd„«       «       ZT edeejš                  «      eddddee(fd7e2dTeFd`e eO   dae eP   dbe eQ   dce eR   ded)ede/fdf„«       «       ZU edgejš                  «      edddee(fd7e2dTeFd`eOdae eP   dbe eQ   dce eR   ded)ede/fdh„«       «       ZV ediejš                  «      eddPddeWee(fd7e2djeOdTe eF   dkedUe eG   dVe eH   dWeIded)edeXfdl„«       «       ZY edmejš                  «      ede/fdn„«       «       ZZ edoej2                  «      edefdp„«       «       Z[ede\fdq„«       Z] edrej2                  «      defds„«       Z^ edtej2                  «      de/fdu„«       Z_ edvej2                  «      edefdw„«       «       Z`ˆ xZaS )zÚAsyncFastAPIÚ_clientsÚsystemc                 ó  •— t         ‰| �  |«       |j                  j                  d«       |j                  j                  d«       | j                  t        «      | _        | j                  t        «      | _        |j                  | _        t        j                  t        |j                  j                  «      |j                  j                  |j                  j                  |j                  j                  ¬«      | _        y )NÚchroma_server_hostÚchroma_server_http_port)r?   r@   Úchroma_server_ssl_enabledÚdefault_api_path)ÚsuperÚ__init__ÚsettingsÚrequirer   Ú_opentelemetry_clientr   Ú_product_telemetry_clientÚ	_settingsr;   Úresolve_urlÚstrr?   r@   rA   Úchroma_server_api_default_pathÚ_api_url)Úselfr=   Ú	__class__s     €ú_/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/api/async_fastapi.pyrD   zAsyncFastAPI.__init__K   sµ   ø€ Ü‰Ñ˜Ô à�‰×ÑÐ 4Ô5Ø�‰×ÑÐ 9Ô:à%)§\¡\Ô2EÓ%FˆÔ"Ø)-¯©Ô6LÓ)MˆÔ&ØŸ™ˆŒä$×0Ñ0Ü" 6§?¡?×#EÑ#EÓFØ$*§O¡O×$KÑ$KØ&,§o¡o×&OÑ&OØ#Ÿ_™_×KÑKð	 1ó 
ˆ�ó    Úreturnc              ƒ   ó.   K  — | j                  «        | S ­w©N)Ú_get_client©rN   s    rP   Ú
__aenter__zAsyncFastAPI.__aenter__\   s   è ø€ Ø×ÑÔØˆùs   ‚Nc              ƒ   óÞ   K  — t        | j                  «      dkD  rO| j                  j                  «       \  }}|j                  «       ƒ d {  –—†  t        | j                  «      dkD  rŒNy y 7 Œ­w)Nr   )Úlenr<   ÚpopitemÚaclose)rN   Ú_Úclients      rP   Ú_cleanupzAsyncFastAPI._cleanup`   sR   è ø€ Ü�$—-‘-Ó  1Ò$ØŸ-™-×/Ñ/Ó1‰KˆQ�Ø—-‘-“/×!Ð!ô �$—-‘-Ó  1Õ$à!ús   ‚A	A-ÁA+ÁA-Á)A-Úexc_typeÚ	exc_valueÚ	tracebackc              ƒ   ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wrT   ©r^   )rN   r_   r`   ra   s       rP   Ú	__aexit__zAsyncFastAPI.__aexit__e   s   è ø€ Ø�m‰m‹o×Òús   ‚–—c                 óP   •‡ — t         ‰‰ �  «        t        dˆ fd„«       } |«        y )Nc               “   óB   •K  — ‰ j                  «       ƒ d {  –—†  y 7 Œ­wrT   rc   rV   s   €rP   Úsync_cleanupz'AsyncFastAPI.stop.<locals>.sync_cleanupl   s   øè ø€ à—-‘-“/×!Ò!ús   ƒ—˜©rR   N)rC   Ústopr   )rN   rg   rO   s   ` €rP   ri   zAsyncFastAPI.stoph   s%   ù€ ä‰‰Œä	ô	"ó 
ð	"ñ 	�rQ   c                 ó´  — d }	 t        j                  «       }|j                  «       }|| j                  vr„| j
                  j                  xs i j                  «       }d|d<   dt        z   dz   |d<   t        j                  d || j
                  j                  xs d| j                  ¬«      | j                  |<   | j                  |   S # t        $ r d}Y Œ®w xY w)	Nr   zapplication/jsonzContent-TypezChroma Python Client vz( (https://github.com/chroma-core/chroma)z
User-AgentF)ÚtimeoutÚheadersÚverifyÚlimits)ÚasyncioÚget_event_loopÚ__hash__ÚRuntimeErrorr<   rI   Úchroma_server_headersÚcopyr   ÚhttpxÚAsyncClientÚchroma_server_ssl_verifyÚhttp_limits)rN   Ú	loop_hashÚlooprl   s       rP   rU   zAsyncFastAPI._get_clientr   sÜ   € ð ˆ	ð	Ü×)Ñ)Ó+ˆDØŸ™›ˆIð ˜DŸM™MÑ)Ø—~‘~×;Ñ;ÒA¸r×GÑGÓIˆGØ&8ˆG�NÑ#à(Üñà<ñ=ð �LÑ!ô (-×'8Ñ'8ØØØ—~‘~×>Ñ>ÒGÀ%Ø×'Ñ'ô	(ˆD�M‰M˜)Ñ$ð �}‰}˜YÑ'Ð'øô' ò 	ØŠIð	ús   „$C	 Ã	CÃCc                 óH   — t        | j                  «       j                  «      S rT   )ÚdictrU   rl   rV   s    rP   Úget_request_headersz AsyncFastAPI.get_request_headers‘   s   € ä�D×$Ñ$Ó&×.Ñ.Ó/Ð/rQ   c                 ó   — | j                   S rT   )rM   rV   s    rP   Úget_api_urlzAsyncFastAPI.get_api_url•   s   € à�}‰}ÐrQ   ÚmethodÚpathÚkwargsc              ‹   óÄ  K  — d|v r9t        j                  |j                  d«      t         j                  ¬«      }||d<   t        j
                  j                  |dd d ¬«      }| j                  |z   } | j                  «       j                  ||fi t        t        |«      ¤Žƒ d {  –—† }t        j                  |«       t        j                  |j                  «      S 7 Œ8­w)NÚjson)ÚoptionÚcontentú/)ÚsafeÚencodingÚerrors)ÚorjsonÚdumpsÚpopÚOPT_SERIALIZE_NUMPYÚurllibÚparseÚquoterM   rU   Úrequestr   r   r   Ú_raise_chroma_errorÚloadsÚtext)rN   r€   r�   r‚   ÚdataÚescaped_pathÚurlÚresponses           rP   Ú_make_requestzAsyncFastAPI._make_request™   sº   è ø€ ð �VÑÜ—<‘< §
¡
¨6Ó 2¼6×;UÑ;UÔVˆDØ $ˆF�9Ñô —|‘|×)Ñ)¨$°SÀ4ÐPTÐ)ÓUˆØ�m‰m˜lÑ*ˆà3˜×)Ñ)Ó+×3Ñ3°F¸CÑUÄ4ÌÈVÓCTÑU×UˆÜ×*Ñ*¨8Ô4Ü�|‰|˜HŸM™MÓ*Ð*ð Vús   ‚B#C Â%CÂ&9C zAsyncFastAPI.heartbeatc              ƒ   ó^   K  — | j                  dd«      ƒ d {  –—† }t        |d   «      S 7 Œ­w)NÚgetÚ znanosecond heartbeat©rš   Úint)rN   r™   s     rP   Ú	heartbeatzAsyncFastAPI.heartbeat«   s3   è ø€ ð ×+Ñ+¨E°2Ó6×6ˆÜ�8Ð2Ñ3Ó4Ð4ð 7ús   ‚-˜+™-zAsyncFastAPI.create_databaseÚnameÚtenantc              ƒ   óT   K  — | j                  dd|› d�d|i¬«      ƒ d {  –—†  y 7 Œ­w)NÚpostú	/tenants/ú
/databasesr¡   ©r„   ©rš   ©rN   r¡   r¢   s      rP   Úcreate_databasezAsyncFastAPI.create_database±   s;   è ø€ ð × Ñ ØØ˜�x˜zÐ*Ø˜$�ð !ó 
÷ 	
ò 	
ús   ‚( &¡(zAsyncFastAPI.get_databasec              ƒ   ó„   K  — | j                  dd|› d|› �d|i¬«      ƒ d {  –—† }t        |d   |d   |d   ¬«      S 7 Œ­w)	Nrœ   r¥   ú/databases/r¢   ©ÚparamsÚidr¡   ©r¯   r¡   r¢   )rš   r   )rN   r¡   r¢   r™   s       rP   Úget_databasezAsyncFastAPI.get_database¾   sf   è ø€ ð ×+Ñ+ØØ˜�x˜{¨4¨&Ð1Ø˜fÐ%ð ,ó 
÷ 
ˆô Ø˜‰~ H¨VÑ$4¸XÀhÑ=Oô
ð 	
ð
ús   ‚ A ¢>£A zAsyncFastAPI.delete_databasec              ƒ   óP   K  — | j                  dd|› d|› �«      ƒ d {  –—†  y 7 Œ­w)NÚdeleter¥   r¬   r¨   r©   s      rP   Údelete_databasezAsyncFastAPI.delete_databaseÏ   s3   è ø€ ð × Ñ ØØ˜�x˜{¨4¨&Ð1ó
÷ 	
ò 	
ús   ‚&ž$Ÿ&zAsyncFastAPI.list_databasesÚlimitÚoffsetc           	   ƒ   óÎ   K  — | j                  dd|› d�t        j                  ||dœ«      ¬«      ƒ d {  –—† }|D �cg c]  }t        |d   |d   |d   ¬	«      ‘Œ c}S 7 Œ)c c}w ­w)
Nrœ   r¥   r¦   ©rµ   r¶   r­   r¯   r¡   r¢   r°   )rš   r   Ú_clean_paramsr   )rN   rµ   r¶   r¢   r™   Údbs         rP   Úlist_databaseszAsyncFastAPI.list_databasesÛ   s†   è ø€ ð ×+Ñ+ØØ˜�x˜zÐ*Ü!×/Ñ/à"Ø$ñóð ,ó 	
÷ 	
ˆð ö
àô ˜˜4™ r¨&¡z¸"¸X¹,ÖGò
ð 	
ð	
úò
ùs    ‚2A%´AµA%½A ÁA%Á A%zAsyncFastAPI.create_tenantc              ƒ   óL   K  — | j                  ddd|i¬«      ƒ d {  –—†  y 7 Œ­w)Nr¤   z/tenantsr¡   r§   r¨   )rN   r¡   s     rP   Úcreate_tenantzAsyncFastAPI.create_tenantó   s2   è ø€ ð × Ñ ØØØ˜$�ð !ó 
÷ 	
ò 	
ús   ‚$œ"�$zAsyncFastAPI.get_tenantc              ƒ   óf   K  — | j                  dd|z   «      ƒ d {  –—† }t        |d   ¬«      S 7 Œ­w)Nrœ   r¥   r¡   )r¡   )rš   r   )rN   r¡   Ú	resp_jsons      rP   Ú
get_tenantzAsyncFastAPI.get_tenantü   s?   è ø€ ð ×,Ñ,ØØ˜$Ñó
÷ 
ˆ	ô
 ˜9 VÑ,Ô-Ð-ð
ús   ‚1›/œ1zAsyncFastAPI.get_user_identityc              ƒ   óT   K  — t        di | j                  dd«      ƒ d {  –—† ¤ŽS 7 Œ­w)Nrœ   z/auth/identity© )r   rš   rV   s    rP   Úget_user_identityzAsyncFastAPI.get_user_identity  s*   è ø€ ô ÑR T×%7Ñ%7¸Ð?OÓ%P×PÑRÐRÐPús   ‚(Ÿ& (zAsyncFastAPI.list_collectionsÚdatabasec           	   ƒ   óÒ   K  — | j                  dd|› d|› d�t        j                  ||dœ«      ¬«      ƒ d {  –—† }|D �cg c]  }t        j                  |«      ‘Œ }}|S 7 Œ(c c}w ­w)Nrœ   r¥   r¬   ú/collectionsr¸   r­   )rš   r   r¹   ÚCollectionModelÚ	from_json)rN   rµ   r¶   r¢   rÄ   r¿   Újson_collectionÚmodelss           rP   Úlist_collectionszAsyncFastAPI.list_collections  sŠ   è ø€ ð ×,Ñ,ØØ˜�x˜{¨8¨*°LÐAÜ!×/Ñ/à"Ø$ñóð -ó 	
÷ 	
ˆ	ð OXö
Ø;JŒO×%Ñ% oÕ6ð
ˆð 
ð ˆð	
úò
ùs!   ‚5A'·A ¸A'Á A"ÁA'Á"A'zAsyncFastAPI.count_collectionsc              ƒ   óp   K  — | j                  dd|› d|› d�«      ƒ d {  –—† }t        t        |«      S 7 Œ­w)Nrœ   r¥   r¬   z/collections_count)rš   r   rŸ   )rN   r¢   rÄ   r¿   s       rP   Úcount_collectionszAsyncFastAPI.count_collections$  sG   è ø€ ð
 ×,Ñ,ØØ˜�x˜{¨8¨*Ð4FÐGó
÷ 
ˆ	ô
 ”C˜Ó#Ð#ð
ús   ‚6Ÿ4 6zAsyncFastAPI.create_collectionFÚschemaÚconfigurationÚmetadataÚget_or_createc           
   ƒ   óÖ   K  — |rt        ||«      nd}|r|j                  «       nd}	| j                  dd|› d|› d�||||	|dœ¬«      ƒ d{  –—† }
t        j                  |
«      }|S 7 Œ­w)zCreates a collectionNr¤   r¥   r¬   rÆ   )r¡   rÐ   rÏ   rÎ   rÑ   r§   )r   Úserialize_to_jsonrš   rÇ   rÈ   )rN   r¡   rÎ   rÏ   rÐ   rÑ   r¢   rÄ   Úconfig_jsonÚserialized_schemar¿   Úmodels               rP   Úcreate_collectionzAsyncFastAPI.create_collection0  s”   è ø€ ñ ô 4°MÀ8ÔLàð 	ñ
 ;A˜F×4Ñ4Ô6ÀdÐØ×,Ñ,ØØ˜�x˜{¨8¨*°LÐAàØ$Ø!,Ø+Ø!.ñð -ó 

÷ 

ˆ	ô  ×)Ñ)¨)Ó4ˆàˆð

ús   ‚A	A)ÁA'ÁA)zAsyncFastAPI.get_collectionc           	   ƒ   ó‚   K  — | j                  dd|› d|› d|› �«      ƒ d {  –—† }t        j                  |«      }|S 7 Œ­w)Nrœ   r¥   r¬   ú/collections/©rš   rÇ   rÈ   )rN   r¡   r¢   rÄ   r¿   rÖ   s         rP   Úget_collectionzAsyncFastAPI.get_collectionR  sR   è ø€ ð ×,Ñ,ØØ˜�x˜{¨8¨*°MÀ$ÀÐHó
÷ 
ˆ	ô
  ×)Ñ)¨)Ó4ˆàˆð
úó   ‚?¡=¢?z!AsyncFastAPI.get_collection_by_idÚcollection_idc           	   ƒ   ó‚   K  — | j                  dd|› d|› d|› �«      ƒ d{  –—† }t        j                  |«      }|S 7 Œ­w)zReturns a collection by its IDrœ   r¥   r¬   z/collections/by-id/NrÚ   )rN   rÝ   r¢   rÄ   r¿   rÖ   s         rP   Úget_collection_by_idz!AsyncFastAPI.get_collection_by_idc  sS   è ø€ ð ×,Ñ,ØØ˜�x˜{¨8¨*Ð4GÈÀÐWó
÷ 
ˆ	ô
  ×)Ñ)¨)Ó4ˆàˆð
úrÜ   z%AsyncFastAPI.get_or_create_collectionc           	   ƒ   óN   K  — | j                  ||||d||¬«      ƒ d {  –—† S 7 Œ­w)NT)r¡   rÎ   rÏ   rÐ   rÑ   r¢   rÄ   )r×   )rN   r¡   rÎ   rÏ   rÐ   r¢   rÄ   s          rP   Úget_or_create_collectionz%AsyncFastAPI.get_or_create_collectionw  s?   è ø€ ð ×+Ñ+ØØØ'ØØØØð ,ó 
÷ 
ð 	
ð 
ús   ‚%ž#Ÿ%zAsyncFastAPI._modifyr¯   Únew_nameÚnew_metadataÚnew_configurationc           	   ƒ   ó|   K  — | j                  dd|› d|› d|› �|||rt        |«      nd dœ¬«      ƒ d {  –—†  y 7 Œ­w)NÚputr¥   r¬   rÙ   )rã   râ   rä   r§   )rš   r   )rN   r¯   râ   rã   rä   r¢   rÄ   s          rP   Ú_modifyzAsyncFastAPI._modifyŽ  sa   è ø€ ð × Ñ ØØ˜�x˜{¨8¨*°MÀ"ÀÐFà ,Ø$ñ %ô &MØ%ô&ð ñð !ó 
÷ 	
ò 	
ús   ‚2<´:µ<zAsyncFastAPI._forkc           
   ƒ   óŒ   K  — | j                  dd|› d|› d|› d�d|i¬«      ƒ d {  –—† }t        j                  |«      }|S 7 Œ­w)Nr¤   r¥   r¬   rÙ   z/forkrâ   r§   rÚ   )rN   rÝ   râ   r¢   rÄ   r¿   rÖ   s          rP   Ú_forkzAsyncFastAPI._fork§  sb   è ø€ ð ×,Ñ,ØØ˜�x˜{¨8¨*°MÀ-ÀÐPUÐVØ˜hÐ'ð -ó 
÷ 
ˆ	ô
  ×)Ñ)¨)Ó4ˆØˆð
ús   ‚$A¦A§AzAsyncFastAPI._fork_countc           
   ƒ   ór   K  — | j                  dd|› d|› d|› d�«      ƒ d {  –—† }t        |d   «      S 7 Œ­w)Nrœ   r¥   r¬   rÙ   z/fork_countÚcountrž   ©rN   rÝ   r¢   rÄ   r¿   s        rP   Ú_fork_countzAsyncFastAPI._fork_count¸  sP   è ø€ ð ×,Ñ,ØØ˜�x˜{¨8¨*°MÀ-ÀÐP[Ð\ó
÷ 
ˆ	ô �9˜WÑ%Ó&Ð&ð	
ús   ‚ 7¢5£7z!AsyncFastAPI._get_indexing_statusc           
   ƒ   óŒ   K  — | j                  dd|› d|› d|› d�«      ƒ d {  –—† }t        |d   |d   |d   |d	   ¬
«      S 7 Œ­w)Nrœ   r¥   r¬   rÙ   z/indexing_statusÚnum_indexed_opsÚnum_unindexed_opsÚ	total_opsÚop_indexing_progress)rï   rð   rñ   rò   )rš   r'   rì   s        rP   Ú_get_indexing_statusz!AsyncFastAPI._get_indexing_statusÆ  sp   è ø€ ð ×,Ñ,ØØ˜�x˜{¨8¨*°MÀ-ÀÐP`Ðaó
÷ 
ˆ	ô Ø%Ð&7Ñ8Ø'Ð(;Ñ<Ø Ñ,Ø!*Ð+AÑ!Bô	
ð 	
ð	
ús   ‚ A¢A£ AzAsyncFastAPI._searchÚsearchesÚ
read_levelc           
   ƒ   ób  K  — |D �cg c]  }|j                  «       ‘Œ c}|dœ}| j                  dd|› d|› d|› d�|¬«      ƒ d{  –—† }|j                  d	d«      }	|	�4|	D �
�cg c]#  }
|
�|
D �cg c]  }|�t        |«      nd‘Œ c}nd‘Œ% c}}
|d	<   t	        |«      S c c}w 7 Œ\c c}w c c}}
w ­w)
z&Performs hybrid search on a collection)rô   rõ   r¤   r¥   r¬   rÙ   z/searchr§   NÚ	metadatas)Úto_dictrš   rœ   r9   r0   )rN   rÝ   rô   r¢   rÄ   rõ   ÚsÚpayloadr¿   Úmetadata_batchesr÷   rÐ   s               rP   Ú_searchzAsyncFastAPI._searchÛ  sò   è ø€ ð /7Ö7¨˜Ÿ™�Ò7Ø$ñ
ˆð
 ×,Ñ,ØØ˜�x˜{¨8¨*°MÀ-ÀÐPWÐXØð -ó 
÷ 
ˆ	ð %Ÿ=™=¨°dÓ;ÐØÐ'ð "2÷&ð ð Ð(ð %.öà ð 7?Ð6JÔ(¨Ô2ÐPTÑTóð
 ñó&ˆI�kÑ"ô ˜IÓ&Ð&ùò- 8ð
úòùó&ùs?   ‚B/‡Bž'B/ÁB"ÁB/Á#B)Á.B$ÂB)ÂB/Â$B)Â)B/zAsyncFastAPI.delete_collectionc           	   ƒ   óV   K  — | j                  dd|› d|› d|› �«      ƒ d {  –—†  y 7 Œ­w)Nr³   r¥   r¬   rÙ   r¨   )rN   r¡   r¢   rÄ   s       rP   Údelete_collectionzAsyncFastAPI.delete_collectionÿ  s9   è ø€ ð × Ñ ØØ˜�x˜{¨8¨*°MÀ$ÀÐHó
÷ 	
ò 	
ús   ‚)¡'¢)zAsyncFastAPI._countc           
   ƒ   ó’   K  — | j                  dd|› d|› d|› d�d|j                  i¬«      ƒ d{  –—† }t        t        |«      S 7 Œ­w)	z0Returns the number of embeddings in the databaserœ   r¥   r¬   rÙ   z/countrõ   r­   N)rš   Úvaluer   rŸ   )rN   rÝ   r¢   rÄ   rõ   r¿   s         rP   Ú_countzAsyncFastAPI._count  s`   è ø€ ð ×,Ñ,ØØ˜�x˜{¨8¨*°MÀ-ÀÐPVÐWØ  *×"2Ñ"2Ð3ð -ó 
÷ 
ˆ	ô ”C˜Ó#Ð#ð
ús   ‚.A°A±AzAsyncFastAPI._peeké
   Únc              ƒ   óV   K  — | j                  ||||t        ¬«      ƒ d {  –—† }|S 7 Œ­w)N)r¢   rÄ   rµ   Úinclude)Ú_getr7   )rN   rÝ   r  r¢   rÄ   Úresps         rP   Ú_peekzAsyncFastAPI._peek  s;   è ø€ ð —Y‘YØØØØÜ6ð ó 
÷ 
ˆð ˆð
ús   ‚) '¡)zAsyncFastAPI._getÚidsÚwhereÚwhere_documentr  c
              ƒ   ó�  K  — |D �
cg c]
  }
|
dk7  sŒ	|
‘Œ }}
| j                  dd|› d|	› d|› d�||||||dœ¬«      ƒ d {  –—† }|j                  d	d «      }|�|D �cg c]  }|�t        |«      nd ‘Œ }}t        |d
   |j                  dd «      ||j                  dd «      d |j                  dd «      |¬«      S c c}
w 7 Œ~c c}w ­w)Nr–   r¤   r¥   r¬   rÙ   z/get)r	  r
  rµ   r¶   r  r  r§   r÷   r	  Ú
embeddingsÚ	documentsÚuris)r	  r  r÷   r  r–   r  Úincluded)rš   rœ   r9   r.   )rN   rÝ   r	  r
  rµ   r¶   r  r  r¢   rÄ   ÚiÚfiltered_includer¿   r÷   rÐ   s                  rP   r  zAsyncFastAPI._get1  s  è ø€ ð (/Ö> !°!°v³+šAÐ>ÐÐ>à×,Ñ,ØØ˜�x˜{¨8¨*°MÀ-ÀÐPTÐUàØØØ Ø"0Ø+ñð -ó 
÷ 
ˆ	ð —M‘M +¨tÓ4ˆ	ØÐ ð !*öàð 3;Ð2FÔ$ XÔ.ÈDÑPðˆIð ô
 Ø˜%Ñ Ø —}‘} \°4Ó8ØØ—m‘m K°Ó6ØØ—‘˜v tÓ,Øô
ð 	
ùò- ?ð
úòùs3   ‚C‡
B:’B:–*CÁ B?ÁCÁCÁ3ACÃCzAsyncFastAPI._deletec           
   ƒ   ó¾   K  — |||dœ}|�||d<   | j                  dd|› d|› d|› d�|¬«      ƒ d {  –—† }	t        |	r|	j                  d	d
«      ¬«      S d
¬«      S 7 Œ)­w)N)r
  r	  r  rµ   r¤   r¥   r¬   rÙ   z/deleter§   Údeletedr   )r  )rš   r"   rœ   )
rN   rÝ   r	  r
  r  rµ   r¢   rÄ   Úbodyr  s
             rP   Ú_deletezAsyncFastAPI._delete`  sƒ   è ø€ ð  %¨SÀNÑSˆØÐØ!ˆD�‰MØ×'Ñ'ØØ˜�x˜{¨8¨*°MÀ-ÀÐPWÐXØð (ó 
÷ 
ˆô
 ¹d D§H¡H¨Y¸Ó$:ÔJÐJÈÔJÐJð
ús   ‚/A±A²*AzAsyncFastAPI._submit_batchÚbatchr˜   c              ƒ   ó  K  — | j                  «       ƒ d{  –—† }d}|d   �|d   D �cg c]  }|�t        |«      nd‘Œ }}|d   |rt        |d   «      n|d   ||d   |d   dœ}| j                  d||¬	«      ƒ d{  –—† S 7 Œjc c}w 7 Œ­w)
z?
        Submits a batch of embeddings to the database
        Né   r   é   é   é   )r	  r  r÷   r  r  r¤   r§   )Úsupports_base64_encodingr8   r2   rš   )rN   r  r˜   r  Úserialized_metadatasrÐ   r–   s          rP   Ú_submit_batchzAsyncFastAPI._submit_batchv  sÐ   è ø€ ð *.×)FÑ)FÓ)H×#HÐ à#ÐØ�‰8Ðð !& a¡ö$àð 19Ð0DÔ" 8Ô,È$ÑNð$Ð ð $ð ˜‘8á'ô @ÀÀaÁÔIà�q‘Ø-Ø˜q™Ø˜!‘Hñ
ˆð ×'Ñ'ØØØð (ó 
÷ 
ð 	
ð' $Iúò$ð
ús+   ‚B
–B—B
©B¿=B
Á<BÁ=B
ÂB
zAsyncFastAPI._addr  r÷   r  r  c	              ƒ   óÄ   K  — |||||f}	t        |	d| j                  «       ƒ d {  –—† i«       | j                  |	d|› d|› dt        |«      › d�«      ƒ d {  –—†  y7 Œ77 Œ­w)NÚmax_batch_sizer¥   r¬   rÙ   z/addT©r3   Úget_max_batch_sizer  rK   )
rN   r	  rÝ   r  r÷   r  r  r¢   rÄ   r  s
             rP   Ú_addzAsyncFastAPI._addž  s‡   è ø€ ð ØØØØð
ˆô 	�uÐ/°t×7NÑ7NÓ7P×1PÐQÔRØ× Ñ ØØ˜�x˜{¨8¨*°MÄ#ÀmÓBTÐAUÐUYÐZó
÷ 	
ð 	
ð ð 2Qøð	
úó!   ‚"A ¤A¥1A ÁAÁA ÁA zAsyncFastAPI._updatec	              ƒ   óÌ   K  — ||�|nd |||f}	t        |	d| j                  «       ƒ d {  –—† i«       | j                  |	d|› d|› dt        |«      › d�«      ƒ d {  –—†  y7 Œ77 Œ­w)Nr!  r¥   r¬   rÙ   z/updateTr"  ©
rN   rÝ   r	  r  r÷   r  r  r¢   rÄ   r  s
             rP   Ú_updatezAsyncFastAPI._update¹  sŽ   è ø€ ð Ø$Ð0‰J°dØØØð
ˆô 	�uÐ/°t×7NÑ7NÓ7P×1PÐQÔRà× Ñ ØØ˜�x˜{¨8¨*°MÄ#ÀmÓBTÐAUÐU\Ð]ó
÷ 	
ð 	
ð
 ð 2Qøð	
ús!   ‚&A$¨A ©1A$ÁA"ÁA$Á"A$zAsyncFastAPI._upsertc	              ƒ   óÄ   K  — |||||f}	t        |	d| j                  «       ƒ d {  –—† i«       | j                  |	d|› d|› dt        |«      › d�«      ƒ d {  –—†  y7 Œ77 Œ­w)Nr!  r¥   r¬   rÙ   z/upsertTr"  r'  s
             rP   Ú_upsertzAsyncFastAPI._upsertÖ  s‡   è ø€ ð ØØØØð
ˆô 	�uÐ/°t×7NÑ7NÓ7P×1PÐQÔRØ× Ñ ØØ˜�x˜{¨8¨*°MÄ#ÀmÓBTÐAUÐU\Ð]ó
÷ 	
ð 	
ð ð 2Qøð	
úr%  zAsyncFastAPI._queryÚquery_embeddingsÚ	n_resultsc
              ƒ   ó   K  — |D �
cg c]
  }
|
dk7  sŒ	|
‘Œ }}
| j                  dd|› d|	› d|› d�||�t        |«      nd ||||dœ¬«      ƒ d {  –—† }|j                  d	d «      }|�0|D ��cg c]#  }|�|D �cg c]  }|�t        |«      nd ‘Œ c}nd ‘Œ% }}}t	        |d
   |j                  dd «      |j                  dd «      ||j                  dd «      |j                  dd «      d |¬«      S c c}
w 7 Œ£c c}w c c}}w ­w)Nr–   r¤   r¥   r¬   rÙ   z/query)r	  r+  r,  r
  r  r  r§   r÷   r	  Ú	distancesr  r  r  )r	  r.  r  r÷   r  r  r–   r  )rš   r4   rœ   r9   r/   )rN   rÝ   r+  r	  r,  r
  r  r  r¢   rÄ   r  r  r¿   rû   r÷   rÐ   s                   rP   Ú_queryzAsyncFastAPI._queryñ  s^  è ø€ ð (/Ö> !°!°v³+šAÐ>ÐÐ>à×,Ñ,ØØ˜�x˜{¨8¨*°MÀ-ÀÐPVÐWàà#Ð/ô %BÐBRÔ$SàØ&ØØ"0Ø+ñ	ð -ó 
÷ 
ˆ	ð %Ÿ=™=¨°dÓ;ÐØÐ'ð "2÷ ð ð Ð(ð %.öà ð 7?Ð6JÔ(¨Ô2ÐPTÑTóð
 ñð Ðñ  ô Ø˜%Ñ Ø—m‘m K°Ó6Ø —}‘} \°4Ó8Ø&Ø—m‘m K°Ó6Ø—‘˜v tÓ,ØØô	
ð 		
ùò; ?ð
úò$ùó ùsE   ‚C>‡
C,’C,–7C>ÁC1ÁC>Á+C8Á6C3ÂC8ÂAC>Ã3C8Ã8C>zAsyncFastAPI.resetc              ƒ   ób   K  — | j                  dd«      ƒ d {  –—† }t        t        |«      S 7 Œ­w)Nr¤   z/reset)rš   r   Úbool©rN   r¿   s     rP   ÚresetzAsyncFastAPI.reset(  s/   è ø€ ð ×,Ñ,¨V°XÓ>×>ˆ	Ü”D˜)Ó$Ð$ð ?úó   ‚/˜-™/zAsyncFastAPI.get_versionc              ƒ   ób   K  — | j                  dd«      ƒ d {  –—† }t        t        |«      S 7 Œ­w)Nrœ   z/version)rš   r   rK   r2  s     rP   Úget_versionzAsyncFastAPI.get_version.  s0   è ø€ ð ×,Ñ,¨U°JÓ?×?ˆ	Ü”C˜Ó#Ð#ð @úr4  c                 ó   — | j                   S rT   )rI   rV   s    rP   Úget_settingszAsyncFastAPI.get_settings4  s   € à�~‰~ÐrQ   z"AsyncFastAPI.get_pre_flight_checksc              ƒ   ó€   K  — | j                   €!| j                  dd«      ƒ d {  –—† }|| _         | j                   S 7 Œ­w)Nrœ   z/pre-flight-checks)Úpre_flight_checksrš   r2  s     rP   Úget_pre_flight_checksz"AsyncFastAPI.get_pre_flight_checks8  sD   è ø€ ð ×!Ñ!Ð)Ø"×0Ñ0°Ð8LÓM×MˆIØ%.ˆDÔ"Ø×%Ñ%Ð%ð Nús   ‚">¤<¥>z%AsyncFastAPI.supports_base64_encodingc              ƒ   ó‚   K  — | j                  «       ƒ d {  –—† }t        t        |j                  dd«      «      }|S 7 Œ&­w)Nr  F)r;  r   r1  rœ   )rN   r:  Úb64_encoding_enableds      rP   r  z%AsyncFastAPI.supports_base64_encodingA  sF   è ø€ ð #'×"<Ñ"<Ó">×>ÐÜ#ÜÐ#×'Ñ'Ð(BÀEÓJó 
Ðð $Ð#ð	 ?úó   ‚?–=—'?zAsyncFastAPI.get_max_batch_sizec              ƒ   ó‚   K  — | j                  «       ƒ d {  –—† }t        t        |j                  dd«      «      }|S 7 Œ&­w)Nr!  éÿÿÿÿ)r;  r   rŸ   rœ   )rN   r:  r!  s      rP   r#  zAsyncFastAPI.get_max_batch_sizeK  s@   è ø€ ð #'×"<Ñ"<Ó">×>ÐÜœcÐ#4×#8Ñ#8Ð9IÈ2Ó#NÓOˆØÐð ?úr>  )rR   r;   rh   )bÚ__name__Ú
__module__Ú__qualname__r<   r
   rŸ   ru   rv   Ú__annotations__r   rD   rW   r^   r   rd   r   ri   rU   r   rK   r}   r   rš   r   r   Ú	OPERATIONr    r   rª   r   r±   r´   r   r	   r»   r½   r   rÀ   r   rÃ   r   rÇ   rË   rÍ   r(   r   r1   r1  r×   rÛ   r   rß   rá   r   rç   ré   rí   r'   ró   r*   ÚINDEX_AND_WALr   r!   r0   rü   rþ   r  r.   r  r5   r%   r,   r-   r&   r  r"   r  ÚALLr   r$   r)   r#   r+   r  r$  r(  r*  r6   r/   r/  r3  r6  r   r8  r;  r  r#  Ú__classcell__)rO   s   @rP   r;   r;   @   sž  ø… ð .0€Hˆd�3˜×)Ñ)Ð)Ñ*Ó/ð
˜võ 
ó"ó"ð
¨ð ¸ð Èð ÐPTó ð ôó ðð(˜U×.Ñ.ó (ð> ð0 W¨S°#¨XÑ%6ò 0ó ð0ð ð˜Sò ó ðð+Øð+Ø!$ð+Ø04°S¸#°X±ð+à	ó+ñ$ Ð*Ð,D×,NÑ,NÓOØð5 ò 5ó ó Pð5ñ Ð0Ð2J×2TÑ2TÓUØð %ñ	
àð	
ð ð	
ð 
ò		
ó ó Vð	
ñ Ð-Ð/G×/QÑ/QÓRØð %ñ
àð
ð ð
ð 
ò	
ó ó Sð
ñ Ð0Ð2J×2TÑ2TÓUØð %ñ
àð
ð ð
ð 
ò	
ó ó Vð
ñ Ð/Ð1I×1SÑ1SÓTØð  $Ø $Ø$ñ	
à˜‰}ð
ð ˜‘ð
ð ð	
ð
 
�(Ñ	ò
ó ó Uð
ñ, Ð.Ð0H×0RÑ0RÓSØð
¨ð 
°ò 
ó ó Tð
ñ Ð+Ð-E×-OÑ-OÓPØð. Sð .¨Vò .ó ó Qð.ñ Ð2Ð4L×4VÑ4VÓWØðS¨ò Só ó XðSñ Ð1Ð3K×3UÑ3UÓVØð  $Ø $Ø$Ø(ñà˜‰}ðð ˜‘ðð ð	ð
 ðð 
�/Ñ	"òó ó Wðñ. Ð2Ð4L×4VÑ4VÓWØà*Ð<Lñ$Øð$Ø69ð$à	ò$ó ó Xð$ñ Ð2Ð4L×4VÑ4VÓWØð $(ØAEØ15Ø#Ø$Ø(ñàðð ˜Ñ ðð  Ð =Ñ>ð	ð
 Ð-Ñ.ðð ðð ðð ðð 
òó ó Xðñ@ Ð/Ð1I×1SÑ1SÓTØð %Ø(ñ	àðð ðð ð	ð
 
òó ó Uðñ Ø+Ð-E×-OÑ-Oóð ð %Ø(ñ	àðð ðð ð	ð
 
òó óðñ  Ø/Ð1I×1SÑ1Sóð ð $(ØAEØ15Ø$Ø(ñ
àð
ð ˜Ñ ð
ð  Ð =Ñ>ð	
ð
 Ð-Ñ.ð
ð ð
ð ð
ð 
ò
ó óð
ñ& Ð(Ð*B×*LÑ*LÓMØð #'Ø59ØEIØ$Ø(ñ
àð
ð ˜3‘-ð
ð Ð1Ñ2ð	
ð
 $Ð$AÑBð
ð ð
ð ð
ð 
ò
ó ó Nð
ñ. Ð&Ð(@×(JÑ(JÓKØð
 %Ø(ñàðð ðð ð	ð
 ðð 
òó ó Lðñ Ð,Ð.F×.PÑ.PÓQØð %Ø(ñ	
'àð
'ð ð
'ð ð	
'ð
 
ò
'ó ó Rð
'ñ Ø+Ð-E×-OÑ-Oóð ð %Ø(ñ	
àð
ð ð
ð ð	
ð
 
ò
ó óð
ñ" Ð(Ð*B×*LÑ*LÓMØð
 %Ø(Ø )× 7Ñ 7ñ 'àð 'ð �v‘,ð 'ð ð	 'ð
 ð 'ð ð 'ð 
ò 'ó ó Nð 'ñD Ð2Ð4L×4VÑ4VÓWØð %Ø(ñ		
àð	
ð ð	
ð ð		
ð
 
ò	
ó ó Xð	
ñ Ð'Ð)A×)KÑ)KÓLØð %Ø(Ø )× 7Ñ 7ñ$àð$ð ð$ð ð	$ð
 ð$ð 
ò$ó ó Mð$ñ  Ð&Ð(@×(JÑ(JÓKØð Ø$Ø(ñàðð ðð ð	ð
 ðð 
òó ó Lðñ" Ð%Ð'?×'IÑ'IÓJØð "Ø!%Ø#Ø $Ø26Ø3Ø$Ø(ñ+
àð+
ð �c‰]ð+
ð ˜‰ð	+
ð
 ˜‰}ð+
ð ˜‘ð+
ð ! Ñ/ð+
ð ð+
ð ð+
ð ð+
ð 
ò+
ó ó Kð+
ñZ Ð(Ð*B×*LÑ*LÓMØð "Ø!%Ø26Ø#Ø$Ø(ñKàðKð �c‰]ðKð ˜‰ð	Kð
 ! Ñ/ðKð ˜‰}ðKð ðKð ðKð 
òKó ó NðKñ( Ð.Ð0H×0LÑ0LÓMð%
àØØ�ZÑ Ø�YÑØ�YÑØ�T‰Nð	ñ
ð%
ð ð%
ð 
ò%
ó Nð%
ñN Ð%Ð'?×'CÑ'CÓDØð *.Ø)-Ø#Ø$Ø(ñàðð ðð ð	ð
 ˜IÑ&ðð ˜IÑ&ðð �t‰nðð ðð ðð 
òó ó Eðñ2 Ð(Ð*B×*FÑ*FÓGØð
 ,0Ø)-Ø)-Ø#Ø$Ø(ñàðð ðð ˜ZÑ(ð	ð
 ˜IÑ&ðð ˜IÑ&ðð �t‰nðð ðð ðð 
òó ó Hðñ6 Ð(Ð*B×*FÑ*FÓGØð *.Ø)-Ø#Ø$Ø(ñàðð ðð ð	ð
 ˜IÑ&ðð ˜IÑ&ðð �t‰nðð ðð ðð 
òó ó Hðñ2 Ð'Ð)A×)EÑ)EÓFØð
 "ØØ!%Ø26Ø<Ø$Ø(ñ3
àð3
ð %ð3
ð �c‰]ð	3
ð
 ð3
ð ˜‰ð3
ð ! Ñ/ð3
ð ð3
ð ð3
ð ð3
ð 
ò3
ó ó Gð3
ñj Ð&Ð(@×(DÑ(DÓEØð%˜Tò %ó ó Fð%ñ Ð,Ð.F×.PÑ.PÓQØð$ 3ò $ó ó Rð$ð ð˜hò ó ðñ Ø,Ð.F×.PÑ.Póð&¨Sò &óð&ñ Ø/Ð1I×1SÑ1Sóð$°ò $óð$ñ Ð3Ð5M×5WÑ5WÓXØð¨#ò ó ó YôrQ   r;   )Qro   Úuuidr   Úurllib.parser�   r‹   Útypingr   r   r   r   r   r	   r
   r   Úloggingru   Ú	overridesr   Úchromadbr   Úchromadb.authr   Úchromadb.api.async_apir   Úchromadb.api.base_http_clientr   Ú%chromadb.api.collection_configurationr   r   r   r   Úchromadb.configr   r   r   r   Ú chromadb.telemetry.opentelemetryr   r   r   Úchromadb.telemetry.productr   Úchromadb.utils.async_to_syncr   Úchromadb.typesr   r   r    rÇ   Ú"chromadb.execution.expression.planr!   Úchromadb.api.typesr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   Ú	getLoggerrA  Úloggerr;   rÂ   rQ   rP   ú<module>r\     s©   ðÛ Ý Û Û ß L× LÓ LÛ Û Ý Ý  Ý &Ý 1Ý 8÷ó ÷ OÓ N÷ñ õ
 >Ý 6ß JÑ JÝ 5÷÷ ÷ ÷ ÷ õ ÷0ñ ð 
ˆ×	Ñ	˜8Ó	$€ôP�> >õ PrQ   