§
    ˜ŠtjÙ  ã                   ó¶   — d dl mZ d dlmZmZ d dlmZmZ d dlZd dl	m
Z
mZmZmZ d dlmZ dd„Zdd	„Zdd
„Ze G d„ dee         ¦  «        ¦   «         Zdd„ZdS )é    )Úembedding_functions)ÚEmbeddingFunctionÚregister_embedding_function)ÚDictÚAnyN)Ú
EmbeddingsÚSpaceÚ
EmbeddableÚSparseEmbeddingFunction)Úvalidation_contextÚreturnc                  ó@   — h d£} | t          j        ¦   «         k    sJ ‚dS )a#  
    Ensure that `get_builtins` is consistent after the ef migration.

    This test is intended to be temporary until the ef migration is complete as
    these expected builtins are likely to grow as long as users add new
    embedding functions.

    REMOVE ME ON THE NEXT EF ADDITION
    >"   ÚONNXMiniLM_L6_V2ÚBm25EmbeddingFunctionÚJinaEmbeddingFunctionÚMorphEmbeddingFunctionÚNomicEmbeddingFunctionÚCohereEmbeddingFunctionÚOllamaEmbeddingFunctionÚOpenAIEmbeddingFunctionÚBasetenEmbeddingFunctionÚDefaultEmbeddingFunctionÚMistralEmbeddingFunctionÚOpenCLIPEmbeddingFunctionÚRoboflowEmbeddingFunctionÚText2VecEmbeddingFunctionÚVoyageAIEmbeddingFunctionÚHuggingFaceEmbeddingServerÚChromaBm25EmbeddingFunctionÚGooglePalmEmbeddingFunctionÚInstructorEmbeddingFunctionÚPerplexityEmbeddingFunctionÚTogetherAIEmbeddingFunctionÚGoogleGenaiEmbeddingFunctionÚHuggingFaceEmbeddingFunctionÚGoogleGeminiEmbeddingFunctionÚGoogleVertexEmbeddingFunctionÚAmazonBedrockEmbeddingFunctionÚ ChromaCloudQwenEmbeddingFunctionÚ ChromaLangchainEmbeddingFunctionÚ FastembedSparseEmbeddingFunctionÚ"ChromaCloudSpladeEmbeddingFunctionÚ"HuggingFaceSparseEmbeddingFunctionÚ#GoogleGenerativeAiEmbeddingFunctionÚ$CloudflareWorkersAIEmbeddingFunctionÚ$SentenceTransformerEmbeddingFunctionN)r   Úget_builtins)Úexpected_builtinss    úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/test/ef/test_ef.pyÚtest_get_builtins_holdsr4      s8   € ð#ð #ð #ÐðJ Õ 3Ô @Ñ BÔ BÒBÐBÐBÐBÐBÐBó    c                  ó¾   — t          t          d¦  «        sJ ‚t          j        ¦   «         } | €J ‚t          | t          ¦  «        st          | t
          ¦  «        sJ ‚d S d S )Nr   )Úhasattrr   r   Ú
isinstancer   r   )Ú
default_efs    r3   Útest_default_ef_existsr:   C   s|   € ÝÕ&Ð(BÑCÔCÐCÐCÐCÝ$Ô=Ñ?Ô?€JàÐ!Ð!Ð!Ý�jÕ"3Ñ4Ô4ð ½
ØÕ+ñ9ô 9ð ð ð ð ð ð ð r5   c                  óf  — t          j        ¦   «         D ]œ} | dk    rŒ	t          t           | ¦  «        sJ ‚t          t	          t           | ¦  «        t
          ¦  «        sJ ‚t          t	          t           | ¦  «        t          ¦  «        s*t          t	          t           | ¦  «        t          ¦  «        sJ ‚Œ�d S )Nr*   )	r   r1   r7   r8   ÚgetattrÚtypeÚ
