o
    im                     @   s   d dl mZmZmZ ddlmZmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlZG dd	 d	eee ZG d
d deee ZG dd deee Zdede
e defddZdS )   )ChatCompletionResponseChatCompletionChoiceAssistantMessage   )CustomPydanticModelpydantic_model_from_json    )ListOptionalTypeGeneric)	BaseModelNc                   @   s   e Zd ZU ee ed< dS )ParsedAssistantMessageparsedN)__name__
__module____qualname__r
   r   __annotations__ r   r   a/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/mistralai/extra/struct_chat.pyr      s   
 r   c                   @   s   e Zd ZU eee  ed< dS )ParsedChatCompletionChoicemessageN)r   r   r   r
   r   r   r   r   r   r   r   r   
   s   
 r   c                   @   s"   e Zd ZU eeee   ed< dS )ParsedChatCompletionResponsechoicesN)r   r   r   r
   r	   r   r   r   r   r   r   r   r      s   
 r   responseresponse_formatreturnc                 C   s   g }| j rc| j D ]Z}|jrTtdi |j dd i}t|jtr,tt	|j||_
n|jd u r5d |_
n
tdt|j | }||d< tdi |}|| qtdi | }|| q|  }||d< tdi |S )Nr   z%Unexpected type for message.content: r   r   r   )r   r   r   
model_dump
isinstancecontentstrr   jsonloadsr   	TypeErrortyper   appendr   )r   r   parsed_choiceschoiceparsed_messagechoice_dictparsed_choiceresponse_dictr   r   r   *convert_to_parsed_chat_completion_response   s.   

r,   )modelsr   r   r   utils.response_formatr   r   typingr	   r
   r   r   pydanticr   r!   r   r   r   r,   r   r   r   r   <module>   s    