o
    i                     @  s   d dl mZ d dlZd dlmZ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mZ d d
lmZ ed ZG dd dee	 ZdS )    )annotationsN)Literaloverload)AsyncOpenAI)ModelProfile)	UserError)cached_async_http_client)moonshotai_model_profile)OpenAIJsonSchemaTransformerOpenAIModelProfile)Provider)	zmoonshot-v1-8kzmoonshot-v1-32kzmoonshot-v1-128kzmoonshot-v1-8k-vision-previewzmoonshot-v1-32k-vision-previewzmoonshot-v1-128k-vision-previewzkimi-latestzkimi-thinking-previewzkimi-k2-0711-previewc                   @  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 )(MoonshotAIProviderz/Provider for MoonshotAI platform (Kimi models).returnstrc                 C     dS )N
moonshotai selfr   r   f/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pydantic_ai/providers/moonshotai.pyname#   s   zMoonshotAIProvider.namec                 C  r   )Nzhttps://api.moonshot.ai/v1r   r   r   r   r   base_url'   s   zMoonshotAIProvider.base_urlr   c                 C  s   | j S N)_clientr   r   r   r   client,   s   zMoonshotAIProvider.client
model_nameModelProfile | Nonec                 C  s   t |}ttddd|S )NFT)json_schema_transformer$openai_supports_tool_choice_requiredsupports_json_object_output)r	   r   r
   update)r   r   profiler   r   r   model_profile0   s   z MoonshotAIProvider.model_profileNonec                 C     d S r   r   r   r   r   r   __init__>      zMoonshotAIProvider.__init__api_keyc                C  r$   r   r   )r   r'   r   r   r   r%   A   r&   http_clienthttpx.AsyncClientc                C  r$   r   r   )r   r'   r(   r   r   r   r%   D   r&   N)openai_clientr*   AsyncOpenAI | Nonec                C  r$   r   r   )r   r*   r   r   r   r%   G   r&   )r'   r*   r(   
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MOONSHOTAI_API_KEYzSet the `MOONSHOTAI_API_KEY` environment variable or pass it via `MoonshotAIProvider(api_key=...)` to use the MoonshotAI provider.)r   r'   r(   r   )provider)osgetenvr   r   r   r   r   )r   r'   r*   r(   r   r   r   r%   J   s   

)r   r   )r   r   )r   r   r   r   )r   r#   )r'   r   r   r#   )r'   r   r(   r)   r   r#   )r*   r+   r   r#   )r'   r,   r*   r+   r(   r-   r   r#   )__name__
__module____qualname____doc__propertyr   r   r   r"   r   r%   r   r   r   r   r       s*    
r   )
__future__r   _annotationsr0   typingr   r   httpxopenair   pydantic_air   pydantic_ai.exceptionsr   pydantic_ai.modelsr   pydantic_ai.profiles.moonshotair	   pydantic_ai.profiles.openair
   r   pydantic_ai.providersr   MoonshotAIModelNamer   r   r   r   r   <module>   s    