§
    ˜Štj»( ã                   óh  — d dl mZ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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 d dlmZ d d	l
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( d dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl0m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z: d dl;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZH d dlImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR d dlSmTZT d dlUZUd dlVmWZW d dlXmYZYmZZ[ d dl\m]Z] d dl^m_Z_ d dl`maZambZb d dlcmdZdmeZe d dlfmgZgmhZhmiZimjZj d d l`mkZl  eUjm        en¦  «        Zod!„ Zpd"ed#dfd$„Zqd%ed&eegef         d#efd'„Zrd%ed&eegef         d#efd(„Zsd%ed&eegef         d#efd)„Zt ed*e%d+¬,¦  «        Zud-eeu         d.ed#eufd/„Zv G d0„ d1e
jw        ¦  «        Zx G d2„ d3eH¦  «        ZdS )4é    )	ÚAnyÚCallableÚcastÚDictÚSequenceÚOptionalÚTypeÚTypeVarÚTupleN)Ú	to_threadÚCapacityLimiter)ÚFastAPIÚResponseÚRequest)Úget_openapi)ÚCORSMiddleware©ÚORJSONResponse)ÚAPIRoute)ÚHTTPExceptionÚstatus)Úwraps)Ú.load_update_collection_configuration_from_jsonÚ.load_create_collection_configuration_from_jsonÚ?create_collection_configuration_from_legacy_collection_metadataÚCreateCollectionConfiguration)Ú	BaseModel)Ú__version__)ÚDeleteResultÚ	EmbeddingÚ	GetResultÚQueryResultÚ
EmbeddingsÚconvert_list_embeddings_to_np)ÚUserIdentity)ÚAuthzActionÚAuthzResourceÚServerAuthenticationProviderÚServerAuthorizationProvider)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚSettingsÚSystem)Ú	ServerAPI)ÚChromaErrorÚInvalidDimensionExceptionÚInvalidHTTPVersionÚRateLimitErrorÚ
QuotaError)ÚQuotaEnforcer)ÚAsyncRateLimitEnforcer)ÚServer)	ÚAddEmbeddingÚCreateDatabaseÚCreateTenantÚDeleteEmbeddingÚGetEmbeddingÚQueryEmbeddingÚCreateCollectionÚUpdateCollectionÚUpdateEmbedding)ÚHeaders)ÚServerStartEvent)Úfastapi_json_responseÚstring_to_uuid)Útrace)Úinstrument_fastapi)ÚDatabaseÚTenant)ÚServerContextÚProductTelemetryClient)ÚOpenTelemetryClientÚOpenTelemetryGranularityÚadd_attributes_to_current_spanÚtrace_method)Ú
Collectionc                 óh   ‡ — t          ‰ ¦  «        dt          dt          dt          fˆ fd„¦   «         }|S )NÚargsÚkwargsÚreturnc               Ÿ   ód   •K  — | d         } |j                              ‰¦  «        | i |¤Žƒ d {V —†S )Nr   )Ú_async_rate_limit_enforcerÚ
rate_limit)rP   rQ   ÚselfÚfuncs      €ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/server/fastapi/__init__.pyÚwrapperzrate_limit.<locals>.wrapper^   sH   øè è € à�AŒwˆØE�TÔ4×?Ò?ÀÑEÔEÀtÐVÈvÐVÐVÐVÐVÐVÐVÐVÐVÐVó    )r   r   )rW   rY   s   ` rX   rU   rU   ]   sV   ø€ Ý
ˆ4�[„[ðW�Sð W­Cð WµCð Wð Wð Wð Wð Wñ „[ðWð €NrZ   ÚapprR   c                 óx   — | j         D ]1}t          |t          ¦  «        r|j        d|j        v rdndz   |_        Œ2dS )z›
    Simplify operation IDs so that generated API clients have simpler function
    names.
    Should be called only after all routes have been added.
    Úv2z-v2z-v1N)ÚroutesÚ
isinstancer   ÚnameÚpathÚoperation_id)r[   Úroutes     rX   Ú use_route_names_as_operation_idsrd   f   sW   € ð ”ð Wð WˆÝ�e�XÑ&Ô&ð 	WØ!&¤¸ÀÄ
Ð8JÐ8J¨u¨uÐPUÑ!VˆEÔøðWð WrZ   ÚrequestÚ	call_nextc              ƒ   ó°   K  — t          j        ¦   «                              ¦   «         j        } || ¦  «        ƒ d {V —†}t	          |d¦  «        |j        d<   |S )NÚxzChroma-Trace-Id)rD   Úget_current_spanÚget_span_contextÚtrace_idÚformatÚheaders)re   rf   rk   Úresponses       rX   Ú#add_trace_id_to_response_middlewarero   q   sc   è è € õ Ô%Ñ'Ô'×8Ò8Ñ:Ô:ÔC€HØ�Y˜wÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'€HÝ*0°¸3Ñ*?Ô*?€HÔÐ&Ñ'Ø€OrZ   c              ƒ   óÚ  K  — 	  || ¦  «        ƒ d {V —†S # t           $ r}t          |¦  «        cY d }~S d }~wt          $ r+}t          dt	          |¦  «        dœd¬¦  «        cY d }~S d }~wt
          $ r+}t          dt	          |¦  «        dœd¬¦  «        cY d }~S d }~wt          $ rD}t                               |¦  «         t          dt          |¦  «        id¬¦  «        cY d }~S d }~ww xY w)NÚInvalidArgumentError)ÚerrorÚmessageé�  )ÚcontentÚstatus_coderr   éô  )
r/   rB   Ú
ValueErrorr   ÚstrÚ	TypeErrorÚ	ExceptionÚloggerÚ	exceptionÚrepr)re   rf   Úes      rX   Úcatch_exceptions_middlewarer€   z   s}  è è € ðKØ�Y˜wÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'øÝð (ð (ð (Ý$ QÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'øøøøÝð 
ð 
ð 
ÝØ4ÅÀQÁÄÐHÐHØð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøõ ð 
ð 
ð 
ÝØ4ÅÀQÁÄÐHÐHØð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøõ ð Kð Kð KÝ×Ò˜ÑÔÐÝ wµ°Q±´Ð&8ÀcÐJÑJÔJÐJÐJÐJÐJÐJÐJøøøøðKøøøsM   „ •
C*Ÿ3­C*³C*Á  A&Á C*Á&C*Á3 BÂC*ÂC*Â&9C%ÃC*Ã%C*c              ƒ   óŠ   K  — | j                              d¦  «        }|dvrt          d|› d�¦  «        ‚ || ¦  «        ƒ d {V —†S )NÚhttp_version)z1.1Ú2zHTTP version z is not supported)ÚscopeÚgetr1   )re   rf   r‚   s      rX   Úcheck_http_version_middlewarer†   �   sd   è è € ð ”=×$Ò$ ^Ñ4Ô4€LØ˜<Ð'Ð'Ý Ð!P°Ð!PÐ!PÐ!PÑQÔQÐQØ�˜7Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#rZ   ÚDT)ÚboundÚcontravariantÚmodelÚdatac                 óx   — 	 |                       |¦  «        S # t          $ r |                      |¦  «        cY S w xY w)z1Used for backward compatibility with Pydantic 1.x)Úmodel_validateÚAttributeErrorÚ	parse_obj)rŠ   r‹   s     rX   Úvalidate_modelr�   œ   sN   € ð%Ø×#Ò# DÑ)Ô)Ð)øÝð %ð %ð %Ø�Š˜tÑ$Ô$Ð$Ð$Ð$ð%øøøs   ‚ —9¸9c                   ó0   ‡ — e Zd Zdedededdfˆ fd„Zˆ xZS )ÚChromaAPIRouterra   rP   rQ   rR   Nc                 óB  •‡— d|v o|d          Šdt           dt          fˆfd„} ||¦  «        |d<    t          ¦   «         j        |g|¢R i |¤Ž |                     d¦  «        r|d d…         }n|dz   } ||¦  «        |d<    t          ¦   «         j        |g|¢R i |¤Ž d S )NÚinclude_in_schemara   rR   c                 ó6   •— ‰ o|                       d¦  «         S )Nú/)Úendswith)ra   Úexclude_from_schemas    €rX   r”   z8ChromaAPIRouter.add_api_route.<locals>.include_in_schema°   s    ø€ à*Ð*ÐE°4·=²=ÀÑ3EÔ3EÐ/EÐErZ   r–   éÿÿÿÿ)ry   ÚboolÚsuperÚadd_api_router—   )rV   ra   rP   rQ   r”   r˜   Ú	__class__s        @€rX   rœ   zChromaAPIRouter.add_api_route¨   s  øø€ ð
   6Ð)ÐM°&Ð9LÔ2MÐ.Mð 	ð	F¥Cð 	F­Dð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð '8Ð&7¸Ñ&=Ô&=ˆÐ"Ñ#Ø�‰ŒÔ˜dÐ4 TÐ4Ð4Ð4¨VÐ4Ð4Ð4à�=Š=˜ÑÔð 	Ø˜˜˜”9ˆDˆDà˜#‘:ˆDà&7Ð&7¸Ñ&=Ô&=ˆÐ"Ñ#Ø�‰ŒÔ˜dÐ4 TÐ4Ð4Ð4¨VÐ4Ð4Ð4Ð4Ð4rZ   )Ú__name__Ú
__module__Ú__qualname__ry   r   rœ   Ú__classcell__)r�   s   @rX   r’   r’   ¤   sY   ø€ € € € € ð5 #ð 5¨cð 5¸Sð 5ÀTð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5rZ   r’   c                   ó  — e Zd Zdefd„Zdeeef         fd„Zde	e
         deeef         fd„Zd{d„Zd{d	„Zdej        fd
„Zdededefd„Zdeeef         fd„Zdededefd„Zdeeef         fd„Zdefd„Zdeddfd„Z edej        ¦  «        ede de!de"e         de"e         de"e         ddfd„¦   «         ¦   «         Z# edej        ¦  «        de de!de"e         de"e         de"e         ddfd„¦   «         Z$ edej        ¦  «        dede%fd„¦   «         Z& edej        ¦  «        dededdfd„¦   «         Z' ed ej        ¦  «        ded!edede(fd"„¦   «         Z) ed#ej        ¦  «        ded!ededdfd$„¦   «         Z* ed%ej        ¦  «        deddfd&„¦   «         Z+ ed'ej        ¦  «        dedede,fd(„¦   «         Z- ed)ej        ¦  «        	 	 d|deded*e"e         d+e"e         de.e(         f
d,„¦   «         Z/ ed-ej        ¦  «        	 	 d|deded!ed*e"e         d+e"e         de.e0         fd.„¦   «         Z1 ed/ej        ¦  «        deded!edefd0„¦   «         Z2 ed1ej        ¦  «        deded!ede0fd2„¦   «         Z3 ed3ej        ¦  «        deded!ed4ede0f
d5„¦   «         Z4 ed6ej        ¦  «        deded!ed7ede0f
d8„¦   «         Z5 ed9ej        ¦  «        ded!ed7ededdf
d:„¦   «         Z6 ed;ej        ¦  «        ded4eded!eddf
d<„¦   «         Z7 ed=ej        ¦  «        ededed!ed7edeeef         f
d>„¦   «         ¦   «         Z8 ed?ej        ¦  «        ededed!ed7ed@edeeef         fdA„¦   «         ¦   «         Z9 edBej        ¦  «        ededed!ed7ede:f
dC„¦   «         ¦   «         Z; edDej        ¦  «        ededed!ed7eddf
dE„¦   «         ¦   «         Z< edFej        ¦  «        ededed!ed7eddf
dG„¦   «         ¦   «         Z= edHej        ¦  «        ed7eded!edede>f
dI„¦   «         ¦   «         Z? edJej        ¦  «        ed7eded!edede@f
dK„¦   «         ¦   «         ZA edLej        ¦  «        ededed!ed7edef
dM„¦   «         ¦   «         ZB edNej        ¦  «        edede:fdO„¦   «         ¦   «         ZC edPej        ¦  «        eded!ed7ededeDf
dQ„¦   «         ¦   «         ZEdeeef         fdR„ZFd{dS„ZG edTej        ¦  «        ede de!de"e         de"e         de"e         deHe"e         e"e         f         fdU„¦   «         ¦   «         ZIde de!de"e         de"e         de"e         deHe"e         e"e         f         fdV„ZJ edWej        ¦  «        eeKfdededdfdX„¦   «         ¦   «         ZL edYej        ¦  «        eeKfdededede(fdZ„¦   «         ¦   «         ZM ed[ej        ¦  «        ededdfd\„¦   «         ¦   «         ZN ed]ej        ¦  «        ededede,fd^„¦   «         ¦   «         ZO ed_ej        ¦  «        eddeKePfded*e"e         d+e"e         dedede.e0         fd`„¦   «         ¦   «         ZQ edaej        ¦  «        eeKePfdedededefdb„¦   «         ¦   «         ZR edcej        ¦  «        eeKePfdededede0fdd„¦   «         ¦   «         ZS edeej        ¦  «        eeKePfded4ededede0f
df„¦   «         ¦   «         ZT edgej        ¦  «        ed7ededdfdh„¦   «         ¦   «         ZU ediej        ¦  «        eeKePfded4edededdf
dj„¦   «         ¦   «         ZV edkej        ¦  «        eded7ede:fdl„¦   «         ¦   «         ZW edmej        ¦  «        ded7eddfdn„¦   «         ZX edoej        ¦  «        eded7eddfdp„¦   «         ¦   «         ZY edqej        ¦  «        ed7edede>fdr„¦   «         ¦   «         ZZ edsej        ¦  «        ed7edede@fdt„¦   «         ¦   «         Z[ eduej        ¦  «        eded7edefdv„¦   «         ¦   «         Z\ edwej        ¦  «        edede:fdx„¦   «         ¦   «         Z] edyej        ¦  «        ed7ededeDfdz„¦   «         ¦   «         Z^dS )}r   Úsettingsc                 óÂ  — t           j        t          _        t	          j        dt          ¬¦  «        | _        t          |¦  «        | _	        | j	         
                    t          ¦  «        | _        i | _        | j        | j        _        | j                             t"          ¦  «        | _        t'          |j        ¦  «        | _        | j	                             t,          ¦  «        | _        | j	                             ¦   «           | j                             d¦  «        t4          ¦  «          | j                             d¦  «        t6          ¦  «          | j                             d¦  «        t8          ¦  «         | j                             t<          dg|j        dg¬¦  «         | j                              tB          | j"        ¦  «         | j                              tF          | j$        ¦  «         | j	                             tJ          ¦  «        | _&         | j         '                    d¦  «        | j(        ¦  «         d | _)        |j*        r$| j	                             tV          ¦  «        | _)        d | _,        |j-        r$| j	                             t\          ¦  «        | _,        t_          ¦   «         | _0        |  1                    ¦   «          |  2                    ¦   «          | j         3                    | j0        ¦  «         ti          | j        ¦  «         tk          | j        ¦  «         | j	         
                    t          ¦  «        }| 6                    to          ¦   «         ¦  «         d S )NT)ÚdebugÚdefault_response_classÚhttpÚ*)Úallow_headersÚallow_originsÚallow_methodsÚshutdown)8rH   ÚFASTAPIrI   ÚSERVER_CONTEXTÚfastapir   r   Ú_appr-   Ú_systemÚinstancer.   Ú_apiÚ_extra_openapi_schemasÚgenerate_openapiÚopenapiÚrequirerJ   Ú_opentelemetry_clientr   Úchroma_server_thread_pool_sizeÚ_capacity_limiterr4   Ú_quota_enforcerÚstartÚ
