
    _jmy                        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	 d dlm
Z
 d dl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mZmZmZ d dlmZ d d	lmZ d d
lmZmZm Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: d dl&m;Z;m<Z<m=Z=m>Z> d dl?m@Z@ d dl?mAZA d dlBmCZCmDZDmEZEmFZF d dlGmHZHmIZImJZJ d dlKmLZL  ejM        eN          ZO G d dee#          ZPdS )    N)AnyDictMappingOptionalcastTupleList)Sequence)UUID)override)AttachedFunction)CreateCollectionConfigurationUpdateCollectionConfiguration'update_collection_configuration_to_json'create_collection_configuration_to_json)__version__)BaseHTTPClient)DatabaseTenant
Collection)	ServerAPI)Search)DeleteResult	Documents
EmbeddingsIDsIncludeIndexingStatusSchema	Metadatas	ReadLevelURIsWhereWhereDocument	GetResultQueryResultSearchResultCollectionMetadatavalidate_batchconvert_np_embeddings_to_listIncludeMetadataDocuments!IncludeMetadataDocumentsDistances)"IncludeMetadataDocumentsEmbeddings%optional_embeddings_to_base64_stringsserialize_metadatadeserialize_metadata)UserIdentity)ClientAuthProvider)DEFAULT_DATABASEDEFAULT_TENANTSettingsSystem)OpenTelemetryClientOpenTelemetryGranularitytrace_method)ProductTelemetryClientc                       e Zd Zdef 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j                  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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         fd                        Z edej                  ededdfd                        Z edej                  ededefd                        Z edej                  edefd                        Z edej                  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j                  eeefded edefd#                        Z" ed$ej                  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efdeded ede fd,                        Z( ed-ej                  eeefd.e)ded ede fd/                        Z* ed0ej                  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d1                        Z+ ed2ej                  edddeefd3e)d4ee         d5ee%         d6ee,         ded eddfd7                        Z- ed8ej                  eeefd.e)d4eded ede f
d9                        Z. ed:ej                  eeefd.e)ded edefd;                        Z/ ed<ej                  eeefd.e)ded ede0fd=                        Z1 ed>ej                  eeee2j3        fd.e)d?e4e5         ded ed@e2de6fdA                        Z7 edBej                  eeefdeded eddfdC                        Z8 edDej                  eeee2j3        fd.e)ded ed@e2def
dE                        Z9 edFej                  edGeefd.e)dHeded ede:f
dI                        Z; edJej                  eddddde<eefd.e)dKee=         dLee>         dee         dee         dMee?         dNe@ded ede:fdO                        ZA edPej                  eddddeefd.e)dKee=         dLee>         dMee?         dee         ded edeBfdQ                        ZC edRejD                  dSeEe=eeF         eeG         eeH         eeI         f         dTeddfdU            ZJ edVejD                  edddeefdKe=d.e)dWeFdXeeG         dYeeH         dZeeI         ded ede&fd[                        ZK ed\ejD                  eddddeefd.e)dKe=dWeeF         dXeeG         dYeeH         dZeeI         ded ede&fd]                        ZL ed^ejD                  edddeefd.e)dKe=dWeFdXeeG         dYeeH         dZeeI         ded ede&fd_                        ZM ed`ejD                  eddGddeNeefd.e)daeFdKee=         dbedLee>         dMee?         dNe@ded edeOfdc                        ZP eddejD                  ede&fde                        ZQ edfej                  edefdg                        ZRedeSfdh            ZT ediej                  defdj            ZU edkej                  de&fdl            ZV edmej                  edefdn                        ZW edoejD                  edeefdpededqe)dredsee
eef                  ded edeEdte&f         fdu                        ZX edvejD                  eeefdedqe)ded eddtf
dw                        ZY edxejD                  ed%eefdedqe)dye&ded ede&fdz                        ZZ xZ[S ){FastAPIsystemc                 b   t                                          |           |j                            d           |j                            d           |                     t                    | _        |                     t                    | _        |j        | _        t          
                    t          |j        j                  |j        j        |j        j        |j        j                  | _        | j        j        ,t%          j        d | j        | j        j                  | _        n t%          j        d | j                  | _        |j        j        pi | _        d| j        d<   dt0          z   d	z   | j        d
<   | j        $| j        j                            | j                   |j        j        rs|                     t8                    | _        | j                                        }|                                D ](\  }}|                                 | j        j        |<   'd S d S )Nchroma_server_hostchroma_server_http_port)r?   r@   chroma_server_ssl_enableddefault_api_path)timeoutlimitsverify)rC   rD   zapplication/jsonzContent-TypezChroma Python Client vz( (https://github.com/chroma-core/chroma)z
User-Agent)!super__init__settingsrequirer7   _opentelemetry_clientr:   _product_telemetry_client	_settingsr<   resolve_urlstrr?   r@   rA   chroma_server_api_default_path_api_urlchroma_server_ssl_verifyhttpxClienthttp_limits_sessionchroma_server_headers_headerr   headersupdatechroma_client_auth_providerr2   _auth_providerauthenticateitemsget_secret_value)selfr=   _headersheadervalue	__class__s        Q/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/chromadb/api/fastapi.pyrG   zFastAPI.__init__E   s        4555 9:::%)\\2E%F%F")-6L)M)M&++"6?#EFF$*O$K&,o&O#_K	 , 
 
 >2>!L'~>  DMM "Ld>NOOODM<B'9^$$89 	\" <#M!((666?6 	I"&,,/A"B"BD*7799H!)!1!1 I I050F0F0H0H%f--		I 	II I    returnc                 4    t          | j        j                  S N)dictrU   rX   r_   s    rd   get_request_headerszFastAPI.get_request_headerso   s    DM)***re   c                     | j         S rh   )rP   rj   s    rd   get_api_urlzFastAPI.get_api_urls   s
    }re   methodpathkwargsc                 |   d|v r8t          j        |                    d          t           j                  }||d<   t          j                            |dd d           }| j        |z   } | j        j	        ||fi t          t          |          }t          j        |           t          j        |j                  S )Njson)optioncontent/)safeencodingerrors)orjsondumpspopOPT_SERIALIZE_NUMPYurllibparsequoterP   rU   requestr   r   r   _raise_chroma_errorloadstext)r_   rn   ro   rp   dataescaped_pathurlresponses           rd   _make_requestzFastAPI._make_requestw   s     V<

6 2 26;UVVVD $F9 |))$S4PT)UUml*(4=(JJS&8I8IJJ*8444|HM***re   zFastAPI.heartbeatc                 X    |                      dd          }t          |d                   S )zNReturns the current server time in nanoseconds to check if the server is alivegetz
/heartbeatznanosecond heartbeatr   intr_   	resp_jsons     rd   	heartbeatzFastAPI.heartbeat   s-     &&ul;;	934555re   zFastAPI.create_databasenametenantNc                 B    |                      dd| dd|i           dS )zCreates a databasepost	/tenants/
/databasesr   rr   Nr   r_   r   r   s      rd   create_databasezFastAPI.create_database   sC     	****$ 	 	
 	
 	
 	
 	
re   zFastAPI.get_databasec                     |                      dd| d|           }t          |d         |d         |d                   S )zReturns a databaser   r   /databases/idr   r   r   r   r   )r   r   )r_   r   r   r   s       rd   get_databasezFastAPI.get_database   s]     &&111411
 
	 Yv%6y?R
 
 
 	
re   zFastAPI.delete_databasec                 >    |                      dd| d|            dS )zDeletes a databasedeleter   r   Nr   r   s      rd   delete_databasezFastAPI.delete_database   s<     	111411	
 	
 	
 	
 	
re   zFastAPI.list_databaseslimitoffsetc           	          |                      dd| dt          j        ||d                    }d |D             }|S )zReturns a list of all databasesr   r   r   r   r   paramsc                 V    g | ]&}t          |d          |d         |d                   'S )r   r   r   r   )r   ).0dbs     rd   
<listcomp>z*FastAPI.list_databases.<locals>.<listcomp>   sC     
 
 
 4r&z"X,GGG
 
 
re   r   r   _clean_params)r_   r   r   r   json_databases	databasess         rd   list_databaseszFastAPI.list_databases   su     ++****!/"$   , 	
 	

 
$
 
 
	 re   zFastAPI.create_tenantc                 :    |                      ddd|i           d S )Nr   z/tenantsr   r   r   )r_   r   s     rd   create_tenantzFastAPI.create_tenant   s)     	6:VTNCCCCCre   zFastAPI.get_tenantc                 `    |                      dd|z             }t          |d                   S )Nr   r   r   )r   )r   r   )r_   r   r   s      rd   
