Spaces:
Running
Running
Upload 4 files
Browse files- Dockerfile +21 -0
- app.py +11 -0
- pyproject.toml +85 -0
- 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'
|