Spaces:
Sleeping
Sleeping
| title: OpenHands Simplified Backend | |
| emoji: π€ | |
| colorFrom: indigo | |
| colorTo: purple | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # OpenHands Simplified Backend (Phase 1) | |
| FastAPI service that exposes: | |
| - `GET /health` β liveness + provider/key status | |
| - `POST /api/chat` β non-streaming chat | |
| - `POST /api/chat/stream` β SSE; auto-routes chat vs E2B execution | |
| - `POST /api/execute` β SSE; always runs in E2B sandbox | |
| - `POST /api/intent` β intent classifier only | |
| ## Environment variables (set in HF Space β Settings β Secrets) | |
| | Name | Required | Notes | | |
| |-------------------|----------|----------------------------------------| | |
| | `GEMINI_KEY` | optional | comma-separated Gemini API keys | | |
| | `SAMBANOVA_KEY` | optional | comma-separated SambaNova API keys | | |
| | `GITHUB_KEY` | optional | comma-separated GitHub Models tokens | | |
| | `E2B_API_KEY` | **yes** | required for execution endpoints | | |
| | `E2B_TEMPLATE` | optional | custom sandbox template id | | |
| | `ALLOWED_ORIGINS` | optional | CSV; defaults to `*` | | |
| | `LOG_LEVEL` | optional | default `INFO` | | |
| At least ONE LLM provider key must be set. | |
| ## Test (after deploy) | |
| ```bash | |
| curl https://<your-space>.hf.space/health | |
| curl -N -X POST https://<your-space>.hf.space/api/execute \ | |
| -H 'Content-Type: application/json' \ | |
| -d '{"message":"Create proof.txt with the current UNIX timestamp and print its contents."}' | |
| ``` | |