Spaces:
Paused
Paused
fix: Gradio 5.50.0 (supports Python 3.13, no pydub/audioop dep)
Browse files- README.md +4 -4
- __pycache__/app.cpython-312.pyc +0 -0
- app.py +5 -1
- requirements.txt +1 -3
README.md
CHANGED
|
@@ -4,7 +4,7 @@ emoji: ✨
|
|
| 4 |
colorFrom: yellow
|
| 5 |
colorTo: gray
|
| 6 |
sdk: gradio
|
| 7 |
-
sdk_version: 5.
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
tags:
|
|
@@ -22,7 +22,7 @@ tags:
|
|
| 22 |
|
| 23 |
**A daily ritual where your future self sends you transmissions.**
|
| 24 |
|
| 25 |
-
Check in with one word
|
| 26 |
|
| 27 |
All inference runs on-device via three small models — no cloud dependencies, no API bills, no data uploaded.
|
| 28 |
|
|
@@ -54,13 +54,13 @@ Each model is well under 32B params. Total: ~3.1B across all three models — qu
|
|
| 54 |
| **NVIDIA Nemotron** | Nemotron-Parse for structured insight extraction from user notes |
|
| 55 |
| **Tiny Titan** | ~3.1B total across all models — genuinely tiny |
|
| 56 |
| **Best Agent** | Multi-step agentic pipeline: check-in → extract → generate → choice → reaction → persist |
|
| 57 |
-
| **Off Brand** | Custom
|
| 58 |
| **Best Demo** | Full demo video + social post (links below) |
|
| 59 |
| **Bonus Quest Champion** | Targeting 6+ bonus/sponsor criteria simultaneously |
|
| 60 |
|
| 61 |
## Tech
|
| 62 |
|
| 63 |
-
- **UI:** Gradio 5 with custom
|
| 64 |
- **LLM:** MiniCPM 2.5 via 🤗 Transformers with torch.compile + SDPA attention
|
| 65 |
- **Extraction:** Nemotron-Parse (NVIDIA) with keyword fallback when GPU is constrained
|
| 66 |
- **TTS:** Kokoro 82M — generates WAV output for each transmission
|
|
|
|
| 4 |
colorFrom: yellow
|
| 5 |
colorTo: gray
|
| 6 |
sdk: gradio
|
| 7 |
+
sdk_version: 5.50.0
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
tags:
|
|
|
|
| 22 |
|
| 23 |
**A daily ritual where your future self sends you transmissions.**
|
| 24 |
|
| 25 |
+
A private future-radio, not a dashboard. Check in with one word, receive a voice transmission from across time, make a tiny choice that reshapes who gets to speak tomorrow. The whole ritual lives inside a single signal chamber — no card-grid, no SaaS, no scroll.
|
| 26 |
|
| 27 |
All inference runs on-device via three small models — no cloud dependencies, no API bills, no data uploaded.
|
| 28 |
|
|
|
|
| 54 |
| **NVIDIA Nemotron** | Nemotron-Parse for structured insight extraction from user notes |
|
| 55 |
| **Tiny Titan** | ~3.1B total across all models — genuinely tiny |
|
| 56 |
| **Best Agent** | Multi-step agentic pipeline: check-in → extract → generate → choice → reaction → persist |
|
| 57 |
+
| **Off Brand** | Custom transmission-console interface (Fraunces + IBM Plex Mono), atmospheric signal styling with layered gradients, animated tuning-state waves, voice-orb constellation rail, and a horizontal signal-path progress bar — no card-grid dashboard |
|
| 58 |
| **Best Demo** | Full demo video + social post (links below) |
|
| 59 |
| **Bonus Quest Champion** | Targeting 6+ bonus/sponsor criteria simultaneously |
|
| 60 |
|
| 61 |
## Tech
|
| 62 |
|
| 63 |
+
- **UI:** Gradio 5 with a custom transmission-console skin (Fraunces serif for the chamber voice, IBM Plex Mono for instrument labels), atmospheric gradients and scanlines, a horizontal voice-orb constellation rail, and a signal-path progress bar in place of step pills
|
| 64 |
- **LLM:** MiniCPM 2.5 via 🤗 Transformers with torch.compile + SDPA attention
|
| 65 |
- **Extraction:** Nemotron-Parse (NVIDIA) with keyword fallback when GPU is constrained
|
| 66 |
- **TTS:** Kokoro 82M — generates WAV output for each transmission
|
__pycache__/app.cpython-312.pyc
CHANGED
|
Binary files a/__pycache__/app.cpython-312.pyc and b/__pycache__/app.cpython-312.pyc differ
|
|
|
app.py
CHANGED
|
@@ -1050,11 +1050,14 @@ def _render_transmission(state: AppState) -> str:
|
|
| 1050 |
title = _chamber_title(f'<em>{t.title}</em>')
|
| 1051 |
body_html = _chamber_body(t.text)
|
| 1052 |
actions = _audio_module(label, state.today_audio) if state.today_audio else ""
|
|
|
|
|
|
|
|
|
|
| 1053 |
tonight = _chamber_callout("tonight's move", t.action_prompt)
|
| 1054 |
tomorrow = _chamber_callout("tomorrow", t.cliffhanger)
|
| 1055 |
out = _identity_strip(state)
|
| 1056 |
out += _signal_chamber(eyebrow, title, body_html, actions_html=actions, callout_html=tonight)
|
| 1057 |
-
out +=
|
| 1058 |
out += _constellation_rail(state)
|
| 1059 |
out += _signal_path("choose")
|
| 1060 |
out += _memory_log(state, limit=5)
|
|
@@ -1095,6 +1098,7 @@ def _render_history(state: AppState) -> str:
|
|
| 1095 |
out += _signal_chamber(eyebrow, title, body)
|
| 1096 |
out += _constellation_rail(state)
|
| 1097 |
out += _memory_log(state, limit=20)
|
|
|
|
| 1098 |
out += _signal_footer()
|
| 1099 |
return out
|
| 1100 |
|
|
|
|
| 1050 |
title = _chamber_title(f'<em>{t.title}</em>')
|
| 1051 |
body_html = _chamber_body(t.text)
|
| 1052 |
actions = _audio_module(label, state.today_audio) if state.today_audio else ""
|
| 1053 |
+
# The chamber holds the audio module + tonight's move. Tomorrow's cliffhanger
|
| 1054 |
+
# is shown as a second anchor line below the chamber so the page has a clear
|
| 1055 |
+
# rhythm: text → audio + tonight → tomorrow → constellation → memory log.
|
| 1056 |
tonight = _chamber_callout("tonight's move", t.action_prompt)
|
| 1057 |
tomorrow = _chamber_callout("tomorrow", t.cliffhanger)
|
| 1058 |
out = _identity_strip(state)
|
| 1059 |
out += _signal_chamber(eyebrow, title, body_html, actions_html=actions, callout_html=tonight)
|
| 1060 |
+
out += tomorrow
|
| 1061 |
out += _constellation_rail(state)
|
| 1062 |
out += _signal_path("choose")
|
| 1063 |
out += _memory_log(state, limit=5)
|
|
|
|
| 1098 |
out += _signal_chamber(eyebrow, title, body)
|
| 1099 |
out += _constellation_rail(state)
|
| 1100 |
out += _memory_log(state, limit=20)
|
| 1101 |
+
out += _signal_path("react" if state.choice_made else "check-in")
|
| 1102 |
out += _signal_footer()
|
| 1103 |
return out
|
| 1104 |
|
requirements.txt
CHANGED
|
@@ -1,8 +1,6 @@
|
|
| 1 |
# FutureSelves — Build Small HF Space
|
| 2 |
# Core
|
| 3 |
-
gradio==5.
|
| 4 |
-
# Python 3.13 compat: audioop removed in 3.13, needed by pydub/gradio 4.x
|
| 5 |
-
# Gradio 5.x uses its own audio handling
|
| 6 |
torch>=2.2
|
| 7 |
transformers>=4.40
|
| 8 |
sentencepiece>=0.2
|
|
|
|
| 1 |
# FutureSelves — Build Small HF Space
|
| 2 |
# Core
|
| 3 |
+
gradio==5.50.0
|
|
|
|
|
|
|
| 4 |
torch>=2.2
|
| 5 |
transformers>=4.40
|
| 6 |
sentencepiece>=0.2
|