dbatcode28 commited on
Commit
a1e0c1e
·
1 Parent(s): 47428ef
__pycache__/app.cpython-313.pyc ADDED
Binary file (3.83 kB). View file
 
app.py CHANGED
@@ -5,24 +5,27 @@ import os
5
 
6
  import gradio as gr
7
 
8
- from support_ops_env.env import SupportOpsEnv
9
  from support_ops_env.models import Action
10
  from support_ops_env.tasks import list_task_ids
11
 
12
 
13
- ENV = SupportOpsEnv()
14
-
15
-
16
  def reset_env(task_id: str) -> str:
17
- observation = ENV.reset(task_id=task_id)
 
 
18
  return json.dumps(observation.model_dump(), indent=2)
19
 
20
 
21
  def step_env(task_id: str, action_type: str, target: str, value: str) -> tuple[str, str]:
22
- if ENV.state().task_id != task_id or ENV.state().step_count == 0 and not ENV.state().done:
23
- ENV.reset(task_id=task_id)
 
 
 
 
24
  action = Action(action_type=action_type, target=target or "T1", value=value or None)
25
- observation, reward, done, info = ENV.step(action)
26
  payload = {
27
  "reward": reward.model_dump(),
28
  "done": done,
@@ -66,6 +69,15 @@ with gr.Blocks(title="SupportOpsEnv") as demo:
66
  )
67
 
68
 
 
 
 
 
 
 
 
 
 
 
69
  if __name__ == "__main__":
70
- port = int(os.getenv("PORT", os.getenv("GRADIO_SERVER_PORT", "7860")))
71
- demo.launch(server_name="0.0.0.0", server_port=port)
 
5
 
6
  import gradio as gr
7
 
8
+ from server.app import app as api_app
9
  from support_ops_env.models import Action
10
  from support_ops_env.tasks import list_task_ids
11
 
12
 
 
 
 
13
  def reset_env(task_id: str) -> str:
14
+ from server.app import _http_env
15
+
16
+ observation = _http_env.reset(task_id=task_id)
17
  return json.dumps(observation.model_dump(), indent=2)
18
 
19
 
20
  def step_env(task_id: str, action_type: str, target: str, value: str) -> tuple[str, str]:
21
+ from server.app import _http_env
22
+
23
+ state = _http_env.state()
24
+ if state.task_id != task_id or (state.step_count == 0 and not state.done):
25
+ _http_env.reset(task_id=task_id)
26
+
27
  action = Action(action_type=action_type, target=target or "T1", value=value or None)
28
+ observation, reward, done, info = _http_env.step(action)
29
  payload = {
30
  "reward": reward.model_dump(),
31
  "done": done,
 
69
  )
70
 
71
 
72
+ app = gr.mount_gradio_app(api_app, demo, path="/ui")
73
+
74
+
75
+ def main(host: str = "0.0.0.0", port: int | None = None) -> None:
76
+ import uvicorn
77
+
78
+ resolved_port = port or int(os.getenv("PORT", os.getenv("GRADIO_SERVER_PORT", "7860")))
79
+ uvicorn.run(app, host=host, port=resolved_port)
80
+
81
+
82
  if __name__ == "__main__":
83
+ main()
 
tests/__pycache__/test_server_api.cpython-313.pyc CHANGED
Binary files a/tests/__pycache__/test_server_api.cpython-313.pyc and b/tests/__pycache__/test_server_api.cpython-313.pyc differ
 
tests/test_server_api.py CHANGED
@@ -2,6 +2,7 @@ from __future__ import annotations
2
 
3
  import unittest
4
 
 
5
  from server.app import (
6
  StepRequest,
7
  app,
@@ -15,6 +16,15 @@ from server.app import (
15
 
16
 
17
  class ServerApiTest(unittest.TestCase):
 
 
 
 
 
 
 
 
 
18
  def test_required_routes_are_registered(self) -> None:
19
  route_paths = {route.path for route in app.routes}
20
  self.assertIn("/health", route_paths)
 
2
 
3
  import unittest
4
 
5
+ from app import app as deployed_app
6
  from server.app import (
7
  StepRequest,
8
  app,
 
16
 
17
 
18
  class ServerApiTest(unittest.TestCase):
19
+ def test_deployment_entrypoint_exposes_openenv_routes(self) -> None:
20
+ route_paths = {route.path for route in deployed_app.routes}
21
+ self.assertIn("/reset", route_paths)
22
+ self.assertIn("/step", route_paths)
23
+ self.assertIn("/state", route_paths)
24
+ self.assertIn("/health", route_paths)
25
+ self.assertIn("/metadata", route_paths)
26
+ self.assertIn("/schema", route_paths)
27
+
28
  def test_required_routes_are_registered(self) -> None:
29
  route_paths = {route.path for route in app.routes}
30
  self.assertIn("/health", route_paths)