nspasojevic commited on
Commit
2697dda
·
verified ·
1 Parent(s): d2a67d7

One validation request per result page; details panel fixes (QA 6881558, 6881564, 6881568)

Browse files

Explorer main.7a0cdb58.js (slim-00020251, Central main c23bff29): each page's relevance checks go out as ONE /vlm_validate/batch_stream request (nginx → SimReady Central's validator on :8020, which fetches thumbnails through /images, SHIM_GATEWAY_BASE_URL); no idle-time 3D model fetches; a 429 waits and retries; a failed 3D load offers Retry; the preview no longer pushes Download off short windows. Persisted by indexing PR #37.

docker/hf-space/nginx.conf.template CHANGED
@@ -262,8 +262,22 @@ server {
262
  root /app/hf-space-pipeline/.build/restore/hierarchy;
263
  try_files /category_hierarchy.json @slim_not_found;
264
  }
265
- # The streaming validate shim does not exist here: a real 404 pins per-image validation through
266
- # /vlm_validate/search_result (longer prefix, still his); a 502 or index.html would disable it.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  location /vlm_validate/ {
268
  default_type application/json;
269
  return 404 '{"detail":"Not Found"}';
 
262
  root /app/hf-space-pipeline/.build/restore/hierarchy;
263
  try_files /category_hierarchy.json @slim_not_found;
264
  }
265
+ # One request per result page (QA 6881558: Hugging Face limits each user to ~2,000 requests a minute,
266
+ # and a page of per-image checks took 50): SimReady Central's validator (supervisord deeptag-validate,
267
+ # 127.0.0.1:8020) streams one NDJSON verdict per hit, fetching each thumbnail through /images above
268
+ # (SHIM_GATEWAY_BASE_URL). Unbuffered so verdicts land as they come; heartbeats keep the stream open.
269
+ location = /vlm_validate/batch_stream {
270
+ if ($request_method = OPTIONS) { add_header Content-Length 0 always; add_header Content-Type "text/plain" always; return 204; }
271
+ proxy_pass http://127.0.0.1:8020;
272
+ proxy_buffering off;
273
+ proxy_read_timeout 120s;
274
+ gzip off;
275
+ add_header X-Accel-Buffering no always;
276
+ add_header Access-Control-Allow-Origin "*" always;
277
+ add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
278
+ add_header Access-Control-Allow-Headers "Content-Type, Authorization" always;
279
+ }
280
+ # Any other /vlm_validate/ path: a JSON 404, never the SPA's index.html.
281
  location /vlm_validate/ {
282
  default_type application/json;
283
  return 404 '{"detail":"Not Found"}';
docker/hf-space/supervisord-gpu.conf CHANGED
@@ -160,10 +160,11 @@ stderr_logfile_maxbytes=0
160
  ; simready-central deeptag-validate/, !582) answers /vlm_validate/search_result in place of
161
  ; deepsearch-api's: the same Yes/No log-prob judge on the same engine, plus each hit's path
162
  ; and caption in words-only checks (JUDGE_ASSET_CONTEXT) and an in-memory verdict cache
163
- ; (VALIDATE_CACHE_SIZE, ~120 MB at 500k entries). The engine settings are deepsearch-api's
 
164
  ; USDSEARCH_* variables, read when the shell execs (an unset one never stops supervisord).
165
  command=/usr/bin/env -u PYTHONPATH /bin/sh -c 'RERANKER_BASE_URL="$USDSEARCH_LLM_BASE_URL" RERANKER_MODEL="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_NAME="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_API_KEY="$USDSEARCH_LLM_API_KEY" exec /app/.venv/bin/python -m uvicorn app:app --host 127.0.0.1 --port 8020 --log-level warning'
166
- environment=JUDGE_ASSET_CONTEXT="path+caption",VALIDATE_CACHE_SIZE="500000",VALIDATE_MAX_EDGE="448",RERANKER_MAX_CONCURRENCY="32",RERANKER_BATCH_CONCURRENCY="16",RERANKER_COVER_MIN="0.2"
167
  directory=/app/deeptag-validate
168
  user=1000
169
  autorestart=true
 
160
  ; simready-central deeptag-validate/, !582) answers /vlm_validate/search_result in place of
161
  ; deepsearch-api's: the same Yes/No log-prob judge on the same engine, plus each hit's path
