Team Ai
Apppublic

SHUBHAMOS/meta-pytorch-hackathon

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes
reward.cpython-313.pyc52 linesDownload Raw Back to __pycache__
1�

2h��ig��H�SrSSKJr SSKJrJr SSKJrJr "SS5r	g)	u+3SHUBHAMOS: AI Email Operations & Triage Environment4reward.py — Dense reward engine (Phase 2)5 6Computes step-level rewards based on agent actions vs. ground truth labels.7Attached to EmailTriageEnv via env.attach_reward_engine(RewardEngine()).8 9Reward design:10  Positive signals (agent did something correct):11    +0.3  — correct category classification12    +0.3  — correct priority assignment13    +0.5  — email resolved successfully14    +0.4  — urgent complaint resolved (bonus)15    +0.1  — relevant reply drafted for billing/urgent16 17  Negative signals (agent did something wrong):18    -0.2  — wrong category19    -0.2  — wrong priority20    -0.5  — urgent complaint ignored21    -0.3  — spam resolved (wasted effort — should be ignored)22    -0.01 — per-step cost (encourages efficiency)23�)�annotations)�List�Optional�)�Action�Emailc��\rSrSrSrSrSrSrSrSr	Sr24SrSrS	r
S25rSSjrSSjrSS
jrSSjrSSjrSSjr\SSj5rSrg)�RewardEngine�zr26Stateless step-level reward calculator.27 28Usage:29    engine = RewardEngine()30    env.attach_reward_engine(engine)31g333333�?g������ɿg�?g�������?g�g333333ӿg�������?g{�G�z��c���URnURX!R5nUcU$URS:XaX0R	X5-
nO�URS:XaX0RX5-
nOkURS:XaX0R
U5-
nOGURS:XaX0RU5-
nO#URS:XaX0RU5-
n[US5$)z�32Calculate the reward for a single action.33 34Args:35    action: the action just dispatched36    emails: the full email list (with ground truth)37 38Returns:39    float reward value (may be positive, negative, or zero)40�classify_email�set_priority�
mark_resolved�ignore_email�draft_reply�)41�	STEP_COST�_find�email_id�action_type�_score_classify�_score_priority�_score_resolve�
_score_ignore�_score_reply�round)�self�action�emails�reward�targets     �server/reward.py�score_action�RewardEngine.score_action9s����������F�O�O�4���>��M����!1�1��*�*�6�:�:�F�
�
�
�>�
1��*�*�6�:�:�F�
�
�
�?�
2��)�)�&�1�1�F�
�
�
�>�
1��(�(��0�0�F�
�
�
�=�
0��'�'��/�/�F�42�V�Q���c�f�URUR:XaUR$UR$�N)�category�gt_category�CORRECT_CATEGORY�WRONG_CATEGORY�rr�emails   r"r�RewardEngine._score_classify`s,���?�?�e�/�/�/��(�(�(��"�"�"r%c�f�URUR:XaUR$UR$r')�level�gt_priority�CORRECT_PRIORITY�WRONG_PRIORITYr,s   r"r�RewardEngine._score_priorityes,���<�<�5�,�,�,��(�(�(��"�"�"r%c���URnURS:XaUR$URS:XaX R-
nURS;aUR(aX R43-
nU$)N�spam�urgent_complaint��
billing_issuer7)�
RESOLVE_BONUSr)�RESOLVE_SPAM_PENALTY�URGENT_RESOLVE_BONUS�
reply_drafted�REPLY_BONUS)rr-�rs   r"r�RewardEngine._score_resolvejst����������&��,�,�,���� 2�2�
�*�*�*�A���� E�E�%�J]�J]�
�!�!�!�A��r%c�^�URS:XaUR$URS:Xagg)Nr7r6g�������?�)r)�IGNORE_URGENT_PENALTY�rr-s  r"r�RewardEngine._score_ignore{s1����� 2�2��-�-�-�����&��r%c�<�URS;aUR$g)Nr8rB)r)r>rDs  r"r�RewardEngine._score_reply�s ����� E�E��#�#�#�r%c�>�UHnURU:XdMUs $ gr')�id)rr�es   r"r�RewardEngine._find�s"���A��t�t�x�����r%�N)rrr�List[Email]�return�float)rrr-rrNrO)r-rrNrO)rrMr�strrNzOptional[Email])�__name__�44__module__�__qualname__�__firstlineno__�__doc__r*r+r2r3r:r<rCr;r>rr#rrrrr�staticmethodr�__static_attributes__rLr%r"r45r46ss������N����N��M� ��!�� ���K��I�# �N#�47#�48�"�����r%r49N)50rU�51__future__r�typingrr�modelsrrr52rLr%r"�<module>r[s!���.#�!�!�r�rr%