middlewarer†   r€   ro   Úadd_middlewarer   Ú chroma_server_cors_allow_originsÚadd_exception_handlerr3   Úquota_exception_handlerr2   Úrate_limit_exception_handlerr5   rT   Úon_eventr¬   Úauthn_providerÚchroma_server_authn_providerr(   Úauthz_providerÚchroma_server_authz_providerr)   r’   ÚrouterÚsetup_v1_routesÚsetup_v2_routesÚinclude_routerrd   rE   ÚcapturerA   )rV   r£   Útelemetry_clients      rX   Ú__init__zFastAPI.__init__Á   sÊ  € Ý0=Ô0EÕÔ-å”O¨$Å~ÐVÑVÔVˆŒ	Ý˜hÑ'Ô'ˆŒØ#œ|×4Ò4µYÑ?Ô?ˆŒ	à68ˆÔ#Ø Ô1ˆŒ	Ôà%)¤Y×%6Ò%6Õ7JÑ%KÔ%KˆÔ"Ý!0ØÔ3ñ"
ô "
ˆÔð  $œ|×3Ò3µMÑBÔBˆÔØŒ×ÒÑÔÐà$ˆŒ	×Ò˜VÑ$Ô$Õ%BÑCÔCÐCØ$ˆŒ	×Ò˜VÑ$Ô$Õ%@ÑAÔAÐAØ$ˆŒ	×Ò˜VÑ$Ô$Õ%HÑIÔIÐIØŒ	× Ò ÝØ˜%Ø"ÔCØ˜%ð	 	!ñ 	
ô 	
ð 	
ð 	Œ	×'Ò'­
°DÔ4PÑQÔQÐQØŒ	×'Ò'Ý˜DÔ=ñ	
ô 	
ð 	
ð +/¬,×*>Ò*>Õ?UÑ*VÔ*VˆÔ'à&ˆŒ	×Ò˜:Ñ&Ô& t¤}Ñ5Ô5Ð5à"ˆÔØÔ0ð 	UØ"&¤,×"6Ò"6Õ7SÑ"TÔ"TˆDÔà"ˆÔØÔ0ð 	TØ"&¤,×"6Ò"6Õ7RÑ"SÔ"SˆDÔå%Ñ'Ô'ˆŒà×ÒÑÔÐØ×ÒÑÔÐàŒ	× Ò  ¤Ñ-Ô-Ð-å(¨¬Ñ3Ô3Ð3Ý˜4œ9Ñ%Ô%Ð%Øœ<×0Ò0Õ1GÑHÔHÐØ× Ò Õ!1Ñ!3Ô!3Ñ4Ô4Ð4Ð4Ð4rZ   rR   c                 ó¨   — t          d| j        j        t          ¬¦  «        }| j                             ¦   «         D ]\  }}||d         d         |<   Œ|S )z_Used instead of the default openapi() generation handler to include manually-populated schemas.ÚChroma)Útitler^   ÚversionÚ
componentsÚschemas)r   r°   r^   Úchromadb_versionr´   Úitems)rV   ÚschemaÚkeyÚvalues       rX   rµ   zFastAPI.generate_openapi÷   sd   € å!,ØØ”9Ô#Ý$ð"
ñ "
ô "
ˆð Ô5×;Ò;Ñ=Ô=ð 	9ð 	9‰JˆC�Ø38ˆF�<Ô  Ô+¨CÑ0Ð0àˆrZ   Úrequest_modelc                 ó¤   — |                      d¬¦  «        }d|v r*|d                              ¦   «         D ]\  }}|| j        |<   Œddd|iiddœi}|S )	Nz#/components/schemas/{model})Úref_templatez$defsÚrequestBodyzapplication/jsonr×   T)ru   Úrequired)Úmodel_json_schemarÖ   r´   )rV   rÚ   r×   rØ   rÙ   Úopenapi_extras         rX   Ú!get_openapi_extras_for_body_modelz)FastAPI.get_openapi_extras_for_body_model  s�   € ð ×0Ò0Ø7ð 1ñ 
ô 
ˆð �fÐÐØ$ Wœo×3Ò3Ñ5Ô5ð 9ð 9‘
��UØ38�Ô+¨CÑ0Ð0ð Ø.°¸6Ð0BÐCØ ðð ð
ˆð ÐrZ   Nc           
      óò	  — | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d	| j        dgd ¬
¦  «         | j                              d| j        dgd |  	                    t          ¦  «        ¬¦  «         | j                              d| j        dgd ¬
¦  «         | j                              d| j        dgd ¬
¦  «         | j                              d| j        dgd |  	                    t          ¦  «        ¬¦  «         | j                              d| j        dgd ¬
¦  «         | j                              d| j        dgd ¬
¦  «         | j                              d| j        dgd ¬
¦  «         | j                              d| j        dgd ¬
¦  «         | j                              d| j        dgd |  	                    t(          ¦  «        ¬¦  «         | j                              d| j        dgt,          j        d |  	                    t0          ¦  «        ¬¦  «         | j                              d| j        dgd |  	                    t4          ¦  «        ¬¦  «         | j                              d| j        dgd |  	                    t0          ¦  «        ¬¦  «         | j                              d| j        dgd |  	                    t:          ¦  «        ¬¦  «         | j                              d| j        dgt>          |  	                    t@          ¦  «        ¬¦  «         | j                              d| j!        dgd ¬
¦  «         | j                              d| j"        dgd |  	                    tF          ¬¦  «        ¬¦  «         | j                              d| j$        dgd ¬
¦  «         | j                              d| j%        dgd |  	                    tL          ¦  «        ¬¦  «         | j                              d| j'        dgd ¬
¦  «         | j                              d| j(        dgd ¬
¦  «         | j                              d | j)        dgd ¬
¦  «         | j                              d!| j*        dgd ¬
¦  «         d S )"Nz/api/v2ÚGET©Úmethodsz/api/v2/resetÚPOSTz/api/v2/versionz/api/v2/heartbeatz/api/v2/pre-flight-checksz/api/v2/auth/identity©rå   Úresponse_modelz"/api/v2/tenants/{tenant}/databases©rå   rè   rà   z2/api/v2/tenants/{tenant}/databases/{database_name}ÚDELETEz/api/v2/tenantsz/api/v2/tenants/{tenant}z>/api/v2/tenants/{tenant}/databases/{database_name}/collectionszD/api/v2/tenants/{tenant}/databases/{database_name}/collections_countzR/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/add©rå   rv   rè   rà   zU/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/updatezU/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/upsertzR/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/getzU/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/deletezT/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/countzT/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/query)rÚ   zP/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_name}zN/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}ÚPUTz_/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/functions/attachzh/api/v2/tenants/{tenant}/databases/{database_name}/collections/{collection_id}/functions/{function_name}zT/api/v2/tenants/{tenant}/databases/{database_name}/collections/by-id/{collection_id})+rÈ   rœ   ÚrootÚresetrÒ   Ú	heartbeatÚpre_flight_checksÚget_user_identityÚcreate_databaserá   r8   Úget_databaseÚdelete_databaseÚcreate_tenantr9   Ú
get_tenantÚlist_databasesÚlist_collectionsÚcount_collectionsÚcreate_collectionr=   Úaddr   ÚHTTP_201_CREATEDr7   Úupdater?   Úupsertr…   r;   Údeleter   r:   ÚcountÚget_nearest_neighborsr<   Úget_collectionÚupdate_collectionr>   Údelete_collectionÚattach_functionÚget_attached_functionÚget_collection_by_id©rV   s    rX   rÊ   zFastAPI.setup_v2_routes  sò  € ØŒ×!Ò! )¨T¬YÀÀÐ!ÑHÔHÐHØŒ×!Ò! /°4´:ÈÀxÐ!ÑPÔPÐPØŒ×!Ò!Ð"3°T´\ÈEÈ7Ð!ÑSÔSÐSØŒ×!Ò!Ð"5°t´~ÐPUÈwÐ!ÑWÔWÐWØŒ×!Ò!Ø'¨Ô)?È%Èð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø#ØÔ"Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø0ØÔ Ø�HØØ×@Ò@ÅÑPÔPð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø@ØÔØ�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø@ØÔ Ø�JØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØØÔØ�HØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø&ØŒOØ�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø0ØÔØ�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØLØÔ!Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØRØÔ"Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØLØÔ"Ø�HØØ×@Ò@ÕAQÑRÔRð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø`ØŒHØ�HÝÔ/ØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØcØŒKØ�HØØ×@Ò@ÅÑQÔQð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØcØŒKØ�HØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø`ØŒHØ�HØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØcØŒKØ�HÝ'Ø×@Ò@ÅÑQÔQð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØbØŒJØ�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØbØÔ&Ø�HØØ×@Ò@Ý,ð Añ ô ð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø^ØÔØ�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø\ØÔ"Ø�GØØ×@Ò@ÕAQÑRÔRð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø^ØÔ"Ø�JØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØmØÔ Ø�HØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØvØÔ&Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØbØÔ%Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	
ð 	
rZ   c                 ó8   — | j                              ¦   «          d S ©N)r±   Ústopr  s    rX   r¬   zFastAPI.shutdownÂ  s   € ØŒ×ÒÑÔÐÐÐrZ   c                 ó   — | j         S r
  )r°   r  s    rX   r[   zFastAPI.appÅ  s
   € ØŒyÐrZ   re   Úexcc              ƒ   ó,   K  — t          dddi¬¦  «        S )Ni­  rs   zRate limit exceeded.©rv   ru   r   ©rV   re   r  s      rX   rÂ   z$FastAPI.rate_limit_exception_handlerÈ  s+   è è € õ ØØÐ 6Ð7ð
