loos / README.md
work-sejal
Add HF Spaces README front-matter (sdk: docker, app_file: Dockerfile)
18bd412
|
Raw
History Blame Contribute Delete
3.88 kB
# ---
# title: "Learning Outcome OS β€” AI Service"
# emoji: "πŸ€–"
# colorFrom: "blue"
# colorTo: "purple"
# sdk: docker
# app_file: Dockerfile
# pinned: false
# ---
# LearningOutcomeOS-AI-V2
AI inference service for Learning Outcome OS β€” a school intelligence platform that converts classroom data into outcome-based learning intelligence. This repository is designed to deploy as a Hugging Face Docker Space for a production-ready API.
**Version:** 2.0.0
## Which Hugging Face Space to create
Create a **Docker Space**.
Recommended options:
- Runtime: **Docker**
- Hardware: **CPU** (free tier is sufficient for scikit-learn models)
- Port: **7860** (Hugging Face Spaces standard)
> Do not create a Gradio or Static Space. This service requires a Docker Space because it runs a FastAPI backend with Python dependencies and custom runtime configuration.
## Clean HF deployment plan
1. Create a new Hugging Face Space as a Docker Space.
2. Clone the HF Space repository locally:
```bash
git clone https://huggingface.co/spaces/<your-username>/<your-space-name>.git
cd <your-space-name>
```
3. Copy the contents of `AI_Services_V2/` into the space repository root.
4. Add trained model artifacts under `artifacts/models/`.
5. Add the dataset under `learning_outcome_os_dataset_v2/` if runtime dataset-backed endpoints are required.
6. Commit and push:
```bash
git add .
git commit -m "Deploy LearningOutcomeOS-AI-V2 to Hugging Face Space"
git push
```
## Repository structure for the HF Space
The space should contain:
- `Dockerfile`
- `requirements.txt`
- `README.md`
- `app/`
- `scripts/`
- `artifacts/models/` (trained `.joblib` models)
- `learning_outcome_os_dataset_v2/` (dataset files, if needed)
## Runtime configuration
This repository is configured to use Hugging Face persistent storage under `/data`:
- `MODEL_ARTIFACT_DIR=/data/artifacts/models`
- `DATASET_DIR=/data/learning_outcome_os_dataset_v2`
- `METRICS_DIR=/data/artifacts/metrics`
- `REPORTS_DIR=/data/artifacts/reports`
- `FEEDBACK_DIR=/data/artifacts/feedback`
These values are set by the `Dockerfile` and by the default application configuration.
## Deploying the Docker Space
The existing `Dockerfile` is already set up for HF Spaces. After you push the repo, the space will build and expose the API on port `7860`.
## API endpoints
The service exposes the following HTTP endpoints under `/ai/v2`:
- `GET /ai/v2/health` β€” health status and service success
- `GET /ai/v2/data/summary` β€” dataset metadata summary
- `GET /ai/v2/monitoring/model-health` β€” model health report
- `POST /ai/v2/tag-learning-outcome` β€” learning outcome tagging
- `POST /ai/v2/classify-bloom` β€” Bloom taxonomy classification
- `POST /ai/v2/predict-mastery` β€” mastery prediction
- `GET /ai/v2/risk/{student_id}` β€” risk prediction
- `GET /ai/v2/recommendations/{student_id}` β€” recommendations
- `GET /ai/v2/student-profile/{student_id}` β€” student profile
- `POST /ai/v2/evaluate-answer` β€” answer evaluation
- `GET /ai/v2/class-insights/{class_id}` β€” class insights
- `POST /ai/v2/teacher-feedback` β€” teacher feedback storage
## Verifying your deployed space
After push completes, verify with:
```bash
curl https://<your-space-name>.hf.space/ai/v2/health
```
A successful response should include `status: "ok"` and `models_loaded: true`.
## Local development notes
For local development, create a `.env` file based on `.env.example` and override paths as needed. In the Hugging Face Space, the Docker container already sets the required `/data` paths.
## Notes
- Keep the HF Space repo clean: only `app/`, `requirements.txt`, `Dockerfile`, and the required artifacts/dataset.
- Avoid pushing the old `aaa/`, `AI_Services/`, or `HF_SPACE_FILES/` directories into the new space.
- If training scripts are not required in production, they can remain outside the HF deployment repo.