
    *`i                     >   U d dl mZ d dlmZmZmZmZmZ d dlm	Z	 de
eeee
eeeeeef         z  f                  z  f                  de
e         fdZde
eeef                  de
e	         fdZd	ee         d
ee         ddfdZdedefdZh dZee         ed<   dS )    )Any)AssistantMessageChatMessageSystemMessageToolMessageUserMessage)Toolmessagesreturnc                 d   g }| D ]}|                     d          }|dk    rt          j        |          }nc|dk    rt          j        |          }nH|dk    rt	          j        |          }n-|dk    rt          j        |          }nt          d|           |                    |           |S )zConvert OpenAI messages to Mistral messages.

    Args:
        messages: The OpenAI messages to convert.

    Returns:
        The Mistral messages.
    roleuser	assistanttoolsystemzUnknown message role: )getr   from_openair   r   r   
ValueErrorappend)r
   converted_messagesopenai_messagemessage_rolemessages        /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/mistral_common/protocol/instruct/converters.pyconvert_openai_messagesr      s     -/" + +%))&116!!!-n==GG[((&2>BBGGV##!-n==GGX%%#/??GGDlDDEEE!!'****    toolsc                     d | D             }|S )zConvert OpenAI tools to Mistral tools.

    Args:
        tools: The OpenAI tools to convert.

    Returns:
        The Mistral tools.
    c                 6    g | ]}t          j        |          S  )r	   r   ).0openai_tools     r   
<listcomp>z(convert_openai_tools.<locals>.<listcomp>5   s#    NNNt'44NNNr   r    )r   converted_toolss     r   convert_openai_toolsr%   *   s     ONNNNOr   valid_fields_namesnamesNc                     t                      }t                      }|D ];}|| v r|t          v r|                    |           &|                    |           <|s|rt          d| d|           dS )a  Check if the names are valid field names.

    Names are valid if they are inside the `valid_fields_names` set or chat completion OpenAI fields. If the names are
    not valid field names, raise a ValueError.

    The error message will contain the invalid field names sorted by if they are openAI valid field names or not.

    Args:
        valid_fields_names: The valid field names.
        names: The names to check.

    Raises:
        ValueError: If the names are not valid field names.
    z~Invalid parameters passed to `ChatCompletionRequest.from_openai`:
OpenAI valid parameters but not in `ChatCompletionRequest`: z
Non valid parameters: N)set_OPENAI_COMPLETION_FIELDSaddr   )r&   r'   openai_valid_paramsnon_valid_paramsnames        r   _check_openai_fields_namesr/   9   s      %%uu ' '%%%...##D))))  &&&& 
. 
8K^8 8%58 8
 
 	

 
r   r.   c                     | t           v S )N)r*   )r.   s    r   _is_openai_field_namer1   \   s    ,,,r   >#   nseedstopr   audiomodelstorer   top_pstreamtimeoutlogprobsr
   metadata	functions
extra_body
logit_bias
max_tokens
modalities
predictionextra_querytemperaturetool_choiceservice_tiertop_logprobsextra_headersfunction_callstream_optionsresponse_formatpresence_penaltyreasoning_effortfrequency_penaltyweb_search_optionsparallel_tool_callsmax_completion_tokensr*   )typingr   )mistral_common.protocol.instruct.messagesr   r   r   r   r   +mistral_common.protocol.instruct.tool_callsr	   listdictstrr   r%   r)   r/   boolr1   r*   __annotations__r    r   r   <module>rZ      s                       = < < < < <4S4S#S#X2F-F(G#HHHIJ	+   :S#X	$Z    
3s8  
CH  
QU  
  
  
  
F- - - - - -$' $' $' 3s8 $ $ $ $ $r   