o
    id                  
   @  s   d dl mZ d dlZd dlmZ d dl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 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 zd dlmZ W n eyk Z zededZ[ww G dd dee Z dS )    )annotationsN)overload)ModelProfile)	UserError)cached_async_http_client)deepseek_model_profile)harmony_model_profile)meta_model_profile)mistral_model_profile)OpenAIJsonSchemaTransformerOpenAIModelProfile)qwen_model_profile)Provider)AsyncOpenAIu   Please install the `openai` package to use OVHcloud AI Endpoints provider.You can use the `openai` optional group — `pip install "pydantic-ai-slim[openai]"`c                   @  s   e Zd ZdZed ddZed ddZed!d	d
Zd"ddZe	d#ddZ
e	d$ddZ
e	d%ddZ
e	ddd&ddZ
ddddd'ddZ
dS )(OVHcloudProviderz#Provider for OVHcloud AI Endpoints.returnstrc                 C     dS )Novhcloud selfr   r   d/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pydantic_ai/providers/ovhcloud.pyname      zOVHcloudProvider.namec                 C  r   )Nz0https://oai.endpoints.kepler.ai.cloud.ovh.net/v1r   r   r   r   r   base_url#   r   zOVHcloudProvider.base_urlr   c                 C  s   | j S N)_clientr   r   r   r   client'   s   zOVHcloudProvider.client
model_nameModelProfile | Nonec                 C  sR   |  }ttttttd}d }| D ]\}}||r ||}qtt	d
|S )N)llamazmeta-deepseekmistralgptqwen)json_schema_transformer)lowerr	   r   r
   r   r   items
startswithr   r   update)r   r   prefix_to_profileprofileprefixprofile_funcr   r   r   model_profile+   s   	
zOVHcloudProvider.model_profileNonec                 C     d S r   r   r   r   r   r   __init__?      zOVHcloudProvider.__init__api_keyc                C  r1   r   r   )r   r4   r   r   r   r2   B   r3   http_clienthttpx.AsyncClientc                C  r1   r   r   )r   r4   r5   r   r   r   r2   E   r3   N)openai_clientr7   AsyncOpenAI | Nonec                C  r1   r   r   )r   r7   r   r   r   r2   H   r3   )r4   r7   r5   
str | Nonehttpx.AsyncClient | Nonec                C  sr   |pt d}|s|d u rtd|d ur|| _d S |d ur)t| j||d| _d S tdd}t| j||d| _d S )NOVHCLOUD_API_KEYzSet the `OVHCLOUD_API_KEY` environment variable or pass it via `OVHcloudProvider(api_key=...)` to use OVHcloud AI Endpoints provider.)r   r4   r5   r   )provider)osgetenvr   r   r   r   r   )r   r4   r7   r5   r   r   r   r2   K   s   

)r   r   )r   r   )r   r   r   r    )r   r0   )r4   r   r   r0   )r4   r   r5   r6   r   r0   )r7   r8   r   r0   )r4   r9   r7   r8   r5   r:   r   r0   )__name__
__module____qualname____doc__propertyr   r   r   r/   r   r2   r   r   r   r   r      s*    
r   )!
__future__r   _annotationsr=   typingr   httpxpydantic_air   pydantic_ai.exceptionsr   pydantic_ai.modelsr   pydantic_ai.profiles.deepseekr   pydantic_ai.profiles.harmonyr   pydantic_ai.profiles.metar	   pydantic_ai.profiles.mistralr
   pydantic_ai.profiles.openair   r   pydantic_ai.profiles.qwenr   pydantic_ai.providersr   openair   ImportError_import_errorr   r   r   r   r   <module>   s2    