Team Ai
Apppublic

Hariprita/nl2sql-openenv

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
client.cpython-311.pyc94 linesDownload Raw Back to __pycache__
1�

2���i����dZddlZddlZddlmZmZddlmZddlZeGd�d����Z	eGd�d����Z3eGd	�d4����ZGd�d��ZdS)
uW5client.py — SQLAgentEnv client class.6 7Mirrors the BrowserGymEnv pattern from the official OpenEnv sample inference script:8  env = SQLAgentEnv.from_docker_image(image="sql-agent-env:latest", env_vars={...})9  result = env.reset()                        # StepResult10  result = env.step(SQLAction(sql_query=...)) # StepResult11  env.close()12�N)�	dataclass�fields)�Optionalc���eZdZUeed<eed<eed<eed<eed<eed<eed<eed<eed	<eed13<dZeed<e	d
efd���Z14e	d
efd���Ze	d
efd���ZdS)�SQLObservation�schema�question�result�reward�done�feedback�task_id�task_difficulty�attempt�max_attempts��hint�returnc��|jS)z;Alias so generic inference scripts can use observation.goal)r	��selfs �*C:\Users\Hariprita\sql_agent_env\client.py�goalzSQLObservation.goal%s���}��c�^�t|jo|j�d����S)NzERROR:)�boolr15�16startswithrs r�last_action_errorz SQLObservation.last_action_error*s'���D�K�D�D�K�$:�$:�8�$D�$D�E�E�Erc�&�d|j�d|j��S)z5Stub for compatibility with generic inference scriptsztask://z	/attempt/)rrrs r�urlzSQLObservation.url.s��?���>�>���>�>�>rN)
�__name__�17__module__�__qualname__�str�__annotations__�floatr�intr�propertyrrr �rrrrs���������K�K�K��M�M�M��K�K�K��M�M�M�18�J�J�J��M�M�M�
�L�L�L�����
�L�L�L������D�#�N�N�N�
��c�����X���F�4�F�F�F��X�F��?�S�?�?�?��X�?�?�?rrc�.�eZdZUeed<eed<eed<dS)�19StepResult�observationrrN)r!r"r#rr%r&rr)rrr+r+4s.������������M�M�M�20�J�J�J�J�Jrr+c��eZdZUeed<dS)�	SQLAction�	sql_queryN)r!r"r#r$r%r)rrr.r.;s��������N�N�N�N�Nrr.c21��eZdZdZddefd�Ze			dded	ed22ee	ddfd���Z23defd
�Zde
defd�Zde	fd�Zd�Zd�Zd�Zede	defd���ZdS)�SQLAgentEnvaX24    Client for the SQL Agent Environment FastAPI server.25 26    Usage (local server already running):27        env = SQLAgentEnv(base_url="http://localhost:7860")28 29    Usage (spin up Docker image):30        env = SQLAgentEnv.from_docker_image("sql-agent-env:latest")31 32    Both return the same object; use reset() / step() / close() uniformly.33    �http://localhost:7860�base_urlc�H�|�d��|_d|_dS)N�/)�rstripr3�
_container_id)rr3s  r�__init__zSQLAgentEnv.__init__Qs#�� ����,�,��
�,0����r�sql-agent-env:latest�N�image�port�env_varsrc��g}|pi���D]\}}|d|�d|��gz
}�ddddd|�d|��g|z|gz}tj|d	d	d	�34��}|j���}	|d|�����}35|	|36_t
d
��D]_}	tj|37j	�d�d���}|j38dkr|39cSn#tjj$rYnwxYwtjd���`td|	�d����)zy40        Launch the environment inside Docker, wait for it to be healthy,41        and return a connected client.42        z-e�=�docker�runz-dz--rmz-p�:T)�capture_output�text�checkzhttp://localhost:)r3�<z/health���timeout���z;Environment did not become healthy within 60 s (container: �))�items�43subprocessrA�stdout�stripr7�range�requests�getr3�status_code�44exceptions�ConnectionError�time�sleep�TimeoutError)
�clsr;r<r=�env_args�k�v�cmd�proc�container_id�client�_�rs
             r�from_docker_imagezSQLAgentEnv.from_docker_imageYsn�����^��*�*�,�,�	+�	+�D�A�q���!�z�z�a�z�z�*�*�H�H����f�d�t�4D�4D�d�4D�4D�E��P�TY�SZ�Z���~�c�$�T��N�N�N���{�(�(�*�*����8�$�8�8�9�9�9��+����r���	�	�A�
��L�F�O�!<�!<�!<�a�H�H�H���=�C�'�'�!�M�M�M�(���&�6�
�
�
���
�����J�q�M�M�M�M��Y�,�Y�Y�Y�45�46�	47s�*C�C�Cc��tj|j�d�id���}|���|�|�����S)Nz/reset�48��jsonrI)rR�postr3�raise_for_status�_parse_step_resultrh�rrcs  r�resetzSQLAgentEnv.reset�sQ���M�T�]�2�2�2��R�H�H�H��	�������&�&�q�v�v�x�x�0�0�0r�actionc���tj|j�d�d|jid���}|���|�|�����S)Nz/stepr/rfrg)rRrir3r/rjrkrh)rrnrcs   r�stepzSQLAgentEnv.step�sd���M��}�#�#�#��v�/�0��
49�
50�
51��52	53�������&�&�q�v�v�x�x�0�0�0rc��tj|j�d�d���}|���|���S)Nz/staterfrH)rRrSr3rjrhrls  r�statezSQLAgentEnv.state�s@���L�D�M�1�1�1�2�>�>�>��	�������v�v�x�x�rc�b�|jr'tjdd|jgd���d|_dSdS)Nr@�stopT)rC)r7rNrArs r�closezSQLAgentEnv.close�sP����	&��N��6�4�#5�6�#�
�
�
�
�"&�D����	&�	&rc��|S�Nr)rs r�	__enter__zSQLAgentEnv.__enter__�s���rc�.�|���dSrw)ru)r�argss  r�__exit__zSQLAgentEnv.__exit__�s���54�55�����r�datac56���d�tt��D��}tdi�fd�|D����}t|t��dd����t��dd�������S)	Nc��h|]	}|j��57Sr))�name)�.0�fs  r�	<setcomp>z1SQLAgentEnv._parse_step_result.<locals>.<setcomp>�s��B�B�B�a�1�6�B�B�Brc�*��i|]}|�v�|�|��Sr)r))r�r\r|s  �r�58<dictcomp>z2SQLAgentEnv._parse_step_result.<locals>.<dictcomp>�s$���Q�Q�Q�q�q�D�y�y��4��7�y�y�yrrgrF)r,rrr))rrr+r&rSr)r|�obs_field_names�obss`  rrkzSQLAgentEnv._parse_step_result�s����B�B�6�.�+A�+A�B�B�B���R�R�Q�Q�Q�Q�O�Q�Q�Q�R�R��������(�C�0�0�1�1��d�h�h�v�u�-�-�.�.�59�60�61�	62r)r2)r9r:N)r!r"r#�__doc__r$r8�classmethodr'r�dictrdr+rmr.rprrrurxr{�staticmethodrkr)rrr1r1DsL������63�64�1�1��1�1�1�1��,��#'�	!65�!66��!67��!68��4�.�	!69�7071�!72�!73�!74��[�!75�N1�z�1�1�1�1�761�9�1��1�1�1�1��t�����&�&�&��������77��78�*�79�80�81��\�82�83�84rr1)
r�rNrW�dataclassesrr�typingrrRrr+r.r1r)rr�<module>r�s1������������)�)�)�)�)�)�)�)������������?�?�?�?�?�?�?���?�8����������������������n85�n86�n87�n88�n89�n90�n91�n92�n93�n94r
Hariprita/nl2sql-openenv · Team Ai