162
  ; and caption in words-only checks (JUDGE_ASSET_CONTEXT) and an in-memory verdict cache
163
+ ; (VALIDATE_CACHE_SIZE, ~120 MB at 500k entries). /vlm_validate/batch_stream (one request per page)
164
+ ; fetches each thumbnail through nginx's /images (SHIM_GATEWAY_BASE_URL). The engine settings are deepsearch-api's
165
  ; USDSEARCH_* variables, read when the shell execs (an unset one never stops supervisord).
166
  command=/usr/bin/env -u PYTHONPATH /bin/sh -c 'RERANKER_BASE_URL="$USDSEARCH_LLM_BASE_URL" RERANKER_MODEL="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_NAME="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_API_KEY="$USDSEARCH_LLM_API_KEY" exec /app/.venv/bin/python -m uvicorn app:app --host 127.0.0.1 --port 8020 --log-level warning'
167
+ environment=JUDGE_ASSET_CONTEXT="path+caption",VALIDATE_CACHE_SIZE="500000",VALIDATE_MAX_EDGE="448",RERANKER_MAX_CONCURRENCY="32",RERANKER_BATCH_CONCURRENCY="16",RERANKER_COVER_MIN="0.2",SHIM_GATEWAY_BASE_URL="http://127.0.0.1:%(ENV_PORT)s"
168
  directory=/app/deeptag-validate
169
  user=1000
170
  autorestart=true
docker/hf-space/supervisord.conf CHANGED
@@ -164,10 +164,11 @@ stderr_logfile_maxbytes=0
164
  ; simready-central deeptag-validate/, !582) answers /vlm_validate/search_result in place of
165
  ; deepsearch-api's: the same Yes/No log-prob judge on the same engine, plus each hit's path
166
  ; and caption in words-only checks (JUDGE_ASSET_CONTEXT) and an in-memory verdict cache
167
- ; (VALIDATE_CACHE_SIZE, ~120 MB at 500k entries). The engine settings are deepsearch-api's
 
168
  ; USDSEARCH_* variables, read when the shell execs (an unset one never stops supervisord).
169
  command=/usr/bin/env -u PYTHONPATH /bin/sh -c 'RERANKER_BASE_URL="$USDSEARCH_LLM_BASE_URL" RERANKER_MODEL="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_NAME="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_API_KEY="$USDSEARCH_LLM_API_KEY" exec /app/.venv/bin/python -m uvicorn app:app --host 127.0.0.1 --port 8020 --log-level warning'
170
- environment=JUDGE_ASSET_CONTEXT="path+caption",VALIDATE_CACHE_SIZE="500000",VALIDATE_MAX_EDGE="448",RERANKER_MAX_CONCURRENCY="32",RERANKER_BATCH_CONCURRENCY="16",RERANKER_COVER_MIN="0.2"
171
  directory=/app/deeptag-validate
172
  user=1000
173
  autorestart=true
 
164
  ; simready-central deeptag-validate/, !582) answers /vlm_validate/search_result in place of
165
  ; deepsearch-api's: the same Yes/No log-prob judge on the same engine, plus each hit's path
166
  ; and caption in words-only checks (JUDGE_ASSET_CONTEXT) and an in-memory verdict cache
167
+ ; (VALIDATE_CACHE_SIZE, ~120 MB at 500k entries). /vlm_validate/batch_stream (one request per page)
168
+ ; fetches each thumbnail through nginx's /images (SHIM_GATEWAY_BASE_URL). The engine settings are deepsearch-api's
169
  ; USDSEARCH_* variables, read when the shell execs (an unset one never stops supervisord).
170
  command=/usr/bin/env -u PYTHONPATH /bin/sh -c 'RERANKER_BASE_URL="$USDSEARCH_LLM_BASE_URL" RERANKER_MODEL="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_NAME="$USDSEARCH_VISION_VALIDATION_MODEL" RERANKER_API_KEY="$USDSEARCH_LLM_API_KEY" exec /app/.venv/bin/python -m uvicorn app:app --host 127.0.0.1 --port 8020 --log-level warning'
171
+ environment=JUDGE_ASSET_CONTEXT="path+caption",VALIDATE_CACHE_SIZE="500000",VALIDATE_MAX_EDGE="448",RERANKER_MAX_CONCURRENCY="32",RERANKER_BATCH_CONCURRENCY="16",RERANKER_COVER_MIN="0.2",SHIM_GATEWAY_BASE_URL="http://127.0.0.1:%(ENV_PORT)s"
172
  directory=/app/deeptag-validate