issubclassr   r   )Úefs    r3   Útest_ef_importsr@   M   s¿   € Ý!Ô.Ñ0Ô0ð Sð SˆàÐ3Ò3Ð3ØÝÕ*¨BÑ/Ô/Ð/Ð/Ð/Ý�'Õ"5°rÑ:Ô:½DÑAÔAÐAÐAÐAÝÝÕ'¨Ñ,Ô,Õ.?ñ
ô 
ð 	Så�Õ 3°RÑ8Ô8Õ:QÑRÔRð	Sð 	Sð SøðSð Sr5   c                   óÂ   — e Zd Zddefd„Z ed¦  «        dedefd„¦   «         Ze	de
fd„¦   «         Zdee
ef         fd	„Ze	d
ee
ef         dd fd„¦   «         Zdefd„ZdS )ÚCustomEmbeddingFunctioné   Údimc                 ó   — || _         d S )N©Ú_dim)ÚselfrD   s     r3   Ú__init__z CustomEmbeddingFunction.__init__[   s   € ØˆŒ	ˆ	ˆ	r5   Úcustom_ef_callÚinputr   c                 ó    — t          d¦  «        ‚)NúThis is a test exception)Ú	Exception)rH   rK   s     r3   Ú__call__z CustomEmbeddingFunction.__call__^   s   € åÐ2Ñ3Ô3Ð3r5   c                  ó   — dS )NÚ	custom_ef© rR   r5   r3   ÚnamezCustomEmbeddingFunction.nameb   s   € àˆ{r5   c                 ó   — d| j         iS )NrD   rF   ©rH   s    r3   Ú
get_configz"CustomEmbeddingFunction.get_configf   s   € Ø�t”yÐ!Ð!r5   Úconfigc                 ó.   — t          | d         ¬¦  «        S )NrD   )rD   )rB   )rW   s    r3   Úbuild_from_configz)CustomEmbeddingFunction.build_from_configi   s   € å&¨6°%¬=Ð9Ñ9Ô9Ð9r5   c                 ó   — dS )NÚcosinerR   rU   s    r3   Údefault_spacez%CustomEmbeddingFunction.default_spacem   s   € Øˆxr5   N)rC   )Ú__name__Ú
__module__Ú__qualname__ÚintrI   r   r
   r   rO   ÚstaticmethodÚstrrS   r   r   rV   rY   r	   r\   rR   r5   r3   rB   rB   Y   s  € € € € € ðð ˜Cð ð ð ð ð ÐÐ(Ñ)Ô)ð4˜jð 4¨Zð 4ð 4ð 4ñ *Ô)ð4ð ð�#ð ð ð ñ „\ðð"˜D  c œNð "ð "ð "ð "ð ð: $ s¨C x¤.ð :Ð5Nð :ð :ð :ñ „\ð:ð˜uð ð ð ð ð ð r5   rB   c                  ó  — t          ¦   «         } t          j        t          ¦  «        5 } | dg¦  «         d d d ¦  «         n# 1 swxY w Y   d}|› d�}t	          |j        ¦  «        |k    sJ ‚|j        j        |fk    sJ ‚d S )Nz	test datarM   z in custom_ef_call.)rB   ÚpytestÚraisesrN   rb   ÚvalueÚargs)rQ   ÚexcinfoÚoriginal_msgÚexpected_msgs       r3   Ú&test_validation_context_with_custom_efrk   q   sÏ   € Ý'Ñ)Ô)€Iå	Œ•yÑ	!Ô	!ð ! WØˆ	�;�-Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð .€LØ"Ð7Ð7Ð7€LÝˆwŒ}ÑÔ Ò-Ð-Ð-Ð-ØŒ=Ô , Ò0Ð0Ð0Ð0Ð0Ð0s   ¨AÁAÁA)r   N)Úchromadb.utilsr   Ú"chromadb.utils.embedding_functionsr   r   Útypingr   r   rd   Úchromadb.api.typesr   r	   r
   r   Ú$chromadb.api.models.CollectionCommonr   r4   r:   r@   rB   rk   rR   r5   r3   ú<module>rq      sS  ðØ .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð DÐ CÐ CÐ CÐ CÐ Cð/Cð /Cð /Cð /Cðdð ð ð ð	Sð 	Sð 	Sð 	Sð ðð ð ð ð Ð/°
Ô;ñ ô ñ Ôðð.	1ð 	1ð 	1ð 	1ð 	1ð 	1r5   