Team Ai
Apppublic

SHUBHAMOS/meta-pytorch-hackathon

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

2��i�����SrSSKJr SSKJr SSKJrJrJrJrJ	r	 SSK3JrJr \Sr
\Sr\Sr\S	r"S4S\5r"SS
\5r"SS\5r"SS\5r"SS\5r"SS\5rg)u5SHUBHAMOS: AI Email Operations & Triage Environment6models.py — All typed Pydantic v2 data models7 8These models define the data contract between environment, agents, and graders.9- Email: full internal representation with ground truth labels10- ObservationEmail: agent-facing truncated view (no ground truth)11- Action: structured agent action with type dispatch12- Observation: what the agent receives each step13- State: full internal state (includes ground truth, used by graders)14- StepInfo: per-step metadata15�)�annotations)�datetime)�Literal�Optional�List�Dict�Any)�	BaseModel�Field)�spam�general_inquiry�
billing_issue�urgent_complaint�tech_support)�low�medium�high�unknown)�positive�neutral�negative)�classify_email�set_priority�draft_reply�
mark_resolved�escalate_email�ignore_emailc��\rSrSr%Sr\"SSS9rS\S'\"SSS9rS\S	'\"SS16S9r	S\S'\"SSS9r17S\S
'\"SSS9rS\S'\"SSS9rS\S'\"SSS9r
S\S'\"SSS9rS\S'\"SSS9rS\S'\"SSS9rS\S '\"S!S"S9rS#\S$'\"S!S%S9rS#\S&'\"S!S'S9rS#\S('\"S!S)S9rS#\S*'\"SS+S9rS,\S-'S0S.jrS/rg)1�Email�#zwFull internal email representation. Ground truth labels are stored here18and never exposed to the agent via Observation..z(Unique email identifier e.g. 'email_001'��description�str�idzEmail subject line�subjectzFull email body text�bodyzSender email address�senderzArrival timestampr�	timestampzTrue category for grading�
EmailCategory�gt_categoryz(True priority for grading (no 'unknown')�Priority�gt_priorityzBody sentiment�	Sentiment�	sentimentNzAgent-assigned category�Optional[EmailCategory]�categoryrzAgent-assigned priority�priorityFzMarked resolved by agent�bool�resolvedzEscalated by agent�	escalatedzIgnored by agent�ignoredzReply has been drafted�
reply_draftedzDrafted reply text�
Optional[str]�19reply_textc�f�UR=(d UR=(d UR$)zHTrue if email has been terminally acted on (resolved/escalated/ignored).)r3r4r5)�selfs �server/models.py�is_processed�Email.is_processed=s���}�}�>����>�$�,�,�>��)�returnr2)�__name__�20__module__�__qualname__�__firstlineno__�__doc__rr$�__annotations__r%r&r'r(r*r,r.r0r1r3r4r5r6r8r<�__static_attributes__r?r>r;rr#s#��7��C�%O�P�B��P���*>�?�G�S�?��c�'=�>�D�#�>���)?�@�F�C�@���1D�E�I�x�E�"'�s�8S�!T�K��T�!�#�3]�^�K��^� ��2B�C�I�y�C�).�d�@Y�(Z�H�%�Z��y�6O�P�H�h�P��5�.H�I�H�d�I��E�/C�D�I�t�D��%�-?�@�G�T�@���3K�L�M�4�L� %�d�8L� M�J�
�M�?r>rc���\rSrSr%SrS\S'S\S'S\S'S\S'S	\S21'\"SSS
9rS\S'\"SSS
9rS\S'\"SSS
9r	S\S'Sr22S\S'SrS\S'SrS\S'Sr
S\S'Srg)�ObservationEmail�DzKTruncated email view exposed to the agent. Contains no ground truth labels.r#r$r%r'rr(r-r..zFirst 200 chars of body onlyr!�body_previewNzAgent-assigned category so farr/r0rzAgent-assigned priority so farr+r1Fr2r3r4r5r6r?)rArBrCrDrErFrrKr0r1r3r4r5r6rGr?r>r;rIrIDs��U��G�
�L��K������c�/M�N�L�#�N�(-�d�@`�(a�H�%�a��y�6V�W�H�h�W��H�d���I�t���G�T���M�4�r>rIc��\rSrSr%Sr\"SSS9rS\S'\"SSS9rS	\S23'\"SSS9r	S
\S'\"SSS9r24S\S'\"SSS9rS\S'Srg)�Action�Wa^Structured agent action. action_type determines which payload fields apply.25 26Action types and their required fields:27- classify_email: email_id, category (required)28- set_priority:   email_id, level (required)29- draft_reply:    email_id, text (required)30- mark_resolved:  email_id only31- escalate_email: email_id only32- ignore_email:   email_id only33.zWhich action to performr!�34ActionType�action_typezTarget email IDr#�email_idNzUsed by classify_emailr/r0zUsed by set_priorityzOptional[Priority]�levelzUsed by draft_replyr7�textr?)
rArBrCrDrErrPrFrQr0rRrSrGr?r>r;rMrMWse��	�$�C�5N�O�K��O��#�+<�=�H�c�=�(-�d�@X�(Y�H�%�Y� %�d�8N� O�E��O���2G�H�D�-�Hr>rMc���\rSrSr%Sr\"SSS9rS\S'\"SSS9rS	\S35'\"SSS9r	S	\S'\"SS
S9r36S	\S'\"SSS9rS	\S'\"SSS9rS	\S'\"SSS9r
S	\S'\"SSS9rS	\S'\"SSS9rS\S'Srg)�Observation�lzAWhat the agent sees after each step or on reset. No ground truth..zCurrent inbox stater!zList[ObservationEmail]�emailszTotal emails in this episode�int�total_emailsz#Emails not yet terminally processed�
pending_countzEmails successfully resolved�resolved_countzEmails escalated�escalated_countzEmails ignored�
ignored_countz'Steps taken so far (0-indexed at reset)�37step_countz'Maximum steps before forced termination�	max_stepsz"step_count / max_steps, 0.0 to 1.0�float�
elapsed_ratior?N)rArBrCrDrErrWrFrYrZr[r\r]r^r_rarGr?r>r;rUrUls���K�%*�3�<Q�%R�F�"�R��c�/M�N�L�#�N��s�0U�V�M�3�V���1O�P�N�C�P� ��2D�E�O�S�E��s�0@�A�M�3�A��C�-V�W�J��W��3�,U�V�I�s�V� ��2V�W�M�5�Wr>rUc���\rSrSr%Sr\"SSS9rS\S'\"\SS	9r	S38\S'\"SS
S9r39S\S'\"SSS9rS\S'\"SSS9rS\S'\"SSS9r
S\S'\"SSS9rS\S'\"SSS9rS\S'S rg!)"�State�|zMComplete internal environment state including ground truth. Graders use this..z#All emails with ground truth labelsr!zList[Email]rWz.Ordered list of all actions taken this episode)�default_factoryr"zList[Dict[str, Any]]�action_historyrzSteps taken in current episoderXr^zMax steps for current taskr_FzWhether episode has terminatedr2�done�zCumulative reward this episoder`�total_rewardz!Random seed used for this episode�seed�z%Task identifier: easy / medium / hardr#�task_idr?N)rArBrCrDrErrWrF�listrfr^r_rgrirjrlrGr?r>r;rcrc|s���W���1V�W�F�K�W�+0��D�,�N�(���A�+K�L�J��L��1�*F�G�I�s�G��u�*J�K�D�$�K���1Q�R�L�%�R��a�%H�I�D�#�I���)P�Q�G�S�Qr>rcc��\rSrSr%Sr\"SSS9rS\S'\"SSS9rS\S	'\"SS40S9r	S\S'\"S
SS9r41S\S'\"SSS9rS\S'\"SSS9rS\S'Sr
g
)�StepInfo�z6Structured info returned in the info dict from step()..zAction that was appliedr!r#rPzEmail that was targetedrQzWhether the action was validr2�validNzError message if invalidr7�errorrhzReward earned this stepr`�step_rewardFz%Whether episode ended after this steprgr?)rArBrCrDrErrPrFrQrqrrrsrgrGr?r>r;roro�sq��@��S�.G�H�K��H��#�+D�E�H�c�E���)G�H�E�4�H� ��3M�N�E�=�N��s�0I�J�K��J��u�*Q�R�D�$�Rr>roN)rE�42__future__rr�typingrrrrr	�pydanticr43rr)r+r-rOrrIrMrUrcror?r>r;�<module>rws����#��5�5�%��f�g�
��5�6���5�6�	�
���44�?�I�?�B �y� �&I�Y�I�*X�)�X� 
R�I�
R�$S�y�Sr>