get_tenantzFastAPI.get_tenant   s4     &&ukD.@AA	9V,----re   zFastAPI.get_user_identityc                 B    t          di |                     dd          S )Nr   z/auth/identity )r1   r   rj   s    rd   get_user_identityzFastAPI.get_user_identity   s)     JJd008HIIJJJre   zFastAPI.list_collectionsdatabasec           	          |                      dd| d| dt          j        ||d                    }d |D             }|S )z!Returns a list of all collectionsr   r   r   /collectionsr   r   c                 6    g | ]}t          j        |          S r   )CollectionModel	from_json)r   json_collections     rd   r   z,FastAPI.list_collections.<locals>.<listcomp>   s3     
 
 
 %o66
 
 
re   r   )r_   r   r   r   r   json_collectionscollection_modelss          rd   list_collectionszFastAPI.list_collections   s      --AAA8AAA!/"$   . 	
 	

 
#3
 
 

 ! re   zFastAPI.count_collectionsc                 f    |                      dd| d| d          }t          t          |          S )zReturns a count of collectionsr   r   r   z/collections_count)r   r   r   )r_   r   r   r   s       rd   count_collectionszFastAPI.count_collections   sD     &&GGG8GGG
 
	 C###re   zFastAPI.create_collectionFschemaconfigurationmetadataget_or_createc           
          |rt          ||          nd}|r|                                nd}	|                     dd| d| d||||	|d          }
