
    im                         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	eee         Z G d
 deee         Z G d deee         Zdede
e   defdZy)   )ChatCompletionResponseChatCompletionChoiceAssistantMessage   )CustomPydanticModelpydantic_model_from_json    )ListOptionalTypeGeneric)	BaseModelNc                       e Zd ZU ee   ed<   y)ParsedAssistantMessageparsedN)__name__
__module____qualname__r   r   __annotations__     Y/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/mistralai/extra/struct_chat.pyr   r      s    ())r   r   c                   $    e Zd ZU eee      ed<   y)ParsedChatCompletionChoicemessageN)r   r   r   r   r   r   r   r   r   r   r   r   
   s    ,-@ABBr   r   c                   *    e Zd ZU eeee         ed<   y)ParsedChatCompletionResponsechoicesN)r   r   r   r   r
   r   r   r   r   r   r   r   r      s    d56IJKLLr   r   responseresponse_formatreturnc                    g }| j                   r | j                   D ]  }|j                  rt        di |j                  j                         dd i}t	        |j
                  t              r/t        t        j                  |j
                        |      |_
        n5|j
                  d |_
        n!t        dt        |j
                               |j                         }||d<   t        di |}|j                  |       t        di |j                         }|j                  |        | j                         }||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_dicts           r   *convert_to_parsed_chat_completion_responser2      s9   N&& 	5F~~9O :nn//1:: n44c:,DTZZP^PfPfEgix,yN)#++3,0N)#&KDQ_QgQgLhKi$jkk$//1)7I&<V<eYd<e%%m4 : QV=N=N=P Q%%m4%	5& '')M-M)'8-88r   )modelsr   r   r   utils.response_formatr   r   typingr
   r   r   r   pydanticr   r'   r   r   r   r2   r   r   r   <module>r7      s    S S Q 0 0  *-w7J/K *C!5w?R7S CM#97CV;W M99O 9bfgpbq 9  wS 9r   