
    <if                     <    S SK Jr  S SKJr  S SKJr   " S S5      rg)    )Any)models)NumericVectorc                       \ rS rSrSrS\SS4S jr  SS\S\\   S-  S	\	\\4   S-  S\S\
4
S
 jjr\S\S\4S j5       r\S\S\4S j5       r\S\S\4S j5       r\S\S\4S j5       r\S\S\4S j5       rSrg)BuiltinEmbedder   )zQdrant/Bm25kwargsreturnNc                     g )N )selfr	   s     ^/home/james-whalen/.local/lib/python3.13/site-packages/qdrant_client/embed/builtin_embedder.py__init__BuiltinEmbedder.__init__
   s        
model_nametextsoptionsc           	         Uc  SU;   a  [        S5      e[        S5      eU R                  U5      (       d&  [        SU SU R                  R                   S35      eU Vs/ s H  n[        R
                  " XSUS9PM     sn$ s  snf )NimageszDImage processing is only available with cloud inference of FastEmbedz(Texts must be provided for the inferencezModel z is not supported in zT. Did you forget to enable cloud inference or install FastEmbed for local inference?)textr   model)
ValueErroris_supported_sparse_model	__class____name__r   Document)r   r   r   r   r	   r   s         r   embedBuiltinEmbedder.embed   s     =6! Z  GHH--j99$9$..:Q:Q9R Se f 
 [``Z_RVT*MZ_```s    Bc                     gzMock embedder interface, only sparse text model Qdrant/Bm25 is supported

Args:
    model_name (str): The name of the model to check.

Returns:
    bool: True if the model is supported, False otherwise.
Fr   clsr   s     r   is_supported_text_model'BuiltinEmbedder.is_supported_text_model$        r   c                     gr!   r   r"   s     r   is_supported_image_model(BuiltinEmbedder.is_supported_image_model0   r&   r   c                     gr!   r   r"   s     r   (is_supported_late_interaction_text_model8BuiltinEmbedder.is_supported_late_interaction_text_model<   r&   r   c                     gr!   r   r"   s     r   .is_supported_late_interaction_multimodal_model>BuiltinEmbedder.is_supported_late_interaction_multimodal_modelH   r&   r   c                     UR                  5       U R                   Vs/ s H  o"R                  5       PM     sn;   $ s  snf )zChecks if the model is supported. Only `Qdrant/Bm25` is supported

Args:
    model_name (str): The name of the model to check.

Returns:
    bool: True if the model is supported, False otherwise.
)lower_SUPPORTED_MODELS)r#   r   r   s      r   r   )BuiltinEmbedder.is_supported_sparse_modelT   s6     !AVAV%WAVkkmAV%WWW%Ws   <r   )NN)r   
__module____qualname____firstlineno__r2   r   r   strlistdictr   r   classmethodboolr$   r(   r+   r.   r   __static_attributes__r   r   r   r   r      s#   (   #')-	aa Cy4a c3h$&	a
 a 
a. 	 	 	 	 	# 	$ 	 	 	# 	$ 	 	 	 	PT 	 	 	X3 	X4 	X 	Xr   r   N)typingr   qdrant_client.httpr   qdrant_client.embed.modelsr   r   r   r   r   <module>r@      s     % 4WX WXr   