173
  user=1000
174
  autorestart=true
licenses/extras-usd-search-explorer-ui-bundle-javascript-dependencies.txt CHANGED
@@ -1,4 +1,4 @@
1
- Third-party notices — SimReady Central Explorer slim-ed68869f
2
 
3
  The software in this web application's browser bundle includes the packages below, each under its own
4
  license. Each entry gives the package, its version, its license and the license / notice text it ships.
 
1
+ Third-party notices — SimReady Central Explorer slim-00020251
2
 
3
  The software in this web application's browser bundle includes the packages below, each under its own
4
  license. Each entry gives the package, its version, its license and the license / notice text it ships.
services/explorer/dist/build-info.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "product": "simready-central-slim-explorer",
3
- "version": "slim-ed68869f",
4
- "bundle_id": "main.f5c72dd3.js",
5
- "built_at": "2026-10-07T10:59:27Z",
6
- "flags": {"public_mode": true, "email_auth": false, "create_ui": false, "hierarchy_editor": false, "create_search": false, "auth_ui": false, "credentials_ui": false, "index_management": false, "inference_backend": "hub", "vlm_asset_refs": false, "validation_image_max_px": 448, "validation_max_retries": 0, "validation_max_concurrent": 32, "validation_tail_concurrent": 8, "validation_eager_count": 50, "validation_batch_stream": false, "validation_score_scale": "percent", "parse_gate_fields": true, "parse_fast_path": true, "dependency_views": true, "model_viewer": false, "library_viewer": true, "library_media": "runtime", "spell_correction": false, "downloads": "runtime", "submit_content": "runtime", "third_party_notices": "runtime"}
7
  }
 
1
  {
2
  "product": "simready-central-slim-explorer",
3
+ "version": "slim-00020251",
4
+ "bundle_id": "main.7a0cdb58.js",
5
+ "built_at": "2026-10-07T15:17:23Z",
6
+ "flags": {"public_mode": true, "email_auth": false, "create_ui": false, "hierarchy_editor": false, "create_search": false, "auth_ui": false, "credentials_ui": false, "index_management": false, "inference_backend": "hub", "vlm_asset_refs": false, "validation_image_max_px": 448, "validation_max_retries": 0, "validation_max_concurrent": 32, "validation_tail_concurrent": 8, "validation_eager_count": 50, "validation_batch_stream": true, "library_idle_prefetch": false, "validation_score_scale": "percent", "parse_gate_fields": true, "parse_fast_path": true, "dependency_views": true, "model_viewer": false, "library_viewer": true, "library_media": "runtime", "spell_correction": false, "downloads": "runtime", "submit_content": "runtime", "third_party_notices": "runtime"}
7
  }
services/explorer/dist/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/ds.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="SimReady Central — SimReady asset search"/><meta name="ui-version" content="slim-ed68869f"><script src="/config.js"></script><title>SimReady Central</title><script defer="defer" src="/static/js/main.f5c72dd3.js"></script><link href="/static/css/main.cebcace5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
 
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/ds.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="SimReady Central — SimReady asset search"/><meta name="ui-version" content="slim-00020251"><script src="/config.js"></script><title>SimReady Central</title><script defer="defer" src="/static/js/main.7a0cdb58.js"></script><link href="/static/css/main.cebcace5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
services/explorer/dist/static/js/{main.f5c72dd3.js → main.7a0cdb58.js} RENAMED
The diff for this file is too large to render. See raw diff
 
services/explorer/dist/static/js/{main.f5c72dd3.js.LICENSE.txt → main.7a0cdb58.js.LICENSE.txt} RENAMED
File without changes
services/explorer/dist/third-party-notices.txt CHANGED
@@ -1,4 +1,4 @@
1
- Third-party notices — SimReady Central Explorer slim-ed68869f
2
 
3
  The software in this web application's browser bundle includes the packages below, each under its own
4
  license. Each entry gives the package, its version, its license and the license / notice text it ships.
 
1
+ Third-party notices — SimReady Central Explorer slim-00020251
2
 
3
  The software in this web application's browser bundle includes the packages below, each under its own
4
  license. Each entry gives the package, its version, its license and the license / notice text it ships.