t          j        |
          }|S )zCreates a collectionNr   r   r   r   )r   r   r   r   r   r   )r   serialize_to_jsonr   r   r   )r_   r   r   r   r   r   r   r   config_jsonserialized_schemar   models               rd   create_collectionzFastAPI.create_collection  s     3M8LLL 	
 ;AJF44666d&&AAA8AAA$!,+!.  ' 

 

	  ))44re   zFastAPI.get_collectionc           	      l    |                      dd| d| d|           }t          j        |          }|S )zReturns a collectionr   r   r   /collections/r   r   r   )r_   r   r   r   r   r   s         rd   get_collectionzFastAPI.get_collection-  sN     &&HHH8HH$HH
 
	
  ))44re   zFastAPI.get_collection_by_idcollection_idc           	      l    |                      dd| d| d|           }t          j        |          }|S )zReturns a collection by its IDr   r   r   z/collections/by-id/r   )r_   r   r   r   r   r   s         rd   get_collection_by_idzFastAPI.get_collection_by_id>  sN     &&WWW8WWWW
 
	
  ))44re   z FastAPI.get_or_create_collectionc           	      :    |                      ||||d||          S )NT)r   r   r   r   r   r   r   )r   )r_   r   r   r   r   r   r   s          rd   get_or_create_collectionz FastAPI.get_or_create_collectionO  s6     %%' & 
 
 	
