Ë
    µŒj”  ã                   ó–   — d dl Z d dlmZmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ  e j                  e«      Zdedefd„Z G d	„ d
e
«      Zy)é    N)ÚAnyÚCallableÚDictÚListÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)Úmodel_validatorÚ	violationÚreturnc                 ó˜   — | j                  d«      r| d   S | j                  d«      rd| j                  d«      › �nd}t        |› d�«      ‚)z˜Default guardrail violation handler.

    Args:
        violation (dict): The violation dictionary.

    Returns:
        str: The canned response.
    Úcanned_responseÚoffending_guardrailz
Guardrail zA guardrailz; was violated without a proper guardrail violation handler.)ÚgetÚ
ValueError)r   Úguardrail_names     ús/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/layerup_security.pyÚ#default_guardrail_violation_handlerr      sf   € ð ‡}�}Ð&Ô'ØÐ*Ñ+Ð+ð �=‰=Ð.Ô/ð �Y—]‘]Ð#8Ó9Ð:Ñ;àð ô
 ØÐ
ÐUÐVóð ó    c                   óX  — e Zd ZU dZeed<   eed<   dZeed<   g Ze	e
e      ed<   g Ze	e
e      ed<   dZeed	<   i Ze	eeef      ed
<   eZeegef   ed<   eZeegef   ed<   eed<    ed¬«      edeeef   defd„«       «       Zedefd„«       Z	 	 ddede	e
e      de	e   dedef
d„Zy)ÚLayerupSecurityzLayerup Security LLM service.ÚllmÚlayerup_api_keyzhttps://api.uselayerup.com/v1Úlayerup_api_base_urlÚprompt_guardrailsÚresponse_guardrailsFÚmaskÚmetadataÚ!handle_prompt_guardrail_violationÚ#handle_response_guardrail_violationÚclientÚbefore)ÚmodeÚvaluesr   c                 ój   — 	 ddl m}  ||d   |d   ¬«      |d<   |S # t        $ r t        d«      ‚w xY w)Nr   )r   r   r   )Úapi_keyÚbase_urlr!   z[Could not import LayerupSecurity SDK. Please install it with `pip install LayerupSecurity`.)Úlayerup_securityr   ÚImportError)Úclsr$   ÚLayerupSecuritySDKs      r   Úvalidate_layerup_sdkz$LayerupSecurity.validate_layerup_sdk2   sV   € ð	ÝNá1ØÐ0Ñ1ØÐ 6Ñ7ô ˆF�8Ñð ˆøô ò 	ÜðHóð ð	ús   ‚ �2c                  ó   — y)Nr(   © )Úselfs    r   Ú	_llm_typezLayerupSecurity._llm_typeC   s   € à!r   NÚpromptÚstopÚrun_managerÚkwargsc                 ón  — d|dœg}d }| j                   r)| j                  j                  || j                  «      \  }}| j                  rH| j                  j                  | j                  ||| j                  «      }|d   s| j                  |«      S  | j                  j                  |d   d   fd|i|¤Ž}| j                   r
|r ||«      }|j                  d|dœ«       | j                  rH| j                  j                  | j                  ||| j                  «      }|d   s| j                  |«      S |S )NÚuser)ÚroleÚcontentÚall_safer   r8   r3   Ú	assistant)r   r!   Úmask_promptr   r   Úexecute_guardrailsr   r   Ú_callÚappendr   r    )	r/   r1   r2   r3   r4   ÚmessagesÚunmask_responseÚsecurity_responseÚresults	            r   r=   zLayerupSecurity._callG   s1  € ð $°Ñ7Ð8ˆØˆà�9Š9Ø(,¯©×(?Ñ(?ÀÈ$Ï-É-Ó(XÑ%ˆH�oà×!Ò!Ø $§¡× >Ñ >Ø×&Ñ&¨°&¸$¿-¹-ó!Ðð % ZÒ0Ø×=Ñ=Ð>OÓPÐPà�—‘—‘Ø�Q‰K˜	Ñ"ñ
Ø0;ð
Ø?Eñ
ˆð �9Š9™Ù$ VÓ,ˆFà�‰ ¸Ñ@ÔAà×#Ò#Ø $§¡× >Ñ >Ø×(Ñ(¨(°F¸D¿M¹Mó!Ðð % ZÒ0Ø×?Ñ?Ð@QÓRÐRàˆr   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   Ú__annotations__Ústrr   r   r   r   r   r   Úboolr   r   r   r   r   r   Údictr    r
   Úclassmethodr,   Úpropertyr0   r   r=   r.   r   r   r   r       s=  … Ù'à	ƒHØÓØ ?Ð˜#Ó?Ø-/Ð�x  S¡	Ñ*Ó/Ø/1Ð˜ $ s¡)Ñ,Ó1Ø€Dˆ$ÓØ)+€Hˆh�t˜C ˜H‘~Ñ&Ó+à+ð & x°°¸°Ñ'<ó ð 	,ð (¨°4°&¸#°+Ñ)>ó ð ƒKá˜(Ô#Øð¨$¨s°C¨x©.ð ¸Sò ó ó $ðð ð"˜3ò "ó ð"ð %)Ø:>ñ	$àð$ð �t˜C‘yÑ!ð$ð Ð6Ñ7ð	$ð
 ð$ð 
ô$r   r   )ÚloggingÚtypingr   r   r   r   r   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úpydanticr
   Ú	getLoggerrC   ÚloggerrJ   rH   r   r   r.   r   r   Ú<module>rT      sJ   ðÛ ß 6Õ 6å =Ý 3Ý $à	ˆ×	Ñ	˜8Ó	$€ð°4ð ¸Có ô*K�cõ Kr   