darkfire514 commited on
Commit
06c5a6b
·
verified ·
1 Parent(s): 99d4ee9

Upload 4 files

Browse files
Files changed (4) hide show
  1. Dockerfile +21 -0
  2. app.py +11 -0
  3. pyproject.toml +85 -0
  4. requirements.txt +33 -0
Dockerfile ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.12-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install system dependencies if any
6
+ RUN apt-get update && apt-get install -y --no-install-recommends \
7
+ build-essential \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ # Install python dependencies
11
+ COPY requirements.txt .
12
+ RUN pip install --no-cache-dir -r requirements.txt
13
+
14
+ # Copy the application code
15
+ COPY . .
16
+
17
+ # Expose port
18
+ EXPOSE 7860
19
+
20
+ # Run the app
21
+ CMD ["python", "app.py"]
app.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from openspace.dashboard_server import create_app
3
+
4
+ app = create_app()
5
+
6
+ if __name__ == "__main__":
7
+ port = int(os.environ.get("PORT", 7860))
8
+ # Enable CORS for the frontend hosted on EdgeOne Pages
9
+ from flask_cors import CORS
10
+ CORS(app, resources={r"/api/*": {"origins": "*"}})
11
+ app.run(host="0.0.0.0", port=port)
pyproject.toml ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "openspace"
7
+ version = "0.1.0"
8
+ description = "OpenSpace"
9
+ readme = "README.md"
10
+ requires-python = ">=3.12"
11
+ license = {text = "MIT"}
12
+ authors = [
13
+ {name = "OpenSpace Team@HKUDS"}
14
+ ]
15
+
16
+ dependencies = [
17
+ "litellm>=1.70.0",
18
+ "python-dotenv>=1.0.0",
19
+ "openai>=1.0.0",
20
+ "jsonschema>=4.25.0",
21
+ "mcp>=1.0.0",
22
+ "anthropic>=0.71.0",
23
+ "pillow>=12.0.0",
24
+ "numpy>=1.24.0",
25
+ "colorama>=0.4.6",
26
+ "flask>=3.1.0",
27
+ "pyautogui>=0.9.54",
28
+ "pydantic>=2.12.0",
29
+ "requests>=2.32.0",
30
+ ]
31
+
32
+ [project.optional-dependencies]
33
+ macos = [
34
+ "pyobjc-core>=12.0",
35
+ "pyobjc-framework-cocoa>=12.0",
36
+ "pyobjc-framework-quartz>=12.0",
37
+ "atomacos>=3.2.0",
38
+ ]
39
+
40
+ linux = [
41
+ "python-xlib>=0.33",
42
+ "pyatspi>=2.38.0",
43
+ "numpy>=1.24.0",
44
+ ]
45
+
46
+ windows = [
47
+ "pywinauto>=0.6.8",
48
+ "pywin32>=306",
49
+ "PyGetWindow>=0.0.9",
50
+ ]
51
+
52
+ dev = [
53
+ "pytest>=7.0.0",
54
+ "pytest-asyncio>=0.21.0",
55
+ "black>=23.0.0",
56
+ "flake8>=6.0.0",
57
+ "mypy>=1.0.0",
58
+ ]
59
+
60
+ all = [
61
+ "openspace[macos,linux,windows,dev]",
62
+ ]
63
+
64
+ [project.urls]
65
+ Repository = "https://github.com/HKUDS/OpenSpace"
66
+ "Bug Tracker" = "https://github.com/HKUDS/OpenSpace/issues"
67
+
68
+ [project.scripts]
69
+ openspace = "openspace.__main__:run_main"
70
+ openspace-server = "openspace.local_server.main:main"
71
+ openspace-mcp = "openspace.mcp_server:run_mcp_server"
72
+ openspace-download-skill = "openspace.cloud.cli.download_skill:main"
73
+ openspace-upload-skill = "openspace.cloud.cli.upload_skill:main"
74
+ openspace-dashboard = "openspace.dashboard_server:main"
75
+
76
+ [tool.setuptools]
77
+ packages = {find = {where = ["."], include = ["openspace*"]}}
78
+
79
+ [tool.setuptools.package-data]
80
+ openspace = [
81
+ "config/*.json",
82
+ "config/*.json.example",
83
+ "local_server/config.json",
84
+ "local_server/README.md",
85
+ ]
requirements.txt ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # OpenSpace core dependencies
2
+ litellm>=1.70.0
3
+ python-dotenv>=1.0.0
4
+ openai>=1.0.0
5
+ jsonschema>=4.25.0
6
+ mcp>=1.0.0
7
+ anthropic>=0.71.0
8
+ pillow>=12.0.0
9
+ numpy>=1.24.0
10
+ colorama>=0.4.6
11
+
12
+ # Local server dependencies (cross-platform)
13
+ flask>=3.1.0
14
+ flask-cors>=4.0.0
15
+ pyautogui>=0.9.54
16
+ pydantic>=2.12.0
17
+ requests>=2.32.0
18
+ libsql-experimental
19
+
20
+ # # macOS-specific dependencies (local server)
21
+ # pyobjc-core>=12.0; sys_platform == 'darwin'
22
+ # pyobjc-framework-cocoa>=12.0; sys_platform == 'darwin'
23
+ # pyobjc-framework-quartz>=12.0; sys_platform == 'darwin'
24
+ # atomacos>=3.2.0; sys_platform == 'darwin'
25
+
26
+ # # Linux-specific dependencies (local server)
27
+ # python-xlib>=0.33; sys_platform == 'linux'
28
+ # pyatspi>=2.38.0; sys_platform == 'linux'
29
+
30
+ # # Windows-specific dependencies (local server)
31
+ # pywinauto>=0.6.8; sys_platform == 'win32'
32
+ # pywin32>=306; sys_platform == 'win32'
33
+ # PyGetWindow>=0.0.9; sys_platform == 'win32'