§
    ¦ìNg`
  ã                  óª   — d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ  ej        e¦  «        Z G d„ de	¦  «        Z G d	„ d
e¦  «        ZdS )é    )ÚannotationsN)ÚOptionalÚType)ÚCallbackManagerForToolRun)Ú	BaseModelÚField)Ú
EdenaiToolc                  ó2   — e Zd ZU  ed¬¦  «        Zded<   dS )ÚTextModerationInputzText to moderate)ÚdescriptionÚstrÚqueryN)Ú__name__Ú
__module__Ú__qualname__r   r   Ú__annotations__© ó    úl/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/edenai/text_moderation.pyr   r      s1   € € € € € € ØÐ#5Ð6Ñ6Ô6€EÐ6Ð6Ð6Ñ6Ð6Ð6r   r   c                  óx   — e Zd ZU dZdZded<   dZded<   eZded<   ded	<   d
Z	ded<   dZ
ded<   dd„Z	 ddd„ZdS )ÚEdenAiTextModerationToolai  Tool that queries the Eden AI Explicit text detection.

    for api reference check edenai documentation:
    https://docs.edenai.co/reference/image_explicit_content_create.

    To use, you should have
    the environment variable ``EDENAI_API_KEY`` set with your API token.
    You can find your token here: https://app.edenai.run/admin/account/settings

    Ú&edenai_explicit_content_detection_textr   Únameað  A wrapper around edenai Services explicit content detection for text. Useful for when you have to scan text for offensive, 
        sexually explicit or suggestive content,
        it checks also if there is any content of self-harm,
        violence, racist or hate speech.the structure of the output is : 
        'the type of the explicit content : the likelihood of it being explicit'
        the likelihood is a number 
        between 1 and 5, 1 being the lowest and 5 the highest.
        something is explicit if the likelihood is equal or higher than 3.
        for example : 
        nsfw_likelihood: 1
        this is not explicit.
        for example : 
        nsfw_likelihood: 3
        this is explicit.
        Input should be a string.r   zType[BaseModel]Úargs_schemaÚlanguageÚtextÚfeatureÚ
moderationÚ
subfeatureÚresponseÚlistÚreturnc           
     óP  — g }|D ]}d|                      ¦   «         v r+|                     dt          |d         ¦  «        z   ¦  «         t          |d         |d         ¦  «        D ]-\  }}|                     d|› dt          |¦  «        › ¦  «         Œ.ŒŽd                     |¦  «        S )NÚnsfw_likelihoodznsfw_likelihood: ÚlabelÚ
likelihoodú"z": ú
)ÚkeysÚappendr   ÚzipÚjoin)Úselfr    Úformatted_resultÚresultr%   r&   s         r   Ú_parse_responsez(EdenAiTextModerationTool._parse_response:   sÎ   € ØÐØð 	Ið 	IˆFØ  F§K¢K¡M¤MÐ1Ð1Ø ×'Ò'Ø'­#¨fÐ5FÔ.GÑ*HÔ*HÑHñô ð õ &)¨°¬¸&ÀÔ:NÑ%OÔ%Oð Ið IÑ!zØ ×'Ò'Ð(G¨EÐ(GÐ(Gµc¸*±o´oÐ(GÐ(GÑHÔHÐHÐHðIð yŠyÐ)Ñ*Ô*Ð*r   Nr   Úrun_managerú#Optional[CallbackManagerForToolRun]c                ó@   — || j         dœ}|                      |¦  «        S )zUse the tool.)r   r   )r   Ú_call_eden_ai)r-   r   r1   Úquery_paramss       r   Ú_runzEdenAiTextModerationTool._runG   s'   € ð !&°4´=ÐAÐAˆØ×!Ò! ,Ñ/Ô/Ð/r   )r    r!   r"   r   )N)r   r   r1   r2   r"   r   )r   r   r   Ú__doc__r   r   r   r   r   r   r   r0   r6   r   r   r   r   r      sÂ   € € € € € € ð	ð 	ð 9€DÐ8Ð8Ð8Ñ8ð	$ð ð ð ð ñ ð( $7€KÐ6Ð6Ð6Ñ6à€M€MMà€GÐÐÐÑØ"€JÐ"Ð"Ð"Ñ"ð+ð +ð +ð +ð  <@ð0ð 0ð 0ð 0ð 0ð 0ð 0r   r   )Ú
__future__r   ÚloggingÚtypingr   r   Úlangchain_core.callbacksr   Úpydanticr   r   Ú1langchain_community.tools.edenai.edenai_base_toolr	   Ú	getLoggerr   Úloggerr   r   r   r   r   ú<module>r@      sä   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à >Ð >Ð >Ð >Ð >Ð >Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à HÐ HÐ HÐ HÐ HÐ Hà	ˆÔ	˜8Ñ	$Ô	$€ð7ð 7ð 7ð 7ð 7˜)ñ 7ô 7ð 7ð<0ð <0ð <0ð <0ð <0˜zñ <0ô <0ð <0ð <0ð <0r   