File size: 5,169 Bytes
bc02199
 
 
 
 
 
 
 
 
 
e20e3d9
bc02199
 
e20e3d9
bc02199
 
e20e3d9
 
 
bc02199
 
e20e3d9
bc02199
 
 
 
 
 
 
 
e20e3d9
bc02199
 
 
 
 
 
 
 
 
e20e3d9
bc02199
 
e20e3d9
bc02199
 
e20e3d9
bc02199
 
 
 
 
 
 
 
 
 
 
 
 
 
e20e3d9
bc02199
 
 
 
 
e20e3d9
 
1e2c036
 
 
 
 
 
e20e3d9
 
 
 
 
 
1e2c036
 
e20e3d9
1e2c036
 
 
d30bd8e
1e2c036
e20e3d9
 
d30bd8e
 
e20e3d9
 
 
 
 
 
 
 
 
 
 
d30bd8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e20e3d9
bc02199
e20e3d9
 
 
535bb9d
 
1e2c036
 
 
 
 
 
 
 
 
 
bc02199
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# 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.