a
    bg
                     @   s   d dl mZmZmZmZmZ d dlmZ d dlm	Z	m
Z
 eedddZeedddZeeef ed	d
dZG dd deZG dd de
ZG dd de	ZdS )    )Any	AwaitableCallableDictOptional)UUID)AsyncCallbackHandlerBaseCallbackHandler)_inputreturnc                 C   s(   d}|d|  d 7 }t |}| dv S NzlDo you approve of the following input? Anything except 'Y'/'Yes' (case-insensitive) will be treated as a no.z


)yesyinputlowerr
   msgresp r   q/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/callbacks/human.py_default_approve   s
    r   c                    s(   d}|d|  d 7 }t |}| dv S r   r   r   r   r   r   _adefault_approve   s
    r   )_r   c                 C   s   dS )NTr   )r   r   r   r   _default_true   s    r   c                   @   s   e Zd ZdZdS )HumanRejectedExceptionzEException to raise when a person manually review and rejects a value.N)__name__
__module____qualname____doc__r   r   r   r   r      s   r   c                   @   sz   e Zd ZU dZdZeed< eefe	e
gef e	eee
f gef dddZddeee
f eeee e
e
d	d
dZdS )HumanApprovalCallbackHandlerz(Callback for manually validating values.Traise_errorapproveshould_checkc                 C   s   || _ || _d S N_approve_should_checkselfr$   r%   r   r   r   __init__(   s    z%HumanApprovalCallbackHandler.__init__Nparent_run_id
serialized	input_strrun_idr.   kwargsr   c                K   s.   |  |r*| |s*td| d| dd S NzInputs z	 to tool z were rejected.r)   r(   r   r+   r0   r1   r2   r.   r3   r   r   r   on_tool_start0   s    	z*HumanApprovalCallbackHandler.on_tool_start)r   r   r   r    r"   bool__annotations__r   r   r   r   r   strr,   r   r   r7   r   r   r   r   r!   #   s"   

r!   c                   @   s~   e Zd ZU dZdZeed< eefe	e
gee f e	eee
f gef dddZddeee
f eeee e
e
d	d
dZdS )!AsyncHumanApprovalCallbackHandlerz5Asynchronous callback for manually validating values.Tr"   r#   c                 C   s   || _ || _d S r&   r'   r*   r   r   r   r,   D   s    z*AsyncHumanApprovalCallbackHandler.__init__Nr-   r/   c                   s4   |  |r0| |I d H s0td| d| dd S r4   r5   r6   r   r   r   r7   L   s    	z/AsyncHumanApprovalCallbackHandler.on_tool_start)r   r   r   r    r"   r8   r9   r   r   r   r   r   r   r:   r,   r   r   r7   r   r   r   r   r;   ?   s"   

r;   N)typingr   r   r   r   r   uuidr   Zlangchain_core.callbacksr   r	   r:   r8   r   r   r   	Exceptionr   r!   r;   r   r   r   r   <module>   s   

