o
    i                  
   @  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 Fireworks 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 )(FireworksProviderzProvider for Fireworks AI API.returnstrc                 C     dS )N	fireworks selfr   r   e/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pydantic_ai/providers/fireworks.pyname       zFireworksProvider.namec                 C  r   )Nz%https://api.fireworks.ai/inference/v1r   r   r   r   r   base_url$   r   zFireworksProvider.base_urlr   c                 C  s   | j S N)_clientr   r   r   r   client(   s   zFireworksProvider.client
model_nameModelProfile | Nonec                 C  sj   t ttttd}d}d }||r-|t|d  }| D ]\}}||r,||} nqtt	d
|S )N)llamaqwendeepseekmistralgemmazaccounts/fireworks/models/)json_schema_transformer)r
   r   r   r   r	   
startswithlenitemsr   r   update)r   r   prefix_to_profileprefixprofileproviderprofile_funcr   r   r   model_profile,   s    

zFireworksProvider.model_profileNonec                 C     d S r   r   r   r   r   r   __init__C      zFireworksProvider.__init__api_keyc                C  r2   r   r   )r   r5   r   r   r   r3   F   r4   http_clienthttpx.AsyncClientc                C  r2   r   r   )r   r5   r6   r   r   r   r3   I   r4   N)openai_clientr8   AsyncOpenAI | Nonec                C  r2   r   r   )r   r8   r   r   r   r3   L   r4   )r5   r8   r6   
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FIREWORKS_API_KEYzSet the `FIREWORKS_API_KEY` environment variable or pass it via `FireworksProvider(api_key=...)`to use the Fireworks AI provider.)r   r5   r6   r   )r.   )osgetenvr   r   r   r   r   )r   r5   r8   r6   r   r   r   r3   O   s   

)r   r   )r   r   )r   r   r   r    )r   r1   )r5   r   r   r1   )r5   r   r6   r7   r   r1   )r8   r9   r   r1   )r5   r:   r8   r9   r6   r;   r   r1   )__name__
__module____qualname____doc__propertyr   r   r   r0   r   r3   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    