CoolFace
Apppublic

iruno/test_wprm3

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
reward_agent.cpython-311.pyc109 linesDownload Raw Back to __pycache__
1�

2a+h�E��X�ddlmZmZddlZddlZddlZddlZddlmZddl	Z3ddlmZddl
mZddlmZmZmZmZddlmZdd	lmZd4ZdZdd
d�ddd�d�ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��Z dS)�)�ABC�abstractmethodN)�Client)�5ChatOpenAI���get_messages)�&JUDGE_OURS_BT_MODELING_PROMPT_TEMPLATE�3JUDGE_OURS_BT_MODELING_WO_CHECKLIST_PROMPT_TEMPLATE�1JUDGE_OURS_BT_MODELING_MULTIMODAL_PROMPT_TEMPLATE�>JUDGE_OURS_BT_MODELING_MULTIMODAL_WO_CHECKLIST_PROMPT_TEMPLATE)�image_to_base64_url)�convert_dict_messages��g333333�?g333333�?)�input_token_cost�output_token_costg@�6)zgpt-4o-minizgpt-4oc�.�eZdZededefd���ZdS)�Agent�inputs�returnc��dS�N�)�selfrs  �Q/home/intern/junhee/webrm_demo/Web-Shepherd-Demo/agent/mini_bench/reward_agent.py�generate_responsezAgent.generate_response#s����N)�__name__�7__module__�__qualname__r�dict�strrrrrrr"s@�������
��
��
�
�
��^�
�
�
rrc�Z�eZdZdefd�Zd�Zd�Zddefd�Zded	e	fd8�Z9dded	e	defd�ZdS)
�	BaseAgent�agent_configc�<�||_|���dSr)r'�_setup)rr's  r�__init__zBaseAgent.__init__(s��(������
�
�
�
�
rc
��|j}|�|��|�dd��}|rJt|d|d|d|dddd	|�d10d�����|_dSt|d|d|d|dd|�d11d�����|_dS)
N�
use_log_probsF�12model_name�base_url�api_key�temperature�,Tr�n)�modelr.r/r0�timeout�logprobs�top_logprobsr2)r3r.r/r0r4r2)r'�update�getr�llm)r�extra_kwargs�configr,s    r�_init_llm_objectzBaseAgent._init_llm_object,s����"���
�
�l�#�#�#��13�14�?�E�:�:�
��	�!��\�*��15�+��y�)�"�=�1�����*�*�S�$�'�'�	�	�	�D�H�H�H�"��\�*��16�+��y�)�"�=�1���*�*�S�$�'�'�
���D�H�H�Hrc��|���|jd|_|jd|_|j�dd��|_|j�dd��|_t�|jdd��}|r+d|jdvr|d	|_|d17|_	dSd|_d|_	dS)Nr0�num_generate�
use_checklistF�use_multimodalr-�apir.rr�)18r<r'r0r>r8r?r@�MODEL_COST_MAPPINGrr)r�19model_costs  rr)zBaseAgent._setupFs����������,�]�;��� �-�n�=���!�.�2�2�?�E�J�J���"�/�3�3�4D�e�L�L���(�+�+�D�,=�l�,K�T�R�R�20��	)�%�4�#4�Z�#@�@�@�$.�/A�$B�D�!�%/�0C�%D�D�"�"�"�$'�D�!�%(�D�"�"�"rN�constraint_str_listc���d}d}|jdkrG|j�|��}||jddz
}||jddz
}n�t	t21��D]�}	|j�|��}||jddz
}||jddz
}|rHd}|D]}||jvr|dz
}�|t|��krnetd|dz�dt22����nnE��#t$r7}	td|	����d}tjt��Yd}	~	��d}	~	wwxYw|j
|zd	z|j|zd	zz}23|�d24|25fS|j|26fS)Nr�token_usage�
prompt_tokens�completion_tokensrz Agent has fomat issue, retry... �/zAgent returned an Error: �@B�)r0r9�invoke�response_metadata�range�	MAX_RETRY�content�len�print�	Exception�time�sleep�RETRY_SLEEPrr)r�model_inputrE�total_input_tokens�total_output_tokens�response�i�pass_constraint_num�constraint_str�e�costs           r�generate_with_retryzBaseAgent.generate_with_retryWs���������q� � ��x���{�3�3�H��(�"<�]�"K�O�"\�\���8�#=�m�#L�M`�#a�a����9�%�%�
,�
,��,�#�x���{�;�;�H�&�(�*D�]�*S�Tc�*d�d�&�'�8�+E�m�+T�Uh�+i�i�'�*�27�./�+�.A�9�9�N�-��1A�A�A� 3�q� 8� 3��.�#�6I�2J�2J�J�J�!�E�!�"V�Q�q�S�"V�"V�9�"V�"V�W�W�W�W���X��!�,�,�,��9�a�9�9�:�:�:�#�H��J�{�+�+�+�+�+�+�+�+�����,����28�$�'9�9�G�C�d�F\�_r�Fr�u|�F|�|�����t�8�O��#�T�)�)s�.A0D� D�29E�-D=�=ErX�prompt_typec�30�g}|Srr�rrXrb�messages    r�prepare_messagezBaseAgent.prepare_message{s�����rc���d}g}|�||��}t|j��D]5}|�||��\}}	|�|��||	z
}�6||fS)Nr)rfrOr>ra�append)31rrXrbrE�32total_cost�
response_listrer\r[r`s33          rrzBaseAgent.generate_responses����34��
��&�&�{�K�@�@���t�(�)�)�	�	�A�!�5�5�g�?R�S�S�N�H�d�� � ��*�*�*��$��J�J��j�(�(rr)r r!r"r#r*r<r)�listrar$rfrrrrr&r&'s��������T��������4)�)�)�""*�"*�D�"*�"*�"*�"*�H�4��c�����)�)�T�)��)�Z^�)�)�)�)�)�)rr&c�0��eZdZdef�fd�Zdefd�Z�xZS)�GroundingJudgeAgentr'c�r��t���|��|���dSr��superr*r)�rr'�	__class__s  �rr*zGroundingJudgeAgent.__init__��,���
������&�&�&����
�
�
�
�
rrXc	�f�t|d||j|jd|jd���}|S)N�judge_grounding�
text_obs_type�image_obs_type)�35input_info�inference_moderbr@�text_obs�	image_obs)r	r@r'rds    rrfz#GroundingJudgeAgent.prepare_message�sC���"�,�#��.��&��7��'�(8�9�
36�37�38���r�r r!r"r#r*rf�
__classcell__�rrs@rrmrm�s_��������T�������	�4�	�	�	�	�	�	�	�	rrmc�N��eZdZdef�fd�Zdefd�Zdefd�Zdded	efd39�Z	�xZ40S)�ProgressJudgeAgentr'c�r��t���|��|���dSrrorqs  �rr*zProgressJudgeAgent.__init__�rsrrXc41��|jddkrd}|jd}d}nn|jddkrd}d}|jd}nK|jddkrd}|jd}|jd}ntd	|jd�����|jd42rd}nd}t|d||j||||���}|S)
N�43input_type�	text_onlyFrv�44image_onlyTrw�45text_imagezInvalid input type: �use_in_progress�judge_progress)rxryrbr?r@rzr{r�)r'�46ValueErrorr	r?)rrXrbr@rzr{r�res        rrfz"ProgressJudgeAgent.prepare_message�s����\�*�K�7�7�"�N��(��9�H��I�I�
�
�|�
,�l�
:�
:�!�N��H��)�*:�;�I�I�
�
�|�
,�l�
:�
:�!�N��(��9�H��)�*:�;�I�I��U�D�4E�l�4S�U�U�V�V�V���.�/�	$�"�O�O�#�O��"�+�#��,�)���+�	47�	48�	49���rr5c���gd�gd�gd�d�}d}g}t|��D�]^\}}d|v�rBd}|D]}|d||vrd	}n�|�r$dddd�}	|d50D]j}51|D]e}||D]Z}||52dvrN|	|�tj|53d��|	|<�2|	|xxtj|54d��z
cc<�[�f�k|	d�tj|	d��nt	d
��|	d�tj|	d��nt	d
��|	d�tj|	d��nt	d
��d�}	|�|	��d|vrn
||dz
}��`t
|��dkrdddd�gSg}t	d
��}
t|��D]�\}}d�|d|d|dfD��}t|����fd�|D��}|d|
kr|d}
|�|d|d|dd�����|S)N)uĠYes�YesuĊYesuĠyes�yesuĊyesuĠYES�YESuĊYESuĠDone�DoneuĊDoneuĠCompleted�	CompleteduĊCompletedu	ĠCorrect�Correctu	ĊCorrect)uĠNo�NouĊNouĠNO�NOuĊNOuĠNot�NotuĊNotuĠNone�NoneuĊNoneuĠNope�NopeuĊNopeuĠUn�UnuĊUnuĠWrong�WronguĊWrong)uĠIn�InuĊInu	ĠPending�Pendingu	ĊPendinguĠPart�PartuĊPartu	ĠPartial�Partialu	ĊPartialuĠInProgress�55InProgressuĊInProgress)r��no�inrLz<answer>F�tokenTr6�logprobr��infr�r�z	</answer>rrBc�6�g|]}tj|����Sr)�math�exp)�.0�xs  r�56<listcomp>z6ProgressJudgeAgent.get_judge_probs.<locals>.<listcomp>s ��p�p�p�������p�p�prc���g|]}|�z��Srr)r�r��sum_exp_logprobss  �rr�z6ProgressJudgeAgent.get_judge_probs.<locals>.<listcomp>s��� L� L� L�!��%5�!5� L� L� Lr�r)�	enumerater�r��log�floatrhrR�sum)rr5�target_judge�response_str�judge_probs_listr\�log_prob�find_judge_str�57judge_type�token_judge_dict�58token_info�	judge_str�final_judge_probs_list�max_in_prob�idx�judge_probs�exp_logprobs�
softmax_probsr�s                  @r�get_judge_probsz"ProgressJudgeAgent.get_judge_probs�sk������������%59�60��4����$�X�.�.�"	.�"	.�K�A�x��\�)�)�!&��".���J���(�L��,D�D�D�)-����E�"�>�#�"�"�(�(�$�61'/�~�&>�h�h�62�*6�h�h�J�-9�*�-E�h�h�	�#,�63�7�0C�#C�#C�'7�64�'C�'K�GK�x�PZ�[d�Pe�Gf�Gf�(8��(D�(D�(8��(D�(D�(D���Q[�\e�Qf�Hg�Hg�(g�(D�(D�(D��h�h�EU�UZ�D[�Dg�t�x�(8��(?�@�@�@�ns�ty�nz�nz�mz�BR�SW�BX�Bd�d�h�'7��'=�>�>�>�kp�qv�kw�kw�jw�BR�SW�BX�Bd�d�h�'7��'=�>�>�>�kp�qv�kw�kw�jw�(�(�$�65%�+�+�,<�=�=�=��l�*�*����H�W�-�-�L�L��� � �A�%�%�������
�&(�"� ��<�<�-�K�$-�.>�$?�$?�66
�67
� ��[�p�p�k�%�6H�+�VZ�J[�]h�im�]n�5o�p�p�p��#&�|�#4�#4� � L� L� L� L�|� L� L� L�
� ��#�k�1�1�"/��"2�K�&�-�-�(��+�'��*�'��*�/�/�����68*�)rrNrbc�x�d}|�||��}t|��}d|i}|�||d<|jd
i|��	|j�|g��}	td|jd��n #td|jd��wxYwg}69|	jdD]O}|jj	dd}|70�71|jj|�|��d����P|	j
d	d72}
|	j
d	d}|j|
zdz|j|zdzz}|73|fS)Nrr2r0z
request url: r.r5rQ)r[r�rGrHrIrKr)rfrr<r9�generaterSr'�generationsrerNrhrQr��74llm_outputrr)rrXrbr2r0rire�messages�kwargsr[rj�75generationr5rYrZs               r�generate_probsz!ProgressJudgeAgent.generate_probs"s����76��&�&�{�K�@�@��(��1�1���q����"�$/�F�=�!����'�'��'�'�'�	B��x�(�(�(��4�4�H��/�4�#4�Z�#@�A�A�A�A��E�/�4�#4�Z�#@�A�A�A�A�����
�"�.�q�1�	�	�J�!�)�;�J�G�	�R�H�� � � *� 2� :�#'�#7�#7��#A�#A���
�
�
�
�&�0��?��P��&�1�-�@�AT�U���*�-?�?�'�I�D�Lb�ex�Lx�|C�MC�C�77��j�(�(s�A8�8B)rN)r r!r"r#r*rfrkr�r$r�r}r~s@rr�r��s���������T��������4�����B[*��[*�[*�[*�[*�z")�")�$�")�S�")�")�")�")�")�")�")�")rr�c�0��eZdZdef�fd�Zdefd�Z�xZS)�ChecklistGenerationAgentr'c�r��t���|��|���dSrrorqs  �rr*z!ChecklistGenerationAgent.__init__HrsrrXc�*�t|d|���}|S)N�checklist_generation)rxryrbrrds    rrfz(ChecklistGenerationAgent.prepare_messageLs&���"�1�#�78�79�80��81�rr|r~s@rr�r�Gs_��������T��������4��������rr�c��eZdZddededefd�Zdedeefd�Zd	ed82eeezfd�Z	dd83eeezdefd
�Z84deezfd�Zdd85eeezdefd�ZdS)�ClassifierRewardAgentF�urlr?r@c�0�||_||_||_dSr)r�r?r@)rr�r?r@s    rr*zClassifierRewardAgent.__init__Vs�����*���,����r�prompt�86image_listc��g}|�d��d}|�d��d}d|d�dt|d��d�d|d�g}|S)Nz<IMAGE_PLACEHOLDER>rr�text)�typer��image)r�r�)�splitr)rr�r��multimodal_message�text_prompt_prefix�text_prompt_suffixs      r�_process_multimodal_messagez1ClassifierRewardAgent._process_multimodal_message[sx����#�\�\�*?�@�@��C��#�\�\�*?�@�@��C���%7�8�8��':�:�a�=�'I�'I�J�J��%7�8�8�	87��"�!r�user_prompt_templaterXc���|jr0|djdi|��}|�||d��}n|djdi|��}|djdi|��}d|d�d|d�g}|S)N�userr��	assistant)�rolerQr)r@�formatr�)rr�rX�tmp_user_prompt�user_prompt�assistant_prompt�querys       r�_make_queryz!ClassifierRewardAgent._make_querygs�����	�A�2�6�:�A������O� �;�;�O�[�Ye�Mf�g�g�K�K�=�.�v�6�=������K�D�/��<�C�88�89��90�91����4�4� �-=�>�>�92���r�batchc�0����jr�jrt�nt�n�jrt�nt93��jr*|r��fd�|D��}nF���|��g}n.|r��fd�|D��gd�}n���|��gd�}|S)Nc�<��g|]}���|����Sr�r��r��inputrr�s  ��rr�z9ClassifierRewardAgent.prepare_message.<locals>.<listcomp>�s*���b�b�b�U�4�+�+�,@�%�H�H�b�b�brc�<��g|]}���|����Srr�r�s  ��rr�z9ClassifierRewardAgent.prepare_message.<locals>.<listcomp>�s+���e�e�e�PU�d�.�.�/C�U�K�K�e�e�er)r��promptts)r��prompts)r?r@rr94r
rr�)rrXr�rer�s`   @rrfz%ClassifierRewardAgent.prepare_messagezs�������		[��"�
N�'X�$�$�'M�$�$��"�
[�'e�$�$�'Z�$���	��
P�b�b�b�b�b�Va�b�b�b����+�+�,@�+�N�N�O����	
�e�e�e�e�e�Yd�e�e�e� "�����"�-�-�.B�K�P�P�!����95�rrec�,�ddi}	|jrtj|jd|id���}n/tj|j|t	j|��d���}|���|���}d|vrtd	|����gSd96|jvr|dSd|jvr|dStd
|j�����#tj	j97$rtd|j����gcYStj	j$r&}td|j�d|����gcYd}~Sd}~wtj$rtd|j����gcYSt$r&}td|�d|j����gcYd}~Sd}~wwxYw)NzContent-Typezapplication/jsonr�iX)�jsonr4r1)�headers�datar4�rewardsz0Error: 'rewards' key not found in API response: �98get_reward�pooling�rewardz
Invalid URL: zError: Request timed out to zError during request to z: z+Error: Failed to decode JSON response from zError: Missing key z in response from )r@�requests�postr�r��dumps�raise_for_statusrSr��99exceptions�Timeout�RequestException�JSONDecodeError�KeyError)rrer�r[�
response_jsonr_s      r�get_rm_scroez"ClassifierRewardAgent.get_rm_scroe�s��!�#5�6��+	��"�
�#�=��H�$�g�.�������$�=��H�#���G�,�,��	����
�%�%�'�'�'�$�M�M�O�O�M��
�-�-��X��X�X�Y�Y�Y��	��t�x�'�'�$�Y�/�/��d�h�&�&�$�X�.�.�!�!;���!;�!;�<�<�<���"�*�	�	�	��;���;�;�<�<�<��I�I�I��"�3�	�	�	��<�T�X�<�<��<�<�=�=�=��I�I�I�I�I�I������#�	�	�	��J���J�J�K�K�K��I�I�I��	�	�	�
�H��H�H�d�h�H�H�
I�
I�
I��Y�Y�Y�Y�Y�Y�����	���sN�BC�C�,C�=C�-F�F�D7�1F�7+F�$	F�-F�F�Fc��|r|�|d���}n|�|��}|�|��}|dfS)NT)r�r)rfr)rrXr�rer�s     rrz'ClassifierRewardAgent.generate_response�sT���	8��*�*�;�d�*�C�C�G�G��*�*�;�7�7�G��#�#�G�,�,����z�rN)FF)F)
r r!r"r$�boolr*rkr�r#r�rfrrrrrr�r�Us������-�-�C�-��-�d�-�-�-�-�100 101"�#�102"�4��9�103"�104"�105"�106"����4�$�t�*�CT�����&��4�$�t�*�+<��T�����>.�D�4�K�.�.�.�.�b��T�D��J�->��t������rr�)!�abcrrrUr�r�r��	langsmithr�numpy�np�langchain_openairr�r	�prompts.judge_promptr107rrr
�prompts.image_utilsr�
prompts.utilsrrPrWrCrr&rmr�r�r�rrr�<module>rsB��#�#�#�#�#�#�#�#���������������������������'�'�'�'�'�'�!�!�!�!�!�!�������������5�4�4�4�4�4�0�0�0�0�0�0�
�	���!� ���108 ����	�	��
�
�
�
�
�C�
�
�
�109d)�d)�d)�d)�d)��d)�d)�d)�N�����)����"e)�e)�e)�e)�e)��e)�e)�e)�P�����y����|�|�|�|�|�E�|�|�|�|�|r