o
    iq                  
   @  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 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yq Z zededZ[ww G dd dee Z dS )    )annotationsN)overload)AsyncOpenAI)ModelProfile)	UserError)cached_async_http_client)deepseek_model_profile)google_model_profile)meta_model_profile)mistral_model_profile)OpenAIJsonSchemaTransformerOpenAIModelProfile)qwen_model_profile)Provideru   Please install the `openai` package to use the Together AI 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 )(TogetherProviderzProvider for Together AI API.returnstrc                 C     dS )Ntogether selfr   r   d/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pydantic_ai/providers/together.pyname       zTogetherProvider.namec                 C  r   )Nzhttps://api.together.xyz/v1r   r   r   r   r   base_url$   r   zTogetherProvider.base_urlr   c                 C  s   | j S N)_clientr   r   r   r   client(   s   zTogetherProvider.client
model_nameModelProfile | Nonec                 C  sP   t ttttd}d }| }|dd\}}||v r || |}ttd	|S )N)zdeepseek-aigoogleqwenz
meta-llama	mistralai/   )json_schema_transformer)
r   r	   r   r
   r   lowersplitr   r   update)r   r   provider_to_profileprofileproviderr   r   r   model_profile,   s   zTogetherProvider.model_profileNonec                 C     d S r   r   r   r   r   r   __init__@      zTogetherProvider.__init__api_keyc                C  r/   r   r   )r   r2   r   r   r   r0   C   r1   http_clienthttpx.AsyncClientc                C  r/   r   r   )r   r2   r3   r   r   r   r0   F   r1   N)openai_clientr5   AsyncOpenAI | Nonec                C  r/   r   r   )r   r5   r   r   r   r0   I   r1   )r2   r5   r3   
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TOGETHER_API_KEYz~Set the `TOGETHER_API_KEY` environment variable or pass it via `TogetherProvider(api_key=...)`to use the Together AI provider.)r   r2   r3   r   )r,   )osgetenvr   r   r   r   r   )r   r2   r5   r3   r   r   r   r0   L   s   

)r   r   )r   r   )r   r   r   r    )r   r.   )r2   r   r   r.   )r2   r   r3   r4   r   r.   )r5   r6   r   r.   )r2   r7   r5   r6   r3   r8   r   r.   )__name__
__module____qualname____doc__propertyr   r   r   r-   r   r0   r   r   r   r   r      s*    
r   )!
__future__r   _annotationsr:   typingr   httpxopenair   pydantic_air   pydantic_ai.exceptionsr   pydantic_ai.modelsr   pydantic_ai.profiles.deepseekr   pydantic_ai.profiles.googler	   pydantic_ai.profiles.metar
   pydantic_ai.profiles.mistralr   pydantic_ai.profiles.openair   r   pydantic_ai.profiles.qwenr   pydantic_ai.providersr   ImportError_import_errorr   r   r   r   r   <module>   s4    