ObjectverseDiary / docs /EXTERNAL_SETUP.md
qqyule's picture
Sync runtime diagnostics and smoke helpers
d30bd8e verified
# External Setup
## Purpose
This document lists the external actions needed after the local initial-stage build is ready.
These actions change external account state and should only be run after explicit confirmation.
## GitHub Repository
Local `origin` is already configured:
```text
https://github.com/qqyule/Objectverse-Diary.git
```
Use this section to confirm the remote target and branch before pushing. Do not create a second repository unless the target changes.
Originally suggested repository name:
```text
objectverse-diary
```
Suggested description:
```text
Small-model AI toy that turns everyday objects into secret diary characters.
```
If a new repository is ever needed after confirmation:
```bash
gh repo create objectverse-diary --public --description "Small-model AI toy that turns everyday objects into secret diary characters." --source . --remote origin
```
Do not push until the user confirms the remote target and branch.
## Hugging Face Space
Created Space:
```text
https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary
```
SDK:
```text
gradio
```
Required Space README header:
```yaml
---
title: Objectverse Diary
emoji: 🗝️
colorFrom: amber
colorTo: gray
sdk: gradio
python_version: '3.10'
app_file: app.py
pinned: false
---
```
Recommended runtime setup:
- stable public demo: keep `OBJECTVERSE_VISION_BACKEND=mock` and `OBJECTVERSE_TEXT_BACKEND=mock`
- optional MiniCPM-V validation: temporarily set `OBJECTVERSE_VISION_BACKEND=minicpm-v`
- optional MiniCPM-V validation: set `VISION_MODEL_ID=openbmb/MiniCPM-V-2_6`
- optional MiniCPM-V validation: keep `OBJECTVERSE_TEXT_BACKEND=mock`
- optional MiniCPM-V validation: use ZeroGPU `zero-a10g` first; paid L4 previously returned `402 Payment Required`
- always roll back to mock-safe settings after validation unless the hosted VLM path passes reliably
Automated validation command after confirmation:
```bash
.venv/bin/python -B scripts/check_space_vlm.py \
--configure-space \
--hardware zero-a10g \
--rollback-to-mock \
--space-url https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary \
--output docs/SPACE_VLM_REPORT.md \
--json-output docs/SPACE_VLM_REPORT.json \
--trace-output-dir data/traces/space-vlm \
--failure-notes-output docs/FAILURES.md \
--timeout-seconds 1200
```
The validation command now calls the hidden `/vision_runtime_probe` endpoint before mug/keyboard/shoe generation. The probe output is written into the markdown/JSON report and must remain free of token markers, `.env` paths, and private local paths.
Optional rollback to mock-safe settings:
```bash
.venv/bin/python -B scripts/check_space_vlm.py \
--space-url https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary \
--skip-validation \
--rollback-to-mock
```
The validation script must not print Hugging Face tokens. It uses three temporary public Wikimedia Commons images and does not commit downloaded assets.
## Optional GGUF Smoke Test
This is a local-only model evidence step. It should be run only after confirming optional dependency installation and GGUF download.
Recommended model:
```text
repo: Qwen/Qwen2.5-1.5B-Instruct-GGUF
file: qwen2.5-1.5b-instruct-q4_k_m.gguf
local path: models/qwen2.5-1.5b-instruct-q4_k_m.gguf
```
Do not commit the downloaded GGUF. After the file is present and optional `llama-cpp-python` is installed:
```bash
.venv/bin/python -B scripts/check_llama_cpp_smoke.py \
--model-path models/qwen2.5-1.5b-instruct-q4_k_m.gguf
```
Passing evidence requires `llama-cpp text generation` and no `text-fallback-to-mock` marker for generation or chat.
2026-06-06 validation attempt:
- `--configure-space` was run for `l4x1`.
- Hugging Face returned `402 Payment Required` for paid hardware on the `build-small-hackathon` organization.
- Mock-safe rollback was run afterward.
- ZeroGPU compatibility was added and uploaded to the Space.
- `--configure-space --hardware zero-a10g` reached `RUNNING`, and `/config` was reachable, but the validation request did not return within the practical waiting window.
- `spaces>=0.30` and a hidden `/zero_gpu_probe` endpoint were added.
- The ZeroGPU probe succeeded through the direct `hf.space` URL with CUDA available on an NVIDIA RTX PRO 6000 Blackwell MIG device.
2026-06-08 validation attempt:
- `--configure-space --hardware zero-a10g --rollback-to-mock` reached the app through the direct `hf.space` client path.
- Mug, keyboard, and shoe checks all returned schema-valid traces, but every trace included `vision-fallback-to-mock`.
- Evidence is saved in `docs/SPACE_VLM_REPORT.md`, `docs/SPACE_VLM_REPORT.json`, and `data/traces/space-vlm/`.
- The report records rollback to `cpu-basic` with `OBJECTVERSE_VISION_BACKEND=mock` and `OBJECTVERSE_TEXT_BACKEND=mock`.
- Next model unblock step: inspect Space runtime logs or add non-secret MiniCPM-V diagnostics before rerunning validation.
## Safety Notes
- Do not commit `.env`.
- Do not expose tokens, credit codes, private paths, or model credentials.
- Do not push large model files.
- Keep real model files under ignored `/models/` unless explicitly publishing them.