ñ 
ô 
ð 	
rZ   c                 ó8   — d| j                              ¦   «         iS )Nznanosecond heartbeat)r³   rï   r  s    rX   rí   zFastAPI.rootÐ  s   € Ø&¨¬	×(;Ò(;Ñ(=Ô(=Ð>Ð>rZ   c              ƒ   óP   K  — t          dd|                     ¦   «         i¬¦  «        S )Nrt   rs   r  )r   rs   r  s      rX   rÁ   zFastAPI.quota_exception_handlerÓ  s2   è è € õ ØØ §¢¡¤Ð.ð
ñ 
ô 
ð 	
rZ   c              ƒ   ó.   K  — |                       ¦   «         S r
  )rí   r  s    rX   rï   zFastAPI.heartbeatÛ  s   è è € Ø�yŠy‰{Œ{ÐrZ   c              ƒ   ó8   K  — | j                              ¦   «         S r
  )r³   Úget_versionr  s    rX   rÒ   zFastAPI.versionÞ  s   è è € ØŒy×$Ò$Ñ&Ô&Ð&rZ   c                 ó@   — | j                              d|i¬¦  «         dS )zU
        Set context about the request on any components that might need it.
        re   )ÚcontextN)r»   Úset_context©rV   re   s     rX   Ú_set_request_contextzFastAPI._set_request_contextá  s)   € ð 	Ô×(Ò(°)¸WÐ1EÐ(ÑFÔFÐFÐFÐFrZ   Úauth_requestrm   ÚactionÚtenantÚdatabaseÚ
collectionc              ƒ   óJ   K  — t          j        | j        g|||||f¢R Ž ƒ d {V —†S r
  )r   Úrun_syncÚsync_auth_request©rV   rm   r  r  r  r  s         rX   r  zFastAPI.auth_requestç  s[   è è € õ Ô'àÔ"ð
ð �v˜v x°Ð<ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rZ   zFastAPI.sync_auth_requestc                 ó   — | j         st          |||dœ¦  «         dS | j                              t          |¦  «        ¦  «        }| j        sdS t          |||¬¦  «        }| j                             |||¦  «         t          |||dœ¦  «         dS )zï
        Authenticates and authorizes the request based on the given headers
        and other parameters. If the request cannot be authenticated or cannot
        be authorized (with the configured providers), raises an HTTP 401.
        ©r  r  r  N)rÄ   rL   Úauthenticate_or_raiseÚdictrÆ   r'   Úauthorize_or_raise)rV   rm   r  r  r  r  Úuser_identityÚauthz_resources           rX   r"  zFastAPI.sync_auth_requestú  sÍ   € ð" Ô"ð 	Ý*à$Ø (Ø",ðð ñô ð ð ˆFàÔ+×AÒAÅ$ÀwÁ-Ä-ÑPÔPˆàÔ"ð 	ØˆFå&ØØØ!ð
ñ 
ô 
ˆð 	Ô×.Ò.¨}¸fÀnÑUÔUÐUÝ&à Ø$Ø(ðð ñ	
ô 	
ð 	
ð 	ˆrZ   zFastAPI.get_user_identityc              ƒ   ó´   ‡ ‡K  — ‰ j         st          dt          t          g¬¦  «        S t	          t          t          j        ˆˆ fd„¦  «        ƒ d {V —†¦  «        S )NÚ )Úuser_idr  Ú	databasesc                  ó‚   •— t          t          ‰j        ¦  «                             t	          ‰ j        ¦  «        ¦  «        S r
  )r   r(   rÄ   r&  r'  rm   )re   rV   s   €€rX   ú<lambda>z+FastAPI.get_user_identity.<locals>.<lambda>7  s4   ø€ �Ý0°$Ô2Eñô ç'Ò'­¨W¬_Ñ(=Ô(=Ñ>Ô>ð rZ   )rÄ   r%   r+   r*   r   r   r!  r  s   ``rX   rñ   zFastAPI.get_user_identity*  s•   øøè è € ð
 Ô"ð 	ÝØ¥>Õ>NÐ=Oðñ ô ð õ ÝÝÔ$ð?ð ?ð ?ð ?ð ?ñô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.create_databasec              ƒ   óÌ   ‡ ‡K  — dt           dt          dt          dd fˆˆ fd„}t          j        ||‰j        ‰                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nr  rm   Úraw_bodyrR   c                 ó  •— t          t          t          j        |¦  «        ¦  «        }‰                     |t
          j        | |j        d ¦  «         ‰                     ‰¬¦  «         ‰j	         
                    |j        | ¦  «        S )N©re   )r�   r8   ÚorjsonÚloadsr"  r&   ÚCREATE_DATABASEr`   r  r³   rò   )r  rm   r2  Údbre   rV   s       €€rX   Úprocess_create_databasez8FastAPI.create_database.<locals>.process_create_databaseC  s   ø€ õ  ¥µ´¸XÑ0FÔ0FÑGÔGˆBð ×"Ò"ØÝÔ+ØØ”Øñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6à”9×,Ò,¨R¬W°fÑ=Ô=Ð=rZ   ©Úlimiter©ry   r@   Úbytesr   r!  rm   Úbodyrº   ©rV   re   r  r9  s   ``  rX   rò   zFastAPI.create_database=  s½   øøè è € ð	>Ýð	>Ý")ð	>Ý5:ð	>àð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>õ$ Ô Ø#ØØŒOØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.get_databaseÚdatabase_namec           	   ƒ   óâ   K  — |                       |j        t          j        ||d ¦  «        ƒ d {V —† t	          t
          t          j        | j        j	        ||| j
        ¬¦  «        ƒ d {V —†¦  «        S ©Nr:  )r  rm   r&   ÚGET_DATABASEr   rF   r   r!  r³   ró   rº   ©rV   re   r@  r  s       rX   ró   zFastAPI.get_database]  s°   è è € ð ×ÒØŒOÝÔ$ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ÝÝÔ$Ø”	Ô&ØØØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.delete_databasec              ƒ   óÀ   K  — |                       |j        t          j        ||d ¦  «        ƒ d {V —† t	          j        | j        j        ||| j        ¬¦  «        ƒ d {V —† d S rB  )	r  rm   r&   ÚDELETE_DATABASEr   r!  r³   rô   rº   rD  s       rX   rô   zFastAPI.delete_databasew  sª   è è € ð ×ÒØŒOÝÔ'ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ Ô ØŒIÔ%ØØØÔ*ð	
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.create_tenantc              ƒ   ó®   ‡ K  — dt           dt          dd fˆ fd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   r2  rR   c                 óê   •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        |j        d d ¦  «         ‰j	         
                    |j        ¦  «        S r
  )r�   r9   r5  r6  r"  rm   r&   ÚCREATE_TENANTr`   r³   rõ   )re   r2  r  rV   s      €rX   Úprocess_create_tenantz4FastAPI.create_tenant.<locals>.process_create_tenant“  sf   ø€ Ý#¥Lµ&´,¸xÑ2HÔ2HÑIÔIˆFð ×"Ò"Ø”ÝÔ)Ø”ØØñô ð ð ”9×*Ò*¨6¬;Ñ7Ô7Ð7rZ   r:  ©r   r=  r   r!  r>  rº   ©rV   re   rJ  s   `  rX   rõ   zFastAPI.create_tenantŽ  s§   øè è € ð
	8­7ð 	8½eð 	8Èð 	8ð 	8ð 	8ð 	8ð 	8ð 	8õ Ô Ø!ØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.get_tenantc              ƒ   óà   K  — |                       |j        t          j        |d d ¦  «        ƒ d {V —† t	          t
          t          j        | j        j	        || j
        ¬¦  «        ƒ d {V —†¦  «        S rB  )r  rm   r&   Ú
GET_TENANTr   rG   r   r!  r³   rö   rº   )rV   re   r  s      rX   rö   zFastAPI.get_tenant¨  s­   è è € ð ×ÒØŒOÝÔ"ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ÝÝÔ$Ø”	Ô$ØØÔ.ðñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.list_databasesÚlimitÚoffsetc           
   ƒ   óú   K  — |                       |j        t          j        |d d ¦  «        ƒ d {V —† t	          t
          t                   t          j        | j	        j
        |||| j        ¬¦  «        ƒ d {V —†¦  «        S rB  )r  rm   r&   ÚLIST_DATABASESr   r   rF   r   r!  r³   r÷   rº   )rV   re   r  rO  rP  s        rX   r÷   zFastAPI.list_databasesÀ  s¸   è è € ð ×ÒØŒOÝÔ&ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ Ý•XÔÝÔ$Ø”	Ô(ØØØØÔ.ðñ ô ð ð ð ð ð ð ñ	
ô 	
ð 		
rZ   zFastAPI.list_collectionsc              ƒ   ó*  ‡ ‡K  — dt           t                   dt           t                   dt          dt          dt          t                   f
ˆˆ fd„}t          t          t                   t          j        |||||‰ j        ¬¦  «        ƒ d {V —†¦  «        }|S )NrO  rP  r  r@  rR   c                 óÞ   •— ‰                      ‰j        t          j        ||d ¦  «         ‰                     ‰¬¦  «         t          d|i¦  «         ‰j                             ||| |¬¦  «        S )Nr4  r  )r  r  rO  rP  )r"  rm   r&   ÚLIST_COLLECTIONSr  rL   r³   rø   )rO  rP  r  r@  re   rV   s       €€rX   Úprocess_list_collectionsz:FastAPI.list_collections.<locals>.process_list_collectionså  s…   ø€ ð ×"Ò"Ø”ÝÔ,ØØØñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6å*¨H°fÐ+=Ñ>Ô>Ð>Ø”9×-Ò-Ø¨¸UÈ6ð .ñ ô ð rZ   r:  )	r   Úintry   r   ÚCollectionModelr   r   r!  rº   )rV   re   r  r@  rO  rP  rV  Úapi_collection_modelss   ``      rX   rø   zFastAPI.list_collectionsÜ  sÊ   øøè è € ð	Ý�C”=ð	Ý*2µ3¬-ð	ÝADð	ÝUXð	å•oÔ&ð	ð 	ð 	ð 	ð 	ð 	ð 	õ& !%Ý•_Ô%ÝÔ$Ø(ØØØØØÔ.ðñ ô ð ð ð ð ð ð ñ
!
ô 
!
Ðð %Ð$rZ   zFastAPI.count_collectionsc           	   ƒ   ó  K  — |                       |j        t          j        ||d ¦  «        ƒ d {V —† t	          d|i¦  «         t          t          t          j        | j	        j
        ||| j        ¬¦  «        ƒ d {V —†¦  «        S ©Nr  r:  )r  rm   r&   ÚCOUNT_COLLECTIONSrL   r   rW  r   r!  r³   rù   rº   )rV   re   r  r@  s       rX   rù   zFastAPI.count_collections  sÃ   è è € ð ×ÒØŒOÝÔ)ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ 	'¨°&Ð'9Ñ:Ô:Ð:åÝÝÔ$Ø”	Ô+ØØØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.create_collectionc              ƒ   óþ   ‡ K  — dt           dt          dt          dt          dt          f
