
    hc                     <    d dl mZmZmZ erd dlmZ  G d d      Zy)    )TYPE_CHECKINGListOptional)AllMessageValuesc                   ,    e Zd ZdZded   dee   fdZy)OpenAIGuardrailBasez+
    Base class for OpenAI guardrails.
    messagesr   returnc                 
   ddl m} |syg }t        |      D ])  }|j                  d      dk(  r|j	                  |       ) n |sy|j                          d}|D ]  } ||      }||dz   z  } |j                         }|r|S dS )a  
        Get the last consecutive block of messages from the user.

        Example:
        messages = [
            {"role": "user", "content": "Hello, how are you?"},
            {"role": "assistant", "content": "I'm good, thank you!"},
            {"role": "user", "content": "What is the weather in Tokyo?"},
        ]
        get_user_prompt(messages) -> "What is the weather in Tokyo?"
        r   )convert_content_list_to_strNroleuser 
)8litellm.litellm_core_utils.prompt_templates.common_utilsr   reversedgetappendreversestrip)selfr	   r   user_messagesmessageuser_prompttext_contentresults           p/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/guardrails/guardrail_hooks/openai/base.pyget_user_promptz#OpenAIGuardrailBase.get_user_prompt   s    	
  )G{{6"f,$$W-  *  	$G6w?L<$..K % ""$v)T)    N)__name__
__module____qualname____doc__r   r   strr    r   r   r   r      s$    (*-?(@ (*Xc] (*r   r   N)typingr   r   r   litellm.types.llms.openair   r   r%   r   r   <module>r(      s    0 0:-* -*r   