ó
    ±"³j—  ã                   óV   • S SK JrJr  S SKJr  SSKJrJr  SSKJ	r	J
r
   " S S\5      rg)	é    )ÚABCÚabstractmethod)ÚSequenceé   )ÚEmbeddingResultÚEmbedInputType)ÚEmbeddingSettingsÚmerge_embedding_settingsc            
       óp  • \ rS rSr% SrSr\S-  \S'   SS.S\S-  SS4S jjr\	S\S-  4S	 j5       r
\	S\S-  4S
 j5       r\	\S\4S j5       5       r\	\S\4S j5       5       r\SS.S\\\   -  S\S\S-  S\4S jj5       r SS\\\   -  S\S-  S\\\   \4   4S jjrS\S-  4S jrS\S\4S jrSrg)ÚEmbeddingModelé   aY  Abstract base class for embedding models.

Implement this class to create a custom embedding model. For most use cases,
use one of the built-in implementations:

- [`OpenAIEmbeddingModel`][pydantic_ai.embeddings.openai.OpenAIEmbeddingModel]
- [`CohereEmbeddingModel`][pydantic_ai.embeddings.cohere.CohereEmbeddingModel]
- [`GoogleEmbeddingModel`][pydantic_ai.embeddings.google.GoogleEmbeddingModel]
- [`BedrockEmbeddingModel`][pydantic_ai.embeddings.bedrock.BedrockEmbeddingModel]
- [`SentenceTransformerEmbeddingModel`][pydantic_ai.embeddings.sentence_transformers.SentenceTransformerEmbeddingModel]
NÚ	_settings)Úsettingsr   Úreturnc                ó   • Xl         g)zˆInitialize the model with optional settings.

Args:
    settings: Model-specific settings that will be used as defaults for this model.
N©r   )Úselfr   s     ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/embeddings/base.pyÚ__init__ÚEmbeddingModel.__init__   s	   € ð "�ó    c                 ó   • U R                   $ )z(Get the default settings for this model.r   ©r   s    r   r   ÚEmbeddingModel.settings#   s   € ð �~‰~Ðr   c                 ó   • g)z0The base URL for the provider API, if available.N© r   s    r   Úbase_urlÚEmbeddingModel.base_url(   s   € ð r   c                 ó   • [        5       e)z The name of the embedding model.©ÚNotImplementedErrorr   s    r   Ú
model_nameÚEmbeddingModel.model_name-   ó   € ô "Ó#Ð#r   c                 ó   • [        5       e)zJThe embedding model provider/system identifier (e.g., 'openai', 'cohere').r    r   s    r   ÚsystemÚEmbeddingModel.system3   r$   r   ÚinputsÚ
input_typec             ƒ   ó   #   • [         e7f)af  Generate embeddings for the given inputs.

Args:
    inputs: A single string or sequence of strings to embed.
    input_type: Whether the inputs are queries or documents.
    settings: Optional settings to override the model's defaults.

Returns:
    An [`EmbeddingResult`][pydantic_ai.embeddings.EmbeddingResult] containing
    the embeddings and metadata.
r    )r   r(   r)   r   s       r   ÚembedÚEmbeddingModel.embed9   s   é € ô "Ð!ùó   ‚	c                 óŒ   • [        U[        5      (       a  U/O
[        U5      n[        U R                  U5      =(       d    0 nX4$ )ap  Prepare the inputs and settings for embedding.

This method normalizes inputs to a list and merges settings.
Subclasses should call this at the start of their `embed()` implementation.

Args:
    inputs: A single string or sequence of strings.
    settings: Optional settings to merge with defaults.

Returns:
    A tuple of (normalized inputs list, merged settings).
)Ú
isinstanceÚstrÚlistr
   r   )r   r(   r   s      r   Úprepare_embedÚEmbeddingModel.prepare_embedJ   s;   € ô (¨´×4Ñ4�&‘¼$¸v»,ˆä+¨D¯N©N¸HÓE×KÈˆàÐÐr   c              ƒ   ó   #   • g7f)z~Get the maximum number of tokens that can be input to the model.

Returns:
    The maximum token count, or `None` if unknown.
Nr   r   s    r   Úmax_input_tokensÚEmbeddingModel.max_input_tokens_   s
   é € ð ùs   ‚Útextc              ƒ   ó   #   • [         e7f)a  Count the number of tokens in the given text.

Args:
    text: The text to tokenize and count.

Returns:
    The number of tokens.

Raises:
    NotImplementedError: If the model doesn't support token counting.
    UserError: If the model or tokenizer is not supported.
r    )r   r7   s     r   Úcount_tokensÚEmbeddingModel.count_tokensg   s   é € ô "Ð!ùr-   r   )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r	   Ú__annotations__r   Úpropertyr   r0   r   r   r"   r&   r   r   r   r+   Útupler1   r2   Úintr5   r9   Ú__static_attributes__r   r   r   r   r      sl  ‡ ñ
ð +/€IÐ  4Ñ'Ó.ð
 .2ò
"ð $ dÑ*ð
"ð 
õ	
"ð ðÐ+¨dÑ2ó ó ðð ð˜# ™*ó ó ðð Øð$˜Có $ó ó ð$ð Øð$˜ó $ó ó ð$ð àosò"Ø˜H S™MÑ)ð"Ø:Hð"ØTeÐhlÑTlð"à	ô"ó ð"ð" QUñ Ø˜H S™MÑ)ð Ø5FÈÑ5Mð à	ˆt�C‰yÐ+Ð+Ñ	,õ ð*¨¨d©
ô ð" sð "¨s÷ "r   r   N)Úabcr   r   Úcollections.abcr   Úresultr   r   r   r	   r
   r   r   r   r   Ú<module>rH      s   ðß #Ý $ç 3ß Aôl"�Sõ l"r   