ˆ fd„}t	          t          t          j        |||||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†¦  «        }|S )Nre   r  r  r2  rR   c                 óÌ  •— t          t          t          j        |¦  «        ¦  «        }|j        s|j        rt          |j        ¦  «        }nd }nt          |j        ¦  «        }‰                     | j	        t          j        |||j        ¦  «         ‰                     | ¬¦  «         t          d|i¦  «         ‰j                             |j        ||j        |j        ||¬¦  «        S )Nr4  r  ©r`   ÚconfigurationÚmetadataÚget_or_creater  r  )r�   r=   r5  r6  r`  ra  r   r   r"  rm   r&   ÚCREATE_COLLECTIONr`   r  rL   r³   rú   rb  )re   r  r  r2  Úcreater`  rV   s         €rX   Úprocess_create_collectionz<FastAPI.create_collection.<locals>.process_create_collection)  sÿ   ø€ õ $Õ$4µf´lÀ8Ñ6LÔ6LÑMÔMˆFØÔ'ð Ø”?ð )åWØ"œOñô ð "�Mð %)�M�Må NØÔ(ñ!ô !�ð
 ×"Ò"Ø”ÝÔ-ØØØ”ñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6å*¨H°fÐ+=Ñ>Ô>Ð>à”9×.Ò.Ø”[Ø+ØœØ$Ô2ØØ!ð /ñ ô ð rZ   r:  ©	r   ry   r=  rX  r   r   r!  r>  rº   )rV   re   r  r@  re  Úapi_collection_models   `     rX   rú   zFastAPI.create_collection"  sÍ   øè è € ð&	Ýð&	Ý&)ð&	Ý58ð&	ÝDIð&	åð&	ð &	ð &	ð &	ð &	ð &	õP  $ÝÝÔ$Ø)ØØØØ—l’l‘n”nÐ$Ð$Ð$Ð$Ð$Ð$ØÔ.ðñ ô ð ð ð ð ð ð ñ
 
ô 
 
Ðð $Ð#rZ   zFastAPI.get_collectionÚcollection_namec           
   ƒ   ó
  K  — |                       |j        t          j        |||¦  «        ƒ d {V —† t	          d|i¦  «         t          t          t          j        | j	        j
        |||| j        ¬¦  «        ƒ d {V —†¦  «        }|S r[  )r  rm   r&   ÚGET_COLLECTIONrL   r   rX  r   r!  r³   r  rº   )rV   re   r  r@  rh  rg  s         rX   r  zFastAPI.get_collection^  sÌ   è è € ð ×ÒØŒOÝÔ&ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ 	'¨°&Ð'9Ñ:Ô:Ð:å#ÝÝÔ$Ø”	Ô(ØØØØÔ.ðñ ô ð ð ð ð ð ð ñ	 
ô 	 
Ðð $Ð#rZ   zFastAPI.get_collection_by_idÚcollection_idc           
   ƒ   ó$  K  — |                       |j        t          j        |||¦  «        ƒ d {V —† t	          d|i¦  «         t          t          t          j        | j	        j
        t          |¦  «        ||| j        ¬¦  «        ƒ d {V —†¦  «        }|S r[  )r  rm   r&   rj  rL   r   rX  r   r!  r³   r  Ú_uuidrº   )rV   re   r  r@  rk  rg  s         rX   r  zFastAPI.get_collection_by_id}  sÔ   è è € ð ×ÒØŒOÝÔ&ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ 	'¨°&Ð'9Ñ:Ô:Ð:å#ÝÝÔ$Ø”	Ô.Ý�mÑ$Ô$ØØØÔ.ðñ ô ð ð ð ð ð ð ñ	 
ô 	 
Ðð $Ð#rZ   zFastAPI.update_collectionc              ƒ   óÆ   ‡ ‡‡K  — dt           dt          dt          dd fˆˆ ˆfd„}t          j        ||||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   rk  r2  rR   c                 ó˜  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        ‰‰|¦  «         |j        sd nt          |j        ¦  «        }‰ 
                    | ¬¦  «         t          d‰i¦  «         ‰j                             t          |¦  «        |j        |j        |‰‰¬¦  «        S )Nr4  r  )ÚidÚnew_nameÚnew_metadataÚnew_configurationr  r  )r�   r>   r5  r6  r"  rm   r&   ÚUPDATE_COLLECTIONrs  r   r  rL   r³   Ú_modifyrm  rq  rr  )re   rk  r2  rý   r`  r@  rV   r  s        €€€rX   Úprocess_update_collectionz<FastAPI.update_collection.<locals>.process_update_collection¤  sÞ   ø€ õ $Õ$4µf´lÀ8Ñ6LÔ6LÑMÔMˆFà×"Ò"Ø”ÝÔ-ØØØñô ð ð Ô/ð��åCØÔ,ñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6Ý*¨H°fÐ+=Ñ>Ô>Ð>Ø”9×$Ò$Ý˜Ñ'Ô'ØœØ#Ô0Ø"/ØØ&ð %ñ ô ð rZ   r:  ©r   ry   r=  r   r!  r>  rº   )rV   r  r@  rk  re   rv  s   ```   rX   r  zFastAPI.update_collectionœ  sÁ   øøøè è € ð	Ýð	Ý-0ð	Ý<Að	àð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ< Ô Ø%ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.delete_collectionc              ƒ   óä   K  — |                       |j        t          j        |||¦  «        ƒ d {V —† t	          d|i¦  «         t          j        | j        j        |||| j	        ¬¦  «        ƒ d {V —† d S r[  )
r  rm   r&   ÚDELETE_COLLECTIONrL   r   r!  r³   r  rº   )rV   re   rh  r  r@  s        rX   r  zFastAPI.delete_collectionÊ  sÀ   è è € ð ×ÒØŒOÝÔ)ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ 	'¨°&Ð'9Ñ:Ô:Ð:åÔ ØŒIÔ'ØØØØÔ*ð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.attach_functionc              ƒ   ó  ‡ ‡‡‡K  — 	 dt           dt          dt          t          t          f         fˆˆˆ ˆfd„}|                     ¦   «         ƒ d {V —†}t          j        |||‰ j        ¬¦  «        ƒ d {V —†S # t          $ r ‚ w xY w)Nre   r2  rR   c           	      ó  •— t          j        |¦  «        }‰
                     | j        t          j        ‰‰	‰¦  «         ‰
                     | ¬¦  «         |                     d¦  «        }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }‰
j         	                    ||t          ‰¦  «        ||‰‰	¬¦  «        }dt          |j        ¦  «        |j        |j        |j        |j        dœiS )	Nr4  r`   Úfunction_idÚoutput_collectionÚparams)r|  r`   Úinput_collection_idr}  r~  r  r  Úattached_function©rp  r`   Úfunction_namer}  r~  )r5  r6  r"  rm   r&   rt  r  r…   r³   r  rm  ry   rp  r`   r‚  r}  r~  )re   r2  r>  r`   r|  r}  r~  Úattached_fnrk  r@  rV   r  s           €€€€rX   Úprocess_attach_functionz8FastAPI.attach_function.<locals>.process_attach_functionï  s  ø€ õ ”| HÑ-Ô-�à×&Ò&Ø”OÝÔ1ØØ!Ø!ñô ð ð ×)Ò)°'Ð)Ñ:Ô:Ð:à—x’x Ñ'Ô'�Ø"Ÿhšh }Ñ5Ô5�Ø$(§H¢HÐ-@Ñ$AÔ$AÐ!ØŸš (Ñ+Ô+�à"œi×7Ò7Ø +ØÝ(-¨mÑ(<Ô(<Ø&7Ø!Ø!Ø*ð 8ñ ô �ð (Ý! +¤.Ñ1Ô1Ø +Ô 0Ø)4Ô)BØ-8Ô-JØ"-Ô"4ð*ð *ðð rZ   r:  )
r   r=  r   ry   r   r>  r   r!  rº   r{   )rV   re   r  r@  rk  r„  r2  s   ` ```  rX   r  zFastAPI.attach_functionä  så   øøøøè è € ð1	ð%Ý ð%Ý,1ð%å•c�3�h”ð%ð %ð %ð %ð %ð %ð %ð %ð %ðN %Ÿ\š\™^œ^Ð+Ð+Ð+Ð+Ð+Ð+ˆHÝ"Ô+Ø'ØØØÔ.ð	ñ ô ð ð ð ð ð ð ð øõ ð 	ð 	ð 	Øð	øøøs   ˆA,A5 Á5BzFastAPI.get_attached_functionr‚  c              ƒ   ó\  K  — |                       |j        t          j        |||¦  «        ƒ d {V —† t	          d|i¦  «         t          j        | j        j        |t          |¦  «        ||| j
        ¬¦  «        ƒ d {V —†}dt          |j        ¦  «        |j        |j        |j        |j        dœiS )Nr  r:  r€  r�  )r  rm   r&   rj  rL   r   r!  r³   r  rm  rº   ry   rp  r`   r‚  r}  r~  )rV   re   r  r@  rk  r‚  rƒ  s          rX   r  zFastAPI.get_attached_function   sü   è è € ð ×ÒØŒOÝÔ&ØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ 	'¨°&Ð'9Ñ:Ô:Ð:å%Ô.ØŒIÔ+ØÝ�-Ñ Ô ØØØÔ*ð
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð  Ý˜+œ.Ñ)Ô)Ø#Ô(Ø!,Ô!:Ø%0Ô%BØ%Ô,ð"ð "ð
ð 	
rZ   zFastAPI.addc           	   ƒ   óH  ‡ ‡‡‡K  — 	 dt           dt          dt          fˆˆˆ ˆfd„}t          t          t	          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†¦  «        S # t          $ r#}t          dt          |¦  «        ¬¦  «        ‚d }~ww xY w)Nre   r2  rR   c           
      óÒ  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        ‰‰‰¦  «         ‰                     | ¬¦  «         t          d‰i¦  «         ‰j
                             t          ‰¦  «        |j        t          t          |j        rt#          |j        ¦  «        nd ¦  «        |j        |j        |j        ‰‰¬¦  «        S ©Nr4  r  )rk  ÚidsÚ
embeddingsÚ	metadatasÚ	documentsÚurisr  r  )r�   r7   r5  r6  r"  rm   r&   ÚADDr  rL   r³   Ú_addrm  r‰  r   r#   rŠ  r$   r‹  rŒ  r�  )re   r2  rû   rk  r@  rV   r  s      €€€€rX   Úprocess_addz FastAPI.add.<locals>.process_addR  sä   ø€ Ý$¥\µ6´<ÀÑ3IÔ3IÑJÔJ�à×&Ò&Ø”OÝ”OØØ!Ø!ñô ð ð ×)Ò)°'Ð)Ñ:Ô:Ð:Ý.°¸&Ð/AÑBÔBÐBØ”y—~’~Ý"'¨Ñ"6Ô"6ØœÝ#Ý"àœ>ð"Õ5°c´nÑEÔEÐEà!ñ	 ô  ð "œmØ!œmØœØ!Ø*ð &ñ ô ð rZ   r:  rw   ©rv   Údetail©r   r=  rš   r   r   r!  r>  rº   r0   r   ry   )rV   re   r  r@  rk  r�  r   s   ` ```  rX   rû   zFastAPI.addG  s  øøøøè è € ð(	@ð¥Wð ½ð Å$ð ð ð ð ð ð ð ð ð õ8 ÝÝÔ(ØØØ!Ÿ,š,™.œ.Ð(Ð(Ð(Ð(Ð(Ð(Ø Ô2ð	ñ ô ð ð ð ð ð ð ñô ð øõ )ð 	@ð 	@ð 	@Ý¨C½¸A¹¼Ð?Ñ?Ô?Ð?øøøøð	@øøøs   ˆA+A4 Á4
B!Á>BÂB!zFastAPI.updatec              ƒ   óÄ   ‡ ‡‡‡K  — dt           dt          dt          fˆˆˆ ˆfd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   r2  rR   c           
      ó¬  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        ‰‰‰¦  «         ‰                     | ¬¦  «         t          d‰i¦  «         ‰j
                             t          ‰¦  «        |j        |j        rt          |j        ¦  «        nd |j        |j        |j        ‰‰¬¦  «        S rˆ  )r�   r?   r5  r6  r"  rm   r&   ÚUPDATEr  rL   r³   Ú_updaterm  r‰  rŠ  r$   r‹  rŒ  r�  )re   r2  rý   rk  r@  rV   r  s      €€€€rX   Úprocess_updatez&FastAPI.update.<locals>.process_updateƒ  sÛ   ø€ Ý#¥OµV´\À(Ñ5KÔ5KÑLÔLˆFð ×"Ò"Ø”ÝÔ"ØØØñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6Ý*¨H°fÐ+=Ñ>Ô>Ð>à”9×$Ò$Ý# MÑ2Ô2Ø”JàÔ$ðÕ8¸Ô9JÑKÔKÐKàØ Ô*Ø Ô*Ø”[ØØ&ð %ñ ô ð rZ   r:  ©r   r=  rš   r   r!  r>  rº   )rV   re   r  r@  rk  r˜  s   ` ``` rX   rý   zFastAPI.updatez  s¹   øøøøè è € ð	¥Gð 	µuð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ6 Ô ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.upsertc              ƒ   óÄ   ‡ ‡‡‡K  — dt           dt          dt          fˆˆˆ ˆfd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   r2  rR   c           
      óÒ  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        ‰‰‰¦  «         ‰                     | ¬¦  «         t          d‰i¦  «         ‰j
                             t          ‰¦  «        |j        t          t          |j        rt#          |j        ¦  «        nd ¦  «        |j        |j        |j        ‰‰¬¦  «        S rˆ  )r�   r7   r5  r6  r"  rm   r&   ÚUPSERTr  rL   r³   Ú_upsertrm  r‰  r   r#   rŠ  r$   r‹  rŒ  r�  )re   r2  rþ   rk  r@  rV   r  s      €€€€rX   Úprocess_upsertz&FastAPI.upsert.<locals>.process_upsert®  sí   ø€ Ý#¥Lµ&´,¸xÑ2HÔ2HÑIÔIˆFð ×"Ò"Ø”ÝÔ"ØØØñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6Ý*¨H°fÐ+=Ñ>Ô>Ð>à”9×$Ò$Ý# MÑ2Ô2Ø”JÝÝàÔ(ðÕ1°&Ô2CÑDÔDÐDàñ	ô ð !Ô*Ø Ô*Ø”[ØØ&ð %ñ ô ð rZ   r:  r™  )rV   re   r  r@  rk  rž  s   ` ``` rX   rþ   zFastAPI.upsert¥  s¹   øøøøè è € ð	¥Gð 	µuð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ< Ô ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.getc           	   ƒ   ó$  ‡ ‡‡‡K  — dt           dt          dt          fˆˆˆ ˆfd„}t          t          t	          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†¦  «        }|d         �d„ |d         D ¦   «         |d<   |S )Nre   r2  rR   c                 óŒ  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        ‰‰‰¦  «         ‰                     | ¬¦  «         t          d‰i¦  «         ‰j
                             t          ‰¦  «        |j        |j        |j        |j        |j        |j        ‰‰¬¦	  «	        S )Nr4  r  )	rk  r‰  ÚwhererO  rP  Úwhere_documentÚincluder  r  )r�   r;   r5  r6  r"  rm   r&   rã   r  rL   r³   Ú_getrm  r‰  r¡  rO  rP  r¢  r£  )re   r2  r…   rk  r@  rV   r  s      €€€€rX   Úprocess_getz FastAPI.get.<locals>.process_getÜ  sÀ   ø€ Ý ¥­v¬|¸HÑ/EÔ/EÑFÔFˆCà×"Ò"Ø”Ý”ØØØñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6Ý*¨H°fÐ+=Ñ>Ô>Ð>Ø”9—>’>Ý# MÑ2Ô2Ø”GØ”iØ”iØ”zØ"Ô1ØœØØ&ð "ñ 
