|
Download README.md from devansh1a/AISPY: direct link, hf CLI and curl.
- Browser
- Download file 4.34 kB
-
https://huggingface.co/spaces/devansh1a/AISPY/resolve/main/README.md
- Command line
-
hf download hf://spaces/devansh1a/AISPY/README.md
-
curl -L -o README.md https://huggingface.co/spaces/devansh1a/AISPY/resolve/main/README.md
4.34 kB
| title: AISPY | |
| emoji: 🕵️ | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # AISPY on Hugging Face Spaces (Docker) | |
| This repository can be deployed as a **Docker Space** on Hugging Face. | |
| ## Web app overview | |
| The app now runs as a proper authenticated Flask web application with: | |
| - email/password sign-up and login | |
| - private, session-based dashboard | |
| - saved analysis history per user | |
| - server-rendered forensic reports | |
| - password reset flow | |
| - role-based admin dashboard | |
| - report export as Markdown and JSON | |
| - SQLite storage for users and reports | |
| ## 1) Create the Space | |
| 1. Go to Hugging Face → **New Space**. | |
| 2. Choose: | |
| - **SDK**: `Docker` | |
| - **Visibility**: your choice (public/private) | |
| 3. Create the Space and push this repository code. | |
| ## 2) Required Space Secrets | |
| Open your Space settings → **Variables and secrets** and add: | |
| - `GROQ_API_KEY` (required) | |
| - `TAVILY_API_KEY` (required for web search) | |
| - `LANGCHAIN_API_KEY` (optional, if LangSmith tracing is enabled) | |
| - `LANGCHAIN_TRACING_V2` (optional, usually `true`) | |
| - `LANGCHAIN_PROJECT` (optional) | |
| - `SECRET_KEY` (recommended for Flask sessions) | |
| - `AISPY_ADMIN_EMAILS` (optional comma-separated admin emails) | |
| If your app uses additional providers, add those keys too. | |
| ## 3) Build & Run Behavior | |
| - `Dockerfile` installs system packages (`ffmpeg`, `tesseract-ocr`, `libgl1`) needed by media/CV stack. | |
| - Python dependencies are installed from `requirements-cpu.txt`. | |
| - `requirements-cpu.txt` points pip to the official CPU-only PyTorch wheel index. | |
| - App runs with: | |
| - `gunicorn app:app --bind 0.0.0.0:${PORT}` | |
| - Hugging Face provides `PORT` (default `7860`), matching Space config. | |
| ## 4) Local Test (Optional) | |
| ```bash | |
| docker build -t aispy:local . | |
| docker run --rm -it -p 7860:7860 \ | |
| -e GROQ_API_KEY=your_key \ | |
| -e TAVILY_API_KEY=your_key \ | |
| aispy:local | |
| ``` | |
| Then open: `http://localhost:7860` | |
| ## 5) Notes | |
| - First build can take time due to ML dependencies. | |
| - If you hit memory limits on free CPU Spaces, reduce model size or move to upgraded hardware. | |
| - Keep secrets only in Space settings (not in committed `.env` files). | |
| ## Provenance & Forensics (quick guide) | |
| When triaging media, preserve originals and collect metadata before any transformations. The repository includes lightweight helpers in `core/tools.py`: | |
| - `compute_checksum(path)` — returns a SHA256 hex digest for a file. | |
| - `run_ffprobe(path)` — runs `ffprobe` and returns stream/container metadata (or an error if `ffprobe` is missing). | |
| - `preserve_original_copy(src, dest_dir)` — copies the original file into `dest_dir` and writes a companion `.metadata.json` containing checksum and ffprobe output. | |
| - `extract_audio_with_ffmpeg(src, out.wav)` — extracts audio to a WAV and returns ffmpeg stderr/stdout for debugging silent or missing tracks. | |
| Helpful shell commands for local triage: | |
| ```bash | |
| # Inspect container and stream info | |
| ffprobe -v error -show_format -show_streams -print_format json input.mp4 | jq . | |
| # Extract audio (16 kHz mono WAV) | |
| ffmpeg -y -i input.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 out.wav | |
| # Compute SHA256 | |
| sha256sum input.mp4 | |
| ``` | |
| Python usage example (within the virtualenv): | |
| ```bash | |
| python -c "from core.tools import preserve_original_copy, extract_audio_with_ffmpeg; print(preserve_original_copy('input.mp4','collected')); print(extract_audio_with_ffmpeg('input.mp4','collected/input.wav'))" | |
| ``` | |
| If `ffmpeg` / `ffprobe` are not installed in your environment, install them via your package manager (e.g., `apt install ffmpeg`) or ensure your Docker image includes the packages (the provided `Dockerfile` already installs them). | |
| Collecting the original file and related metadata is essential for sensor-level forensic checks (PRNU, demosaic patterns) and increases confidence for authenticity assessments. | |
| ### Local finetuned models | |
| By default this repo will NOT eagerly load local finetuned model directories (for example under `face_v2_enhanced (1)` or `omni_detector_v1`). To enable loading local models on start set the environment variable: | |
| ```bash | |
| export ALLOW_LOCAL_MODELS=1 | |
| ``` | |
| Only enable this if you have installed the necessary Python packages (`torch`, `transformers`) and have sufficient CPU memory. Otherwise the app will prefer hosted inference (Hugging Face) when `HUGGINGFACE_API_KEY` is present. | |