§
    è˜ºhü  ã                   ón   — d Z ddlmZmZmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ  G d„ de¦  «        Zd	S )
z)Pass input through a moderation endpoint.é    )ÚAnyÚDictÚListÚOptional)Úroot_validator)ÚCallbackManagerForChainRun)ÚChain)Úget_from_dict_or_envc            	       ór  — e Zd ZU dZeed<   dZee         ed<   	 dZ	e
ed<   	 dZeed<   d	Zeed
<   dZee         ed<   dZee         ed<    e¦   «         dedefd„¦   «         Zedee         fd„¦   «         Zedee         fd„¦   «         Zdededefd„Z	 ddeeef         dee         deeef         fd„ZdS )ÚOpenAIModerationChainaé  Pass input through a moderation endpoint.

    To use, you should have the ``openai`` python package installed, and the
    environment variable ``OPENAI_API_KEY`` set with your API key.

    Any parameters that are valid to be passed to the openai.create call can be passed
    in, even if not explicitly saved on this class.

    Example:
        .. code-block:: python

            from langchain.chains import OpenAIModerationChain
            moderation = OpenAIModerationChain()
    ÚclientNÚ
model_nameFÚerrorÚinputÚ	input_keyÚoutputÚ
output_keyÚopenai_api_keyÚopenai_organizationÚvaluesÚreturnc                 óÈ   — t          |dd¦  «        }t          |ddd¬¦  «        }	 ddl}||_        |r||_        |j        |d	<   n# t
          $ r t          d
¦  «        ‚w xY w|S )z?Validate that api key and python package exists in environment.r   ÚOPENAI_API_KEYr   ÚOPENAI_ORGANIZATIONÚ )Údefaultr   Nr   zTCould not import openai python package. Please install it with `pip install openai`.)r
   ÚopenaiÚapi_keyÚorganizationÚ
ModerationÚImportError)Úclsr   r   r   r   s        úc/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain/chains/moderation.pyÚvalidate_environmentz*OpenAIModerationChain.validate_environment%   s­   € õ .ØÐ$Ð&6ñ
ô 
ˆõ 3ØØ!Ø!Øð	
ñ 
ô 
Ðð	ØˆMˆMˆMà+ˆFŒNØ"ð :Ø&9�Ô#Ø%Ô0ˆF�8ÑÐøÝð 	ð 	ð 	Ýð?ñô ð ð	øøøð
 ˆs   ¦A ÁAc                 ó   — | j         gS )z2Expect input key.

        :meta private:
        )r   ©Úselfs    r#   Ú
input_keysz OpenAIModerationChain.input_keys?   s   € ð ”ÐÐó    c                 ó   — | j         gS )z3Return output key.

        :meta private:
        )r   r&   s    r#   Úoutput_keysz!OpenAIModerationChain.output_keysG   s   € ð ”Ð Ð r)   ÚtextÚresultsc                 óJ   — |d         rd}| j         rt          |¦  «        ‚|S |S )NÚflaggedz5Text was found that violates OpenAI's content policy.)r   Ú
ValueError)r'   r,   r-   Ú	error_strs       r#   Ú	_moderatezOpenAIModerationChain._moderateO   s7   € Ø�9Ôð 	!ØOˆIØŒzð !Ý  Ñ+Ô+Ð+à Ð Øˆr)   ÚinputsÚrun_managerc                 ó¦   — || j                  }| j                             |¦  «        }|                      ||d         d         ¦  «        }| j        |iS )Nr-   r   )r   r   Úcreater2   r   )r'   r3   r4   r,   r-   r   s         r#   Ú_callzOpenAIModerationChain._callX   sO   € ð
 �d”nÔ%ˆØ”+×$Ò$ TÑ*Ô*ˆØ—’  g¨iÔ&8¸Ô&;Ñ<Ô<ˆØ” Ð(Ð(r)   )N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   Ústrr   Úboolr   r   r   r   r   r   r$   Úpropertyr   r(   r+   Údictr2   r   r7   © r)   r#   r   r      s£  € € € € € € ðð ð €K€K�KØ $€J�˜”Ð$Ð$Ñ$Ø'Ø€Eˆ4ÐÐÑØ;Ø€IˆsÐÐÑØ€J�ÐÐÑØ$(€N�H˜S”MÐ(Ð(Ñ(Ø)-Ð˜ #œÐ-Ð-Ñ-à€^ÑÔð¨$ð °4ð ð ð ñ Ôðð2 ð ˜D œIð  ð  ð  ñ „Xð ð ð!˜T #œYð !ð !ð !ñ „Xð!ð˜cð ¨Dð °Sð ð ð ð ð =Að)ð )à�S˜#�X”ð)ð Ð8Ô9ð)ð 
ˆc�3ˆhŒð	)ð )ð )ð )ð )ð )r)   r   N)r;   Útypingr   r   r   r   Úlangchain_core.pydantic_v1r   Úlangchain.callbacks.managerr   Úlangchain.chains.baser	   Úlangchain.utilsr
   r   rA   r)   r#   ú<module>rG      sµ   ðØ /Ð /Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à 5Ð 5Ð 5Ð 5Ð 5Ð 5à BÐ BÐ BÐ BÐ BÐ BØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðU)ð U)ð U)ð U)ð U)˜Eñ U)ô U)ð U)ð U)ð U)r)   