ô 
ð 
rZ   r:  rŠ  c                 ó\   — g | ])}t          t          |¦  «                             ¦   «         ‘Œ*S © ©r   r    Útolist©Ú.0Ú	embeddings     rX   ú
<listcomp>zFastAPI.get.<locals>.<listcomp>ÿ  ó>   € ð (ð (ð (àõ •Y 	Ñ*Ô*×1Ò1Ñ3Ô3ð(ð (ð (rZ   ©r   r=  r!   r   r   r!  r>  rº   )rV   rk  r  r@  re   r¥  Ú
get_results   ````   rX   r…   zFastAPI.getÓ  sù   øøøøè è € ð	¥ð 	µEð 	½ið 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ0 ÝÝÔ$ØØØ—l’l‘n”nÐ$Ð$Ð$Ð$Ð$Ð$ØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ˆ
ð �lÔ#Ð/ð(ð (à!+¨LÔ!9ð(ñ (ô (ˆJ�|Ñ$ð
 ÐrZ   zFastAPI.deletec              ƒ   óÀ   ‡ ‡‡‡K  — dt           dt          dt          fˆˆˆ ˆfd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†S )Nre   r2  rR   c           	      ót  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        ‰‰‰¦  «         ‰                     | ¬¦  «         t          d‰i¦  «         ‰j
                             t          ‰¦  «        |j        |j        |j        |j        ‰‰¬¦  «        S )Nr4  r  )rk  r‰  r¡  r¢  rO  r  r  )r�   r:   r5  r6  r"  rm   r&   rê   r  rL   r³   Ú_deleterm  r‰  r¡  r¢  rO  )re   r2  rÿ   rk  r@  rV   r  s      €€€€rX   Úprocess_deletez&FastAPI.delete.<locals>.process_delete  s¹   ø€ Ý#¥OµV´\À(Ñ5KÔ5KÑLÔLˆFà×"Ò"Ø”ÝÔ"ØØØñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6Ý*¨H°fÐ+=Ñ>Ô>Ð>Ø”9×$Ò$Ý# MÑ2Ô2Ø”JØ”lØ%Ô4Ø”lØØ&ð %ñ ô ð rZ   r:  ©r   r=  r   r   r!  r>  rº   )rV   rk  r  r@  re   r´  s   ````  rX   rÿ   zFastAPI.delete  s¯   øøøøè è € ð	¥Gð 	µuð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ, Ô'ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rZ   zFastAPI.countc           
   ƒ   ó   K  — |                       |j        t          j        |||¦  «        ƒ d {V —† t	          d|i¦  «         t          t          t          j        | j	        j
        t          |¦  «        ||| j        ¬¦  «        ƒ d {V —†¦  «        S r[  )r  rm   r&   ÚCOUNTrL   r   rW  r   r!  r³   Ú_countrm  rº   )rV   re   r  r@  rk  s        rX   r   zFastAPI.count,  sÎ   è è € ð ×ÒØŒOÝÔØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ 	'¨°&Ð'9Ñ:Ô:Ð:åÝÝÔ$Ø”	Ô Ý�mÑ$Ô$ØØØÔ.ðñ ô ð ð ð ð ð ð ñ	
ô 	
ð 		
rZ   zFastAPI.resetc              ƒ   óÞ   K  — |                       |j        t          j        d d d ¦  «        ƒ d {V —† t	          t
          t          j        | j        j	        | j
        ¬¦  «        ƒ d {V —†¦  «        S rB  )r  rm   r&   ÚRESETr   rš   r   r!  r³   rî   rº   r  s     rX   rî   zFastAPI.resetJ  s©   è è € ð ×ÒØŒOÝÔØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ÝÝÔ$Ø”	”ØÔ.ðñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.get_nearest_neighborsc           	   ƒ   ód  ‡ ‡‡‡K  — t          dt          j        ¦  «        dt          dt          dt
          fˆˆˆ ˆfd„¦   «         }t          t
          t          j        ||| 	                    ¦   «         ƒ d {V —†‰ j
        ¬¦  «        ƒ d {V —†¦  «        }|d         �d„ |d         D ¦   «         |d<   |S )	Nzinternal.get_nearest_neighborsre   r2  rR   c           
      óÒ  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        ‰‰‰¦  «         ‰                     | ¬¦  «         t          d‰i¦  «         ‰j
                             t          ‰¦  «        t          t          |j        rt!          |j        ¦  «        nd ¦  «        |j        |j        |j        |j        ‰‰¬¦  «        S )Nr4  r  )rk  Úquery_embeddingsÚ	n_resultsr¡  r¢  r£  r  r  )r�   r<   r5  r6  r"  rm   r&   ÚQUERYr  rL   r³   Ú_queryrm  r   r#   r½  r$   r¾  r¡  r¢  r£  )re   r2  Úqueryrk  r@  rV   r  s      €€€€rX   Úprocess_queryz4FastAPI.get_nearest_neighbors.<locals>.process_queryj  sî   ø€ õ #¥>µ6´<ÀÑ3IÔ3IÑJÔJˆEð ×"Ò"Ø”ÝÔ!ØØØñô ð ð ×%Ò%¨gÐ%Ñ6Ô6Ð6Ý*¨H°fÐ+=Ñ>Ô>Ð>à”9×#Ò#Ý# MÑ2Ô2Ý!%ÝàÔ-ðÕ1°%Ô2HÑIÔIÐIàñ	"ô "ð  œ/Ø”kØ$Ô3ØœØØ&ð $ñ ô ð rZ   r:  rŠ  c                 ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c                 ó\   — g | ])}t          t          |¦  «                             ¦   «         ‘Œ*S r§  r¨  rª  s     rX   r­  z<FastAPI.get_nearest_neighbors.<locals>.<listcomp>.<listcomp>—  ó.   € ÐMÐMÐM¸••i Ñ+Ô+×2Ò2Ñ4Ô4ÐMÐMÐMrZ   r§  ©r«  Úresults     rX   r­  z1FastAPI.get_nearest_neighbors.<locals>.<listcomp>–  ó7   € ð &ð &ð &àð NÐMÀfÐMÑMÔMð&ð &ð &rZ   )rM   rK   Ú	OPERATIONr   r=  r"   r   r   r!  r>  rº   )rV   r  r@  rk  re   rÂ  Únnresults   ````   rX   r  zFastAPI.get_nearest_neighborsa  s  øøøøè è € õ 
Ø,Õ.FÔ.Pñ

ô 

ð	¥7ð 	µeð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ

ô 

