Aldrimore commited on
Commit
7f61e7c
Β·
1 Parent(s): 9282705

Fix local openenv validate: add server/app.py, project.scripts, uv.lock, rename server.py to main.py

Browse files
Files changed (6) hide show
  1. Dockerfile +1 -1
  2. main.py +31 -0
  3. pyproject.toml +3 -0
  4. server/__init__.py +0 -0
  5. server/app.py +26 -0
  6. uv.lock +0 -0
Dockerfile CHANGED
@@ -20,4 +20,4 @@ ENV ENABLE_WEB_INTERFACE=1
20
 
21
  EXPOSE 7860
22
 
23
- CMD ["python", "server.py"]
 
20
 
21
  EXPOSE 7860
22
 
23
+ CMD ["python", "main.py"]
main.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Smart Factory Scheduling β€” OpenEnv Server
3
+ ==========================================
4
+ Routes (HTTP + WebSocket):
5
+ GET / β†’ Gradio UI (set ENABLE_WEB_INTERFACE=1) or redirect to /web
6
+ GET /health β†’ {"status": "healthy"}
7
+ POST /reset β†’ reset episode, returns observation
8
+ POST /step β†’ execute action, returns observation + reward + done
9
+ GET /state β†’ current environment state
10
+ GET /schema β†’ action / observation JSON schemas
11
+ WS /ws β†’ persistent WebSocket session (used by FactoryEnvClient)
12
+
13
+ Set ENABLE_WEB_INTERFACE=1 to enable the built-in Gradio UI at /web.
14
+ """
15
+ import os
16
+ from openenv.core import create_app
17
+ from factory_env.env import FactoryEnv
18
+ from factory_env.models import FactoryAction, FactoryObservation
19
+
20
+ TASK = os.getenv("FACTORY_TASK", "easy")
21
+
22
+ app = create_app(
23
+ env=lambda: FactoryEnv(task=TASK, seed=42),
24
+ action_cls=FactoryAction,
25
+ observation_cls=FactoryObservation,
26
+ env_name="factory_env",
27
+ )
28
+
29
+ if __name__ == "__main__":
30
+ import uvicorn
31
+ uvicorn.run(app, host="0.0.0.0", port=int(os.getenv("PORT", 7860)))
pyproject.toml CHANGED
@@ -18,3 +18,6 @@ dependencies = [
18
  "websockets>=12.0",
19
  "httpx>=0.27",
20
  ]
 
 
 
 
18
  "websockets>=12.0",
19
  "httpx>=0.27",
20
  ]
21
+
22
+ [project.scripts]
23
+ server = "server.app:main"
server/__init__.py ADDED
File without changes
server/app.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Smart Factory Scheduling β€” OpenEnv Server Entry Point
3
+ """
4
+ import os
5
+
6
+ from openenv.core import create_app
7
+ from factory_env.env import FactoryEnv
8
+ from factory_env.models import FactoryAction, FactoryObservation
9
+
10
+ TASK = os.getenv("FACTORY_TASK", "easy")
11
+
12
+ app = create_app(
13
+ env=lambda: FactoryEnv(task=TASK, seed=42),
14
+ action_cls=FactoryAction,
15
+ observation_cls=FactoryObservation,
16
+ env_name="factory_env",
17
+ )
18
+
19
+
20
+ def main(host: str = "0.0.0.0", port: int = 7860):
21
+ import uvicorn
22
+ uvicorn.run(app, host=host, port=int(os.getenv("PORT", port)))
23
+
24
+
25
+ if __name__ == "__main__":
26
+ main()
uv.lock ADDED
The diff for this file is too large to render. See raw diff