re   zFastAPI._modifyr   new_namenew_metadatanew_configurationc           	      r    |                      dd| d| d| |||rt          |          ndd           dS )zUpdates a collectionputr   r   r   N)r   r   r   r   )r   r   )r_   r   r   r   r   r   r   s          rd   _modifyzFastAPI._modifyf  s}     	FFF8FF"FF ,$ %&%L%& & &   	 	
 	
 	
 	
 	
re   zFastAPI._forkc           
      v    |                      dd| d| d| dd|i          }t          j        |          }|S )zForks a collectionr   r   r   r   z/forkr   r   r   )r_   r   r   r   r   r   r   s          rd   _forkzFastAPI._fork  s^     &&VVV8VV-VVVh' ' 
 
	
  ))44re   zFastAPI._fork_countc           
      l    |                      dd| d| d| d          }t          |d                   S )z)Gets the number of forks for a collectionr   r   r   r   z/fork_countcountr   r_   r   r   r   r   s        rd   _fork_countzFastAPI._fork_count  sO     &&\\\8\\-\\\
 
	 9W%&&&re   zFastAPI._get_indexing_statusc           
          |                      dd| d| d| d          }t          |d         |d         |d         |d	         
          S )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        rd   _get_indexing_statuszFastAPI._get_indexing_status  sv     &&aaa8aa-aaa
 
	 %&78'(;<,!*+A!B	
 
 
 	
re   zFastAPI._searchsearches
read_levelc           
          d |D             |d}|                      dd| d| d| d|          }|                    d	d
          }|d |D             |d	<   t          |          S )z&Performs hybrid search on a collectionc                 6    g | ]}|                                 S r   )to_dict)r   ss     rd   r   z#FastAPI._search.<locals>.<listcomp>  s     777777re   )r   r   r   r   r   r   z/searchr   	metadatasNc                 .    g | ]}|d |D             nd S )Nc                 4    g | ]}|t          |          nd S rh   r0   r   r   s     rd   r   z.FastAPI._search.<locals>.<listcomp>.<listcomp>  <         7?6J(222PT  re   r   r   r   s     rd   r   z#FastAPI._search.<locals>.<listcomp>  sS     & & &  (	 $-   
 & & &re   )r   r   r'   )	r_   r   r   r   r   r   payloadr   metadata_batchess	            rd   _searchzFastAPI._search  s     87h777$
 

 &&XXX8XX-XXX ' 
 
	 %==d;;'& & "2& & &Ik" I&&&re   zFastAPI.delete_collectionc           	      D    |                      dd| d| d|            dS )zDeletes a collectionr   r   r   r   Nr   )r_   r   r   r   s       rd   delete_collectionzFastAPI.delete_collection  sD     	HHH8HH$HH	
 	
 	
 	
 	
re   zFastAPI._countc           
      ~    |                      dd| d| d| dd|j        i          }t          t          |          S )z0Returns the number of embeddings in the databaser   r   r   r   z/countr   r   )r   rb   r   r   )r_   r   r   r   r   r   s         rd   _countzFastAPI._count  s\     &&WWW8WW-WWW *"23 ' 
 
	
 C###re   zFastAPI._peek
   nc           
      f    t          t          |                     ||||t                              S )N)r   r   r   include)r   r%   _getr-   )r_   r   r   r   r   s        rd   _peekzFastAPI._peek  s>     II!:   	
 	
 		
re   zFastAPI._getidswherewhere_documentr   c
                 d   d |D             }
|                      dd| d|	 d| d||||||
d          }|                    d	d           }|d
 |D             }t          |d         |                    dd           ||                    dd           d |                    dd           |          S )Nc                     g | ]
}|d k    |S r   r   r   is     rd   r   z FastAPI._get.<locals>.<listcomp>      >>>!!v++A+++re   r   r   r   r   z/get)r  r  r   r   r  r   r   r   c                 4    g | ]}|t          |          nd S rh   r   r   s     rd   r   z FastAPI._get.<locals>.<listcomp>/  s;        3;2F$X...D  re   r  
embeddings	documentsuris)r  r  r   r  r   r  included)r   r   r%   )r_   r   r  r  r   r   r  r   r   r   filtered_includer   r   s                rd   r  zFastAPI._get  s    ?>w>>>&&UUU8UU-UUU "0+  ' 
 
	 MM+t44	   )  I
 %  }}\488mmK66vt,,
 
 
 	
re   zFastAPI._deletec           
          |||d}|||d<   |                      dd| d| d| d|	          }	t          |	r|	                    d