ð	õ< ÝÝÔ$ØØØ—l’l‘n”nÐ$Ð$Ð$Ð$Ð$Ð$ØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ˆð �LÔ!Ð-ð&ð &à& |Ô4ð&ñ &ô &ˆH�\Ñ"ð
 ˆrZ   c              ƒ   óÒ   ‡ K  — dt           t          t          f         fˆ fd„}t          t           t          t          f         t	          j        |‰ j        ¬¦  «        ƒ d {V —†¦  «        S )NrR   c                  ó:   •— d‰ j                              ¦   «         iS )NÚmax_batch_size)r³   Úget_max_batch_sizer  s   €rX   Úprocess_pre_flight_checksz<FastAPI.pre_flight_checks.<locals>.process_pre_flight_checksž  s    ø€ à  $¤)×">Ò">Ñ"@Ô"@ðð rZ   r:  )r   ry   r   r   r   r!  rº   )rV   rÏ  s   ` rX   rð   zFastAPI.pre_flight_checks�  s�   øè è € ð	­4µµS°¬>ð 	ð 	ð 	ð 	ð 	ð 	õ
 Ý••c�ŒNÝÔ$Ø)ØÔ.ðñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   c           
      ó@  — | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d| j        dg¬¦  «         | j                              d	| j        dgd |                      t          ¦  «        ¬
¦  «         | j                              d| j
        dgd ¬¦  «         | j                              d| j        dgd |                      t          ¦  «        ¬
¦  «         | j                              d| j        dgd ¬¦  «         | j                              d| j        dgd ¬¦  «         | j                              d| j        dgd ¬¦  «         | j                              d| j        dgd |                      t"          ¦  «        ¬
¦  «         | j                              d| j        dgt&          j        d |                      t*          ¦  «        ¬¦  «         | j                              d| j        dgd |                      t.          ¦  «        ¬
¦  «         | j                              d| j        dgd |                      t*          ¦  «        ¬
¦  «         | j                              d| j        dgd |                      t4          ¦  «        ¬
¦  «         | j                              d| j        dgt8          |                      t:          ¦  «        ¬
¦  «         | j                              d| j        dgd ¬¦  «         | j                              d| j        dgd |                      t@          ¦  «        ¬
¦  «         | j                              d| j!        dgd ¬¦  «         | j                              d| j"        dgd |                      tF          ¦  «        ¬
¦  «         | j                              d| j$        dgd ¬¦  «         d S )Nz/api/v1rã   rä   z/api/v1/resetræ   z/api/v1/versionz/api/v1/heartbeatz/api/v1/pre-flight-checksz/api/v1/databasesré   z/api/v1/databases/{database}rç   z/api/v1/tenantsz/api/v1/tenants/{tenant}z/api/v1/collectionsz/api/v1/count_collectionsz'/api/v1/collections/{collection_id}/addrë   z*/api/v1/collections/{collection_id}/updatez*/api/v1/collections/{collection_id}/upsertz'/api/v1/collections/{collection_id}/getz*/api/v1/collections/{collection_id}/deletez)/api/v1/collections/{collection_id}/countz)/api/v1/collections/{collection_id}/queryz%/api/v1/collections/{collection_name}z#/api/v1/collections/{collection_id}rì   rê   )%rÈ   rœ   rí   rî   rÒ   rï   rð   Úcreate_database_v1rá   r8   Úget_database_v1Úcreate_tenant_v1r9   Úget_tenant_v1Úlist_collections_v1Úcount_collections_v1Úcreate_collection_v1r=   Úadd_v1r   rü   r7   Ú	update_v1r?   Ú	upsert_v1Úget_v1r;   Ú	delete_v1r   r:   Úcount_v1Úget_nearest_neighbors_v1r<   Úget_collection_v1Úupdate_collection_v1r>   Údelete_collection_v1r  s    rX   rÉ   zFastAPI.setup_v1_routes®  s¼  € ØŒ×!Ò! )¨T¬YÀÀÐ!ÑHÔHÐHØŒ×!Ò! /°4´:ÈÀxÐ!ÑPÔPÐPØŒ×!Ò!Ð"3°T´\ÈEÈ7Ð!ÑSÔSÐSØŒ×!Ò!Ð"5°t´~ÐPUÈwÐ!ÑWÔWÐWØŒ×!Ò!Ø'¨Ô)?È%Èð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØØÔ#Ø�HØØ×@Ò@ÅÑPÔPð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø*ØÔ Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!ØØÔ!Ø�HØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø&ØÔØ�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø!ØÔ$Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø'ØÔ%Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø!ØÔ%Ø�HØØ×@Ò@ÕAQÑRÔRð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø5ØŒKØ�HÝÔ/ØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø8ØŒNØ�HØØ×@Ò@ÅÑQÔQð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø8ØŒNØ�HØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø5ØŒKØ�HØØ×@Ò@ÅÑNÔNð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø8ØŒNØ�HÝ'Ø×@Ò@ÅÑQÔQð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø7ØŒMØ�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø7ØÔ)Ø�HØØ×@Ò@ÅÑPÔPð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø3ØÔ"Ø�GØð	 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø1ØÔ%Ø�GØØ×@Ò@ÕAQÑRÔRð 	"ñ 	
ô 	
ð 	
ð 	Œ×!Ò!Ø3ØÔ%Ø�JØð	 	"ñ 	
ô 	
ð 	
ð 	
ð 	
rZ   Ú/auth_and_get_tenant_and_database_for_request_v1c              ƒ   óN   K  — t          j        | j        |||||¦  «        ƒ d{V —†S )aò  
        Authenticates and authorizes the request based on the given headers
        and other parameters. If the request cannot be authenticated or cannot
        be authorized (with the configured providers), raises an HTTP 401.

        If the request is authenticated and authorized, returns the tenant and
        database to be used for the request. These will differ from the passed
        tenant and database if and only if:
        - The request is authenticated
        - chroma_overwrite_singleton_tenant_database_access_from_auth = True
        - The passed tenant or database are None or default_{tenant, database}
            (can be overwritten separately)
        - The user has access to a single tenant and/or single database.
        N)r   r!  Ú1sync_auth_and_get_tenant_and_database_for_requestr#  s         rX   Ú,auth_and_get_tenant_and_database_for_requestz4FastAPI.auth_and_get_tenant_and_database_for_request.  sP   è è € õ6 Ô'àÔBØØØØØñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rZ   c                 óª  — | j         st          |||dœ¦  «         ||fS | j                              t          |¦  «        ¦  «        }| j                              |¦  «        \  }}|r|t
          k    r|r|}|r|t          k    r|r|}| j        s||fS t          |||¬¦  «        }	| j         	                    |||	¦  «         t          |||dœ¦  «         ||fS )Nr%  )
rÄ   rL   r&  r'  Ú'singleton_tenant_database_if_applicabler+   r*   rÆ   r'   r(  )
rV   rm   r  r  r  r  r)  Ú
new_tenantÚnew_databaser*  s
             rX   rä  z9FastAPI.sync_auth_and_get_tenant_and_database_for_requestT  s;  € ð Ô"ð 	&Ý*à$Ø (Ø",ðð ñô ð ð ˜HÐ%Ð%àÔ+×AÒAÅ$ÀwÁ-Ä-ÑPÔPˆð
 Ô×GÒGÈÑVÔVñ	
ØØð ð 	 ˜&¥NÒ2Ð2¸
Ð2ØˆFØð 	$˜HÕ(8Ò8Ð8¸lÐ8Ø#ˆHàÔ"ð 	&Ø˜HÐ%Ð%å&ØØØ!ð
ñ 
ô 
ˆð 	Ô×.Ò.¨}¸fÀnÑUÔUÐUÝ&à Ø$Ø(ðð ñ	
ô 	
ð 	
ð ˜Ð!Ð!rZ   zFastAPI.create_database_v1c              ƒ   óÈ   ‡ K  — dt           dt          dt          dd fˆ fd„}t          j        |||j        |                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nr  rm   r2  rR   c                 ó  •— t          t          t          j        |¦  «        ¦  «        }‰                     |t
          j        | |j        d ¦  «        \  }}|r|} |r||_        ‰j         	                    |j        | ¦  «        S r
  )
r�   r8   r5  r6  rä  r&   r7  r`   r³   rò   )r  rm   r2  r8  Úmaybe_tenantÚmaybe_databaserV   s         €rX   r9  z;FastAPI.create_database_v1.<locals>.process_create_databaseŒ  sŠ   ø€ õ  ¥µ´¸XÑ0FÔ0FÑGÔGˆBð ×FÒFØÝÔ+ØØ”Øñô ñ	ØØð ð &Ø%�Øð )Ø(�”à”9×,Ò,¨R¬W°fÑ=Ô=Ð=rZ   r:  r<  r?  s   `   rX   rÑ  zFastAPI.create_database_v1…  s·   øè è € ð	>Ýð	>Ý")ð	>Ý5:ð	>àð	>ð 	>ð 	>ð 	>ð 	>ð 	>õ. Ô Ø#ØØŒOØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.get_database_v1c           	   ƒ   óø   K  — |                       |j        t          j        ||d ¦  «        ƒ d {V —†\  }}|r|}|r|}t	          t
          t          j        | j        j	        ||| j
        ¬¦  «        ƒ d {V —†¦  «        S rB  )rå  rm   r&   rC  r   rF   r   r!  r³   ró   rº   )rV   re   r  r  rì  rí  s         rX   rÒ  zFastAPI.get_database_v1«  sÐ   è è € ð ×CÒCØŒOÝÔ$ØØØñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ñ	
ØØð ð 	"Ø!ˆFØð 	&Ø%ˆHåÝÝÔ$Ø”	Ô&ØØØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.create_tenant_v1c              ƒ   ó®   ‡ K  — dt           dt          dd fˆ fd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   r2  rR   c                 ó  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        |j        d d ¦  «        \  }}|r||_        ‰j	         
                    |j        ¦  «        S r
  )r�   r9   r5  r6  rä  rm   r&   rI  r`   r³   rõ   )re   r2  r  rì  Ú_rV   s        €rX   rJ  z7FastAPI.create_tenant_v1.<locals>.process_create_tenantÒ  sv   ø€ Ý#¥Lµ&´,¸xÑ2HÔ2HÑIÔIˆFð #×TÒTØ”ÝÔ)Ø”ØØñô ‰OˆL˜!ð ð +Ø*�”à”9×*Ò*¨6¬;Ñ7Ô7Ð7rZ   r:  rK  rL  s   `  rX   rÓ  zFastAPI.create_tenant_v1Ì  s§   øè è € ð	8­7ð 	8½eð 	8Èð 	8ð 	8ð 	8ð 	8ð 	8ð 	8õ  Ô Ø!ØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.get_tenant_v1c              ƒ   óî   K  — |                       |j        t          j        |d d ¦  «        ƒ d {V —†\  }}|r|}t	          t
          t          j        | j        j	        || j
        ¬¦  «        ƒ d {V —†¦  «        S rB  )rå  rm   r&   rN  r   rG   r   r!  r³   rö   rº   )rV   re   r  rì  rñ  s        rX   rÔ  zFastAPI.get_tenant_v1é  s»   è è € ð !%× QÒ QØŒOÝÔ"ØØØñ!
ô !
ð 
ð 
ð 
ð 
ð 
ð 
‰ˆ�að ð 	"Ø!ˆFåÝÝÔ$Ø”	Ô$ØØÔ.ðñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.list_collections_v1c              ƒ   ó  K  — |                       |j        t          j        ||d ¦  «        ƒ d {V —†\  }}|r|}|r|}t	          t
          t                   t          j        | j	        j
        ||||| j        ¬¦  «        ƒ d {V —†¦  «        }|S rB  )rå  rm   r&   rU  r   r   rX  r   r!  r³   rø   rº   )	rV   re   rO  rP  r  r  rì  rí  rY  s	            rX   rÕ  zFastAPI.list_collections_v1  sá   è è € ð ×CÒCØŒOÝÔ(ØØØñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ñ	
ØØð ð 	"Ø!ˆFØð 	&Ø%ˆHå $Ý•_Ô%ÝÔ$Ø”	Ô*ØØØØØÔ.ðñ ô ð ð ð ð ð ð ñ
!
ô 
!
Ðð %Ð$rZ   zFastAPI.count_collections_v1c           	   ƒ   óø   K  — |                       |j        t          j        ||d ¦  «        ƒ d {V —†\  }}|r|}|r|}t	          t
          t          j        | j        j	        ||| j
        ¬¦  «        ƒ d {V —†¦  «        S rB  )rå  rm   r&   r\  r   rW  r   r!  r³   rù   rº   )rV   re   r  r  rì  rí  s         rX   rÖ  zFastAPI.count_collections_v1*  sÐ   è è € ð ×CÒCØŒOÝÔ)ØØØñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ñ	
ØØð ð 	"Ø!ˆFØð 	&Ø%ˆHåÝÝÔ$Ø”	Ô+ØØØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.create_collection_v1c              ƒ   óþ   ‡ K  — dt           dt          dt          dt          dt          f
ˆ fd„}t	          t          t          j        |||||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†¦  «        }|S )Nre   r  r  r2  rR   c                 ór  •— t          t          t          j        |¦  «        ¦  «        }|j        st          ¦   «         nt          |j        ¦  «        }‰                     | j        t          j
        |||j        ¦  «        \  }}|r|}|r|}‰j                             |j        ||j        |j        ||¬¦  «        S )Nr_  )r�   r=   r5  r6  r`  r   r   rä  rm   r&   rc  r`   r³   rú   ra  rb  )	re   r  r  r2  rd  r`  rì  rí  rV   s	           €rX   re  z?FastAPI.create_collection_v1.<locals>.process_create_collectionS  sÚ   ø€ õ $Õ$4µf´lÀ8Ñ6LÔ6LÑMÔMˆFð Ô+ðÕ-Ñ/Ô/Ð/åCØÔ(ñô ð ð ×FÒFØ”ÝÔ-ØØØ”ñô ñ	ØØð ð &Ø%�Øð *Ø)�à”9×.Ò.Ø”[Ø+ØœØ$Ô2ØØ!ð /ñ ô ð rZ   r:  rf  )rV   re   r  r  re  rg  s   `     rX   r×  zFastAPI.create_collection_v1K  sÍ   øè è € ð#	Ýð#	Ý&)ð#	Ý58ð#	ÝDIð#	åð#	ð #	ð #	ð #	ð #	ð #	õJ  $ÝÝÔ$Ø)ØØØØ—l’l‘n”nÐ$Ð$Ð$Ð$Ð$Ð$ØÔ.ðñ ô ð ð ð ð ð ð ñ
 
ô 
 
Ðð $Ð#rZ   zFastAPI.get_collection_v1c              ƒ   ó°   ‡ ‡‡‡K  — ‰                       |j        t          j        ‰‰‰¦  «        ƒ d {V —†\  }}|r|Š|r|Šˆˆˆ ˆfd„} |¦   «         ƒ d {V —†S )Nc            
   “   óŽ   •K  — t          t          t          j        ‰j        j        ‰‰‰‰j        ¬¦  «        ƒ d {V —†¦  «        } | S rB  )r   rX  r   r!  r³   r  rº   )rg  rh  r  rV   r  s    €€€€rX   Úinnerz(FastAPI.get_collection_v1.<locals>.inner�  sl   øè è € Ý#'ÝÝÔ(Ø”IÔ,Ø#ØØØ Ô2ðñ ô ð ð ð ð ð ð ñ	$ô 	$Ð ð (Ð'rZ   )rå  rm   r&   rj  )rV   re   rh  r  r  rì  rí  rù  s   ` ```   rX   rß  zFastAPI.get_collection_v1…  sº   øøøøè è € ð ×CÒCØŒOÝÔ&ØØØñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ñ	
ØØð ð 	"Ø!ˆFØð 	&Ø%ˆHð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð �U‘W”Wˆ}ˆ}ˆ}ˆ}ˆ}ˆ}ÐrZ   zFastAPI.update_collection_v1c              ƒ   ó¾   ‡ K  — dt           dt          dt          dd fˆ fd„}t          j        ||||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   rk  r2  rR   c                 óF  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        d d |¦  «         |j        sd nt          |j        ¦  «        }‰j
                             t          |¦  «        |j        |j        |¬¦  «        S )N)rp  rq  rr  rs  )r�   r>   r5  r6  rä  rm   r&   rt  rs  r   r³   ru  rm  rq  rr  )re   rk  r2  rý   r`  rV   s        €rX   rv  z?FastAPI.update_collection_v1.<locals>.process_update_collection³  s®   ø€ õ $Õ$4µf´lÀ8Ñ6LÔ6LÑMÔMˆFà×BÒBØ”ÝÔ-ØØØñô ð ð Ô/ð��åCØÔ,ñô ð ð ”9×$Ò$Ý˜Ñ'Ô'ØœØ#Ô0Ø"/ð	 %ñ ô ð rZ   r:  rw  )rV   rk  re   rv  s   `   rX   rà  zFastAPI.update_collection_v1¬  sµ   øè è € ð	Ýð	Ý-0ð	Ý<Að	àð	ð 	ð 	ð 	ð 	ð 	õ4 Ô Ø%ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.delete_collection_v1c              ƒ   óØ   K  — |                       |j        t          j        |||¦  «        ƒ d {V —†\  }}|r|}|r|}t	          j        | j        j        |||| j        ¬¦  «        ƒ d {V —† d S rB  )	rå  rm   r&   ry  r   r!  r³   r  rº   )rV   re   rh  r  r  rì  rí  s          rX   rá  zFastAPI.delete_collection_v1Õ  sÍ   è è € ð ×CÒCØŒOÝÔ)ØØØñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ñ	
ØØð ð 	"Ø!ˆFØð 	&Ø%ˆHåÔ ØŒIÔ'ØØØØÔ*ð
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.add_v1c           	   ƒ   ó@  ‡ ‡K  — 	 dt           dt          dt          fˆˆ fd„}t          t          t	          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†¦  «        S # t          $ r#}t          dt          |¦  «        ¬¦  «        ‚d }~ww xY w)Nre   r2  rR   c           
      ó€  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        d d ‰¦  «         ‰j         	                    t          ‰¦  «        |j        t          t          |j        rt          |j        ¦  «        nd ¦  «        |j        |j        |j        ¬¦  «        S ©N)rk  r‰  rŠ  r‹  rŒ  r�  )r�   r7   r5  r6  rä  rm   r&   rŽ  r³   r�  rm  r‰  r   r#   rŠ  r$   r‹  rŒ  r�  )re   r2  rû   rk  rV   s      €€rX   r�  z#FastAPI.add_v1.<locals>.process_addþ  s´   ø€ Ý$¥\µ6´<ÀÑ3IÔ3IÑJÔJ�à×FÒFØ”OÝ”OØØØ!ñô ð ð ”y—~’~Ý"'¨Ñ"6Ô"6ØœÝ#Ý"àœ>ð"Õ5°c´nÑEÔEÐEà!ñ	 ô  ð "œmØ!œmØœð &ñ ô ð rZ   r:  rw   r‘  r“  )rV   re   rk  r�  r   s   ` `  rX   rØ  zFastAPI.add_v1õ  s÷   øøè è € ð$	@ð¥Wð ½ð Å$ð ð ð ð ð ð ð õ0 ÝÝÔ(ØØØ!Ÿ,š,™.œ.Ð(Ð(Ð(Ð(Ð(Ð(Ø Ô2ð	ñ ô ð ð ð ð ð ð ñô ð øõ )ð 	@ð 	@ð 	@Ý¨C½¸A¹¼Ð?Ñ?Ô?Ð?øøøøð	@øøøs   †A)A0 Á0
BÁ:BÂBzFastAPI.update_v1c              ƒ   ó¼   ‡ ‡K  — dt           dt          dt          fˆˆ fd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   r2  rR   c                 óZ  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        d d ‰¦  «         ‰j         	                    t          ‰¦  «        |j        |j        rt          |j        ¦  «        nd |j        |j        |j        ¬¦  «        S rÿ  )r�   r?   r5  r6  rä  rm   r&   r–  r³   r—  rm  r‰  rŠ  r$   r‹  rŒ  r�  )re   r2  rý   rk  rV   s      €€rX   r˜  z)FastAPI.update_v1.<locals>.process_update(  s«   ø€ Ý#¥OµV´\À(Ñ5KÔ5KÑLÔLˆFð ×BÒBØ”ÝÔ"ØØØñô ð ð ”9×$Ò$Ý# MÑ2Ô2Ø”JàÔ$ðÕ8¸Ô9JÑKÔKÐKàØ Ô*Ø Ô*Ø”[ð %ñ 	ô 	ð 	rZ   r:  r™  )rV   re   rk  r˜  s   ` ` rX   rÙ  zFastAPI.update_v1"  s­   øøè è € ð	¥Gð 	µuð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	õ. Ô ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.upsert_v1c              ƒ   ó¼   ‡ ‡K  — dt           dt          dt          fˆˆ fd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —† d S )Nre   r2  rR   c           
      ó€  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        d d ‰¦  «         ‰j         	                    t          ‰¦  «        |j        t          t          |j        rt          |j        ¦  «        nd ¦  «        |j        |j        |j        ¬¦  «        S rÿ  )r�   r7   r5  r6  rä  rm   r&   rœ  r³   r�  rm  r‰  r   r#   rŠ  r$   r‹  rŒ  r�  )re   r2  rþ   rk  rV   s      €€rX   rž  z)FastAPI.upsert_v1.<locals>.process_upsertM  s½   ø€ Ý#¥Lµ&´,¸xÑ2HÔ2HÑIÔIˆFð ×BÒBØ”ÝÔ"ØØØñô ð ð ”9×$Ò$Ý# MÑ2Ô2Ø”JÝÝàÔ(ðÕ1°&Ô2CÑDÔDÐDàñ	ô ð !Ô*Ø Ô*Ø”[ð %ñ ô ð rZ   r:  r™  )rV   re   rk  rž  s   ` ` rX   rÚ  zFastAPI.upsert_v1F  s­   øøè è € ð	¥Gð 	µuð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	õ4 Ô ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rZ   zFastAPI.get_v1c           	   ƒ   ó  ‡ ‡K  — dt           dt          dt          fˆˆ fd„}t          t          t	          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†¦  «        }|d         �d„ |d         D ¦   «         |d<   |S )Nre   r2  rR   c           	      ó:  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        d d ‰¦  «         ‰j         	                    t          ‰¦  «        |j        |j        |j        |j        |j        |j        ¬¦  «        S )N)rk  r‰  r¡  rO  rP  r¢  r£  )r�   r;   r5  r6  rä  rm   r&   rã   r³   r¤  rm  r‰  r¡  rO  rP  r¢  r£  )re   r2  r…   rk  rV   s      €€rX   r¥  z#FastAPI.get_v1.<locals>.process_getu  s�   ø€ Ý ¥­v¬|¸HÑ/EÔ/EÑFÔFˆCà×BÒBØ”Ý”ØØØñô ð ð ”9—>’>Ý# MÑ2Ô2Ø”GØ”iØ”iØ”zØ"Ô1Øœð "ñ ô ð rZ   r:  rŠ  c                 ó\   — g | ])}t          t          |¦  «                             ¦   «         ‘Œ*S r§  r¨  rª  s     rX   r­  z"FastAPI.get_v1.<locals>.<listcomp>”  r®  rZ   r¯  )rV   rk  re   r¥  r°  s   ``   rX   rÛ  zFastAPI.get_v1n  sí   øøè è € ð	¥ð 	µEð 	½ið 	ð 	ð 	ð 	ð 	ð 	ð 	õ( ÝÝÔ$ØØØ—l’l‘n”nÐ$Ð$Ð$Ð$Ð$Ð$ØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ˆ