d          nd          S )z$Deletes embeddings from the database)r  r  r  Nr   r   r   r   r   z/deleter   deletedr   )r  )r   r   r   )
r_   r   r  r  r  r   r   r   bodyresps
             rd   _deletezFastAPI._delete>  s     ,
 

 !DM!!XXX8XX-XXX " 
 

 d$IDHHY$:$:$:JJJJre   zFastAPI._submit_batchbatchr   c                     d}|d         d |d         D             }|d         |                                  rt          |d                   n|d         ||d         |d         d}|                     d	||
           dS )z?
        Submits a batch of embeddings to the database
        N   c                 4    g | ]}|t          |          nd S rh   )r/   r   s     rd   r   z)FastAPI._submit_batch.<locals>.<listcomp>k  s;     $ $ $ 190D"8,,,$$ $ $re   r            )r  r  r   r  r  r   r   )supports_base64_encodingr.   r   )r_   r  r   serialized_metadatasr   s        rd   _submit_batchzFastAPI._submit_batchY  s       $8$ $ %a$ $ $  8,,..?aIIIq-q!H
 
 	63T22222re   zFastAPI._addr  r   r  r  c	                     |||||f}	t          |	d|                                 i           |                     |	d| d| dt          |           d           dS )zi
        Adds a batch of embeddings to the database
        - pass in column oriented data lists
        max_batch_sizer   r   r   z/addTr)   get_max_batch_sizer   rN   )
r_   r  r   r  r   r  r  r   r   r  s
             rd   _addzFastAPI._add|  s    $ 
 	u/1H1H1J1JKLLLZZZ8ZZ#mBTBTZZZ	
 	
 	
 tre   zFastAPI._updatec	                     |||nd|||f}	t          |	d|                                 i           |                     |	d| d| dt          |           d           dS )zl
        Updates a batch of embeddings in the database
        - pass in column oriented data lists
        Nr"  r   r   r   z/updateTr#  
r_   r   r  r  r   r  r  r   r   r  s
             rd   _updatezFastAPI._update  s    $ $0JJd
 	u/1H1H1J1JKLLL]]]8]]#mBTBT]]]	
 	
 	
 tre   zFastAPI._upsertc	                     |||||f}	t          |	d|                                 i           |                     |	d| d| dt          |           d           dS )zl
        Upserts a batch of embeddings in the database
        - pass in column oriented data lists
        r"  r   r   r   z/upsertTr#  r'  s
             rd   _upsertzFastAPI._upsert  s    $ 
 	u/1H1H1J1JKLLL]]]8]]#mBTBT]]]	
 	
 	
 tre   zFastAPI._queryquery_embeddings	n_resultsc
                    d |D             }
	 |                      dd| d|	 d| d||t          |          nd ||||
d          }|                    d	d           }|d
 |D             }t          |d         |                    dd           |                    dd           ||                    dd           |                    dd           d |          S )Nc                     g | ]
}|d k    |S r  r   r	  s     rd   r   z"FastAPI._query.<locals>.<listcomp>  r  re   r   r   r   r   z/query)r  r+  r,  r  r  r   r   r   c                 .    g | ]}|d |D             nd S )Nc                 4    g | ]}|t          |          nd S rh   r   r   s     rd   r   z-FastAPI._query.<locals>.<listcomp>.<listcomp>  r   re   r   r   s     rd   r   z"FastAPI._query.<locals>.<listcomp>  sS            (	 $-   
      re   r  	distancesr  r  r  )r  r1  r  r   r  r  r   r  )r   r*   r   r&   )r_   r   r+  r  r,  r  r  r   r   r   r  r   r   s                rd   _queryzFastAPI._query  s5    ?>w>>>>&&WWW8WW-WWW#/ %BBR$S$S$S&"0+	 	 ' 
 
	  %==d;;'    "2      % mmK66 }}\488&mmK66vt,,	
 	
 	
 		
re   zFastAPI.resetc                 X    |                      dd          }t          t          |          S )zResets the databaser   z/resetr   r   boolr   s     rd   resetzFastAPI.reset  s)     &&vx88	D)$$$re   zFastAPI.get_versionc                 X    |                      dd          }t          t          |          S )z!Returns the version of the serverr   z/version)r   r   rN   r   s     rd   get_versionzFastAPI.get_version  s)     &&uj99	C###re   c                     | j         S )z"Returns the settings of the client)rL   rj   s    rd   get_settingszFastAPI.get_settings   s     ~re   zFastAPI.get_pre_flight_checksc                 X    | j         |                     dd          }|| _         | j         S )Nr   z/pre-flight-checks)pre_flight_checksr   r   s     rd   get_pre_flight_checkszFastAPI.get_pre_flight_checks%  s2    !)**52FGGI%.D"%%re   z FastAPI.supports_base64_encodingc                     |                                  }t          t          |                    dd                    }|S )Nr  F)r=  r   r5  r   )r_   r<  b64_encoding_enableds      rd   r  z FastAPI.supports_base64_encoding,  sE     !6688##''(BEJJ 
  
 $#re   zFastAPI.get_max_batch_sizec                     |                                  }t          t          |                    dd                    }|S )Nr"  )r=  r   r   r   )r_   r<  r"  s      rd   r$  zFastAPI.get_max_batch_size6  s=     !6688c#4#8#89I2#N#NOOre   zFastAPI.attach_functionfunction_idinput_collection_idoutput_collectionr   r   c                    |                      dd| d| d| d||||d          }t          | t          |d         d	                   |d         d
         |d         d         |||||	  	        }	|                    dd          }
|	|
fS )z"Attach a function to a collection.r   r   r   r   z/functions/attach)r   rB  rD  r   r   attached_functionr   r   function_name	clientr   r   rG  rC  rD  r   r   r   createdTr   r   r   r   )r_   rB  r   rC  rD  r   r   r   r   rF  rJ  s              rd   attach_functionzFastAPI.attach_function=  s     &&hhh8hhBUhhh*%6 	  ' 	
 	
	 -I124899./7#$78I 3/

 

 

 --t
 
 "7++re   zFastAPI.get_attached_functionc                     |                      dd| d| d| d|           }|d         }t          | t          |d                   |d         |d	         ||d
         |                    d          ||	  	        S )z;Get an attached function by name for a specific collection.r   r   r   r   z/functions/rF  r   r   rG  rD  r   rH  rK  )r_   r   rC  r   r   r   afs          rd   get_attached_functionzFastAPI.get_attached_functione  s     &&hhh8hhBUhhbfhh
 
	
 *+BtH~~F_- 3 !4566(##

 

 

 
	
re   zFastAPI.detach_functiondelete_outputc                     |                      dd| d| d| d| d	d|i          }t          t          |d	                   S )
z/Detach a function and prevent any further runs.r   r   r   r   z/attached_functions/z/detachrP  r   successr4  )r_   r   rC  rP  r   r   r   s          rd   detach_functionzFastAPI.detach_function  sj     &&xxx8xxBUxxkoxxx ' 
 
	 D)I.///re   )\__name__
__module____qualname__r6   rG   r   r   rN   rk   rm   r   r   r   r9   r8   	OPERATIONr   r   r4   r   r   r   r   r   r
   r   r   r   r   r1   r   r3   r   r   r   r   r   r(   r5  r   r   r   r   r   r   r   r   r   r   r   r!   INDEX_AND_WALr	   r   r'   r   r   r   r%   r  r+   r   r#   r$   r   r  r   r  ALLr   r   r    r   r"   r   r%  r(  r*  r,   r&   r2  r6  r8  r5   r:  r=  r  r$  rL  rO  rS  __classcell__)rc   s   @rd   r<   r<   D   s       (Iv (I (I (I (I (I (IT +WS#X%6 + + + X+ S    X+C +s +d38n +QT + + + +  \%'?'IJJ63 6 6 6 X KJ6 \+-E-OPP %

 



 

 
	

 

 

 X QP

 \(*B*LMM %
 

 
 
	
 
 
 X NM
 \+-E-OPP %	
 	
	
 	
 
		
 	
 	
 X QP	
 \*,D,NOO  $ $$	 }  	
 
(	   X PO. \)+C+MNND# D$ D D D X OND \&(@(JKK.s .v . . . X LK. \-/G/QRRK< K K K X SRK \,.F.PQQ  $ $$(! !}! ! 	!
 ! 
/	"! ! ! X RQ!2 \-/G/QRR*<L$ $$69$	$ $ $ X SR$ \-/G/QRR $(AE15#$(      =>	
 -.    
   X SR@ \*,D,NOO %(	   	
 
   X PO \02J2TUU %(	   	
 
   X VU \*,D,N   $(AE15$(
 

  
   =>	

 -.
 
 
 

 
 
 X 
& \#%=%GHH #'59EI$(
 

 3-
 12	

 $$AB
 
 
 

 
 
 X IH
0 \/#;#EFF
 %(   	
  
   X GF  \')A)KLL %(	' '' ' 	'
 
' ' ' X ML' \02J2TUU %(	
 

 
 	

 

 
 
 X VU
" \#%=%GHH
 %( ) 7#' #'#' v,#' 	#'
 #' #' 
#' #' #' X IH#'J \-/G/QRR %(	

 



 

 	


 


 

 

 X SR

 \"$<$FGG %( ) 7$ $$ $ 	$
 $ 
$ $ $ X HG$ \/#;#EFF $(
 

 
 	

 
 

 
 
 X GF
$ \.":"DEE "!%# $263$(,
 ,
,
 c],
 	,

 },
 ,
 !/,
 ,
 ,
 ,
 
,
 ,
 ,
 X FE,
\ \#%=%GHH "!%26#$(K KK c]K 	K
 !/K }K K K 
K K K X IHK2 \)+C+GHH 3Z YYTN	
 3  3 
 3  3  3 IH 3D \.":">?? *.)-#$(   	
 I& I& tn   
   X @?: \#%=%ABB
 ,0)-)-#$(   Z(	
 I& I& tn   
   X CB: \#%=%ABB *.)-#$(   	
 I& I& tn   
   X CB: \"$<$@AA
 "!%26<$(5
 5
5
 %5
 c]	5

 5
 5
 !/5
 5
 5
 5
 
5
 5
 5
 X BA5
n \/#;#?@@%t % % % X A@%
 \')A)KLL$S $ $ $ X ML$
 h    X \13K3UVV&s & & & WV& \*,D,N $$ $ $ $ $ \.0H0RSSC    X TS
 \+-E-IJJ ,0$($, $,$, $, "	$,
 $, c3h($, $, $, 
!4'	($, $, $, X KJ$,L \13K3OPP
 %(
 

 "
 	

 
 

 
 
 X QP
4 \+-E-IJJ
 $$(0 00 "0 	0
 0 0 
0 0 0 X KJ0 0 0 0 0re   r<   )Qry   loggingtypingr   r   r   r   r   r   r	   r
   uuidr   rR   urllib.parser}   	overridesr   $chromadb.api.models.AttachedFunctionr   %chromadb.api.collection_configurationr   r   r   r   chromadbr   chromadb.api.base_http_clientr   chromadb.typesr   r   r   r   chromadb.apir   "chromadb.execution.expression.planr   chromadb.api.typesr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   chromadb.authr1   r2   chromadb.configr3   r4   r5   r6    chromadb.telemetry.opentelemetryr7   r8   r9   chromadb.telemetry.productr:   	getLoggerrT  loggerr<   r   re   rd   <module>rn     sW     B B B B B B B B B B B B B B B B B B                        A A A A A A            !           8 8 8 8 8 8 J J J J J J J J J J " " " " " " 5 5 5 5 5 5                                           .            ' & & & & &      O N N N N N N N N N N N         
 > = = = = =		8	$	$O0 O0 O0 O0 O0ni O0 O0 O0 O0 O0re   