ð �lÔ#Ð/ð(ð (à!+¨LÔ!9ð(ñ (ô (ˆJ�|Ñ$ð
 ÐrZ   zFastAPI.delete_v1c              ƒ   ó¸   ‡ ‡K  — dt           dt          dt          fˆˆ fd„}t          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†S )Nre   r2  rR   c                 ó"  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        d d ‰¦  «         ‰j         	                    t          ‰¦  «        |j        |j        |j        |j        ¬¦  «        S )N)rk  r‰  r¡  r¢  rO  )r�   r:   r5  r6  rä  rm   r&   rê   r³   r³  rm  r‰  r¡  r¢  rO  )re   r2  rÿ   rk  rV   s      €€rX   r´  z)FastAPI.delete_v1.<locals>.process_delete¢  s‰   ø€ Ý#¥OµV´\À(Ñ5KÔ5KÑLÔLˆFà×BÒBØ”ÝÔ"ØØØñô ð ð ”9×$Ò$Ý# MÑ2Ô2Ø”JØ”lØ%Ô4Ø”lð %ñ ô ð rZ   r:  rµ  )rV   rk  re   r´  s   ``  rX   rÜ  zFastAPI.delete_v1›  s£   øøè è € ð	¥Gð 	µuð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	õ$ Ô'ØØØ—,’,‘.”.Ð Ð Ð Ð Ð Ð ØÔ*ð	
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rZ   zFastAPI.count_v1c           	   ƒ   óú   K  — |                       |j        t          j        d d |¦  «        ƒ d {V —† t	          t
          t          j        | j        j	        t          |¦  «        | j        ¬¦  «        ƒ d {V —†¦  «        S rB  )rå  rm   r&   r·  r   rW  r   r!  r³   r¸  rm  rº   )rV   re   rk  s      rX   rÝ  zFastAPI.count_v1»  sµ   è è € ð ×?Ò?ØŒOÝÔØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ÝÝÔ$Ø”	Ô Ý�mÑ$Ô$ØÔ.ðñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   zFastAPI.reset_v1c              ƒ   óÞ   K  — |                       |j        t          j        d d d ¦  «        ƒ d {V —† t	          t
          t          j        | j        j	        | j
        ¬¦  «        ƒ d {V —†¦  «        S rB  )rå  rm   r&   rº  r   rš   r   r!  r³   rî   rº   r  s     rX   Úreset_v1zFastAPI.reset_v1Ó  s©   è è € ð ×?Ò?ØŒOÝÔØØØñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ÝÝÔ$Ø”	”ØÔ.ðñ ô ð ð ð ð ð ð ñ
ô 
ð 	
rZ   z FastAPI.get_nearest_neighbors_v1c           	   ƒ   ó  ‡ ‡K  — dt           dt          dt          fˆˆ fd„}t          t          t	          j        |||                     ¦   «         ƒ d {V —†‰ j        ¬¦  «        ƒ d {V —†¦  «        }|d         �d„ |d         D ¦   «         |d<   |S )Nre   r2  rR   c           	      ó€  •— t          t          t          j        |¦  «        ¦  «        }‰                     | j        t          j        d d ‰¦  «         ‰j         	                    t          ‰¦  «        t          t          |j        rt          |j        ¦  «        nd ¦  «        |j        |j        |j        |j        ¬¦  «        S )N)rk  r½  r¾  r¡  r¢  r£  )r�   r<   r5  r6  rä  rm   r&   r¿  r³   rÀ  rm  r   r#   r½  r$   r¾  r¡  r¢  r£  )re   r2  rÁ  rk  rV   s      €€rX   rÂ  z7FastAPI.get_nearest_neighbors_v1.<locals>.process_queryò  s¼   ø€ Ý"¥>µ6´<ÀÑ3IÔ3IÑJÔJˆEð ×BÒBØ”ÝÔ!ØØØñô ð ð ”9×#Ò#Ý# MÑ2Ô2Ý!%ÝàÔ-ðÕ1°%Ô2HÑIÔIÐIàñ	"ô "ð  œ/Ø”kØ$Ô3Øœð $ñ ô ð rZ   r:  rŠ  c                 ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c                 ó\   — g | ])}t          t          |¦  «                             ¦   «         ‘Œ*S r§  r¨  rª  s     rX   r­  z?FastAPI.get_nearest_neighbors_v1.<locals>.<listcomp>.<listcomp>	  rÅ  rZ   r§  rÆ  s     rX   r­  z4FastAPI.get_nearest_neighbors_v1.<locals>.<listcomp>	  rÈ  rZ   )r   r=  r"   r   r   r!  r>  rº   )rV   rk  re   rÂ  rÊ  s   ``   rX   rÞ  z FastAPI.get_nearest_neighbors_v1é  sì   øøè è € ð	¥7ð 	µeð 	Åð 	ð 	ð 	ð 	ð 	ð 	ð 	õ4 ÝÝÔ$ØØØ—l’l‘n”nÐ$Ð$Ð$Ð$Ð$Ð$ØÔ.ð	ñ ô ð ð ð ð ð ð ñ
ô 
ˆð �LÔ!Ð-ð&ð &à& |Ô4ð&ñ &ô &ˆH�\Ñ"ð
 ˆrZ   )rR   N)NN)_rž   rŸ   r    r,   rÎ   r   ry   r   rµ   r	   r‡   rá   rÊ   r¬   r¯   r   r[   r   r2   r   rÂ   rW  rí   r3   rÁ   rï   rÒ   r  rM   rK   rÉ  rU   r@   r&   r   r  r"  r%   rñ   rò   rF   ró   rô   rõ   rG   rö   r   r÷   rX  rø   rù   rú   r  r  r  r  r  r  rš   rû   rý   rþ   r!   r…   r   rÿ   r   rî   r"   r  rð   rÉ   r   rå  rä  r+   rÑ  rÒ  rÓ  rÔ  r*   rÕ  rÖ  r×  rß  rà  rá  rØ  rÙ  rÚ  rÛ  rÜ  rÝ  r  rÞ  r§  rZ   rX   r   r   À   sn  € € € € € ð45 ð 45ð 45ð 45ð 45ðl $ s¨C x¤.ð ð ð ð ðØ! !œWðà	ˆc�3ˆhŒðð ð ð ð$j
ð j
ð j
ð j
ðXð ð ð ð�W”_ð ð ð ð ð
Øð
Ø%3ð
à	ð
ð 
ð 
ð 
ð?�d˜3 ˜8”nð ?ð ?ð ?ð ?ð
Øð
Ø%/ð
à	ð
ð 
ð 
ð 
ð  c¨3 h¤ð ð ð ð ð'˜sð 'ð 'ð 'ð 'ðG¨Gð G¸ð Gð Gð Gð Gð €\ØØ Ô*ñô ð ð
àð
ð ð
ð ˜”ð	
ð
 ˜3”-ð
ð ˜S”Mð
ð 
ð
ð 
ð 
ñ „Zñ	ô ð

ð €\Ø#Ø Ô*ñô ð*àð*ð ð*ð ˜”ð	*ð
 ˜3”-ð*ð ˜S”Mð*ð 
ð*ð *ð *ñ	ô ð*ðX €\Ð-Ð/GÔ/QÑRÔRð
àð
ð 
ð
ð 
ð 
ñ SÔRð
ð$ €\Ð+Ð-EÔ-OÑPÔPð
àð
ð ð
ð 
ð	
ð 
ð 
ñ QÔPð
ð> €\Ð(Ð*BÔ*LÑMÔMð
àð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ñ NÔMð
ð2 €\Ð+Ð-EÔ-OÑPÔPð
àð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ñ QÔPð
ð, €\Ð)Ð+CÔ+MÑNÔNð
àð
ð 
ð
ð 
ð 
ñ OÔNð
ð2 €\Ð&Ð(@Ô(JÑKÔKð
àð
ð ð
ð 
ð	
ð 
ð 
ñ LÔKð
ð. €\Ð*Ð,DÔ,NÑOÔOð
  $Ø $ð
ð 
àð
ð ð
ð ˜Œ}ð	
ð
 ˜”ð
ð 
�(Ô	ð
ð 
ð 
ñ PÔOð
ð6 €\Ð,Ð.FÔ.PÑQÔQð  $Ø $ð'%ð '%àð'%ð ð'%ð ð	'%ð
 ˜Œ}ð'%ð ˜”ð'%ð 
�/Ô	"ð'%ð '%ð '%ñ RÔQð'%ðR €\Ð-Ð/GÔ/QÑRÔRð
àð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ñ SÔRð
ð6 €\Ð-Ð/GÔ/QÑRÔRð9$àð9$ð ð9$ð ð	9$ð
 
ð9$ð 9$ð 9$ñ SÔRð9$ðv €\Ð*Ð,DÔ,NÑOÔOð$àð$ð ð$ð ð	$ð
 ð$ð 
ð$ð $ð $ñ PÔOð$ð< €\Ð0Ð2JÔ2TÑUÔUð$àð$ð ð$ð ð	$ð
 ð$ð 
ð$ð $ð $ñ VÔUð$ð< €\Ð-Ð/GÔ/QÑRÔRð+
àð+
ð ð+
ð ð	+
ð
 ð+
ð 
ð+
ð +
ð +
ñ SÔRð+
ðZ €\Ð-Ð/GÔ/QÑRÔRð
àð
ð ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ñ SÔRð
ð2 €\Ð+Ð-EÔ-OÑPÔPØð8àð8ð ð8ð ð	8ð
 ð8ð 
ˆc�3ˆhŒð8ð 8ð 8ñ „Zñ QÔPð8ðt €\Ð1Ð3KÔ3UÑVÔVØð#
àð#
ð ð#
ð ð	#
ð
 ð#
ð ð#
ð 
ˆc�3ˆhŒð#
ð #
ð #
ñ „Zñ WÔVð#
ðJ €\�-Ð!9Ô!CÑDÔDØð/@àð/@ð ð/@ð ð	/@ð
 ð/@ð 
ð/@ð /@ð /@ñ „Zñ EÔDð/@ðb €\Ð"Ð$<Ô$FÑGÔGØð'
àð'
ð ð'
ð ð	'
ð
 ð'
ð 
ð'
ð '
ð '
ñ „Zñ HÔGð'
ðR €\Ð"Ð$<Ô$FÑGÔGØð*
àð*
ð ð*
ð ð	*
ð
 ð*
ð 
ð*
ð *
ð *
ñ „Zñ HÔGð*
ðX €\�-Ð!9Ô!CÑDÔDØð/àð/ð ð/ð ð	/ð
 ð/ð 
ð/ð /ð /ñ „Zñ EÔDð/ðb €\Ð"Ð$<Ô$FÑGÔGØð"
àð"
ð ð"
ð ð	"
ð
 ð"
ð 
ð"
ð "
ð "
ñ „Zñ HÔGð"
ðH €\�/Ð#;Ô#EÑFÔFØð
àð
ð ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ñ „Zñ GÔFð
ð8 €\�/Ð#;Ô#EÑFÔFØð
àð
ð 
ð
ð 
ð 
ñ „Zñ GÔFð
ð* €\Ð1Ð3KÔ3UÑVÔVØð8àð8ð ð8ð ð	8ð
 ð8ð 
ð8ð 8ð 8ñ „Zñ WÔVð8ðt
¨¨c°3¨h¬ð 
ð 
ð 
ð 
ð"~
ð ~
ð ~
ð ~
ð@ €\Ø9Ø Ô*ñô ð ð
àð
ð ð
ð ˜”ð	
ð
 ˜3”-ð
ð ˜S”Mð
ð 
ˆx˜Œ}˜h sœmÐ+Ô	,ð
ð 
ð 
ñ „Zñ	ô ð

ðB/"àð/"ð ð/"ð ˜”ð	/"ð
 ˜3”-ð/"ð ˜S”Mð/"ð 
ˆx˜Œ}˜h sœmÐ+Ô	,ð/"ð /"ð /"ð /"ðb €\Ð.Ð0HÔ0RÑSÔSØð %ð"
ð "
àð"
ð ð"
ð 
ð	"
ð "
ð "
ñ „Zñ TÔSð"
ðH €\Ð+Ð-EÔ-OÑPÔPØð
 %ð	
ð 
àð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ñ „Zñ QÔPð
ð> €\Ð,Ð.FÔ.PÑQÔQØð
àð
ð 
ð
ð 
ð 
ñ „Zñ RÔQð
ð6 €\Ð)Ð+CÔ+MÑNÔNØð
àð
ð ð
ð 
ð	
ð 
ð 
ñ „Zñ OÔNð
ð0 €\Ð/Ð1IÔ1SÑTÔTØð  $Ø $Ø$Ø(ð#%ð #%àð#%ð ˜Œ}ð#%ð ˜”ð	#%ð
 ð#%ð ð#%ð 
�/Ô	"ð#%ð #%ð #%ñ „Zñ UÔTð#%ðJ €\Ð0Ð2JÔ2TÑUÔUØð %Ø(ð	
ð 
àð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ñ „Zñ VÔUð
ð> €\Ð0Ð2JÔ2TÑUÔUØð %Ø(ð	6$ð 6$àð6$ð ð6$ð ð	6$ð
 
ð6$ð 6$ð 6$ñ „Zñ VÔUð6$ðp €\Ð-Ð/GÔ/QÑRÔRØð
 %Ø(ð#ð #àð#ð ð#ð ð	#ð
 ð#ð 
ð#ð #ð #ñ „Zñ SÔRð#ðJ €\Ð0Ð2JÔ2TÑUÔUØð%
àð%
ð ð%
ð 
ð	%
ð %
ð %
ñ „Zñ VÔUð%
ðN €\Ð0Ð2JÔ2TÑUÔUØð
 %Ø(ð
ð 
àð
ð ð
ð ð	
ð
 ð
ð 
ð
ð 
ð 
ñ „Zñ VÔUð
ð< €\Ð"Ð$<Ô$FÑGÔGØð)@àð)@ð ð)@ð 
ð	)@ð )@ð )@ñ „Zñ HÔGð)@ðV €\Ð%Ð'?Ô'IÑJÔJð!
àð!
ð ð!
ð 
ð	!
ð !
ð !
ñ KÔJð!
ðF €\Ð%Ð'?Ô'IÑJÔJØð$
àð$
ð ð$
ð 
ð	$
ð $
ð $
ñ „Zñ KÔJð$
ðL €\Ð"Ð$<Ô$FÑGÔGØð)àð)ð ð)ð 
ð	)ð )ð )ñ „Zñ HÔGð)ðV €\Ð%Ð'?Ô'IÑJÔJØð
àð
ð ð
ð 
ð	
ð 
ð 
ñ „Zñ KÔJð
ð< €\Ð$Ð&>Ô&HÑIÔIØð
àð
ð ð
ð 
ð	
ð 
ð 
ñ „Zñ JÔIð
ð, €\Ð$Ð&>Ô&HÑIÔIØð
àð
ð 
ð
ð 
ð 
ñ „Zñ JÔIð
ð( €\Ø*Ð,DÔ,Nñô ð ð/àð/ð ð/ð 
ð	/ð /ð /ñ „Zñô ð/ð /ð /rZ   r   )yÚtypingr   r   r   r   r   r   r	   r
   r   r¯   r5  Úanyior   r   r   Ú_FastAPIr   r   Úfastapi.openapi.utilsr   Úfastapi.middleware.corsr   Úfastapi.responsesr   Úfastapi.routingr   r   r   Ú	functoolsr   Ú%chromadb.api.collection_configurationr   r   r   r   Úpydanticr   Úchromadbr   rÕ   Úchromadb.api.typesr   r    r!   r"   r#   r$   Úchromadb.authr%   r&   r'   r(   r)   Úchromadb.configr*   r+   r,   r-   Úchromadb.apir.   Úchromadb.errorsr/   r0   r1   r2   r3   Úchromadb.quotar4   Úchromadb.rate_limitr5   Úchromadb.serverr6   Úchromadb.server.fastapi.typesr7   r8   r9   r:   r;   r<   r=   r>   r?   Ústarlette.datastructuresr@   ÚloggingÚ!chromadb.telemetry.product.eventsrA   Úchromadb.utils.fastapirB   rC   rm  ÚopentelemetryrD   Ú(chromadb.telemetry.opentelemetry.fastapirE   Úchromadb.typesrF   rG   Úchromadb.telemetry.productrH   rI   Ú chromadb.telemetry.opentelemetryrJ   rK   rL   rM   rN   rX  Ú	getLoggerrž   r|   rU   rd   ro   r€   r†   r‡   r�   Ú	APIRouterr’   r§  rZ   rX   ú<module>r/     sø  ðð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð €€€Ø €€€ðð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø -Ð -Ð -Ð -Ð -Ð -Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø $Ð $Ð $Ð $Ð $Ð $Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 'Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð OÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð )Ð (Ð (Ð (Ð (Ð (Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø "Ð "Ð "Ð "Ð "Ð "ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð -Ð ,Ð ,Ð ,Ð ,Ð ,Ø €€€à >Ð >Ð >Ð >Ð >Ð >Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ Ð Ð Ð Ð Ð à GÐ GÐ GÐ GÐ GÐ GØ +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lðð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8à	ˆÔ	˜8Ñ	$Ô	$€ðð ð ðW¨(ð W°tð Wð Wð Wð WðØðØ!)¨7¨)°S¨.Ô!9ðàðð ð ð ðKØðKØ!)¨7¨)°S¨.Ô!9ðKàðKð Kð Kð Kð,$Øð$Ø!)¨7¨)°S¨.Ô!9ð$àð$ð $ð $ð $ð €GˆC�y°Ð5Ñ5Ô5€ð%˜$˜qœ'ð %¨ð %°ð %ð %ð %ð %ð5ð 5ð 5ð 5ð 5�gÔ'ñ 5ô 5ð 5ð8\!ð \!ð \!ð \!ð \!ˆfñ \!ô \!ð \!ð \!ð \!rZ   