title: Dream QA emoji: 🌤️ colorFrom: green colorTo: yellow sdk: gradio sdk_version: 4.44.1 python_version: "3.10" app_file: app.py pinned: false license: mit short_description: Morning dream Q&A with one grounded Today Tip. models:
A Build Small Hackathon Gradio app that turns a fresh dream into one grounded Morning Ticket.
The Hugging Face Space may still be named Dream Customs for continuity, but the current product direction is Dream QA / 清晨问讯室: record a dream, answer or skip one gentle question, and receive a screenshot-friendly ticket with one Today Tip.
The public hackathon demo is English-first for international judges. A visible in-app language toggle keeps the Chinese experience available as 中文.
Dream QA accepts dream fragments by text, image, or voice. It turns those fragments into a shared dream intake, extracts up to three concrete dream anchors, asks one grounded follow-up question, and returns a Morning Ticket: the Today Tip first, a tiny 5-minute action, and a short non-certain supporting reflection.
The fastest demo path is text or image first: choose a sample dream, or enter a short dream about a dead phone, a late elevator, or a misunderstood friend, then answer or skip one grounded question. Voice input is available as an ASR path, but the primary demo should not rely on live transcription.
This is not a therapy, diagnosis, or prophecy product.
videos/2026-06-15-dreamqa-v2/ux01_full_ux.mp4 - train platform + direction sign.videos/2026-06-15-dreamqa-v2/ux02_full_ux.mp4 - elevator buttons + floor 14 + work message.videos/2026-06-15-dreamqa-v2/ux03_full_ux.mp4 - floating table + loose keys + sunrise line.docs/submission/2026-06-14-build-small-final-pack.md.OpenAI Codex was used as the primary coding and release agent for this submission. Codex helped implement and harden the Gradio flow, refine the Dream QA UI and copy, generate and review demo evidence, coordinate GitHub and Hugging Face Space updates, and prepare the final README/social/video submission package.
The linked GitHub repository records the development trail and includes Codex-attributed final packaging commits. The Space README also declares the openai-codex tag so the project is visible for the OpenAI Codex prize review.
openbmb/MiniCPM-V-4.6 for image/sketch/note understanding.openbmb/MiniCPM5-1B for dream summary, follow-up questions, interpretation, and Today Tip generation.中文.English / 中文.梦境问答台 wording.docs/spec.mddocs/prd.mddocs/handoff.mdDESIGN.mddocs/prototypes/2026-06-08-dream-qa-mobile-flow.pngdocs/prototypes/2026-06-08-dream-qa-desktop-workbench.pngdocs/prototypes/2026-06-08-dream-qa-tips-card.pngpython3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python app.py
Open http://127.0.0.1:7860.
For pre-merge UI review, run the same app.py entrypoint with the local Space mirror wrapper:
.venv/bin/python scripts/local_space_mirror.py
Open http://127.0.0.1:7862, then verify the Gradio config in another terminal:
.venv/bin/python scripts/smoke_local_space_mirror.py
Use this path before merging Hugging Face Space PRs so UI changes can be reviewed locally. Details: docs/local-space-mirror.md.
ollama pull hf.co/openbmb/MiniCPM5-1B-GGUF:Q8_0
ollama pull openbmb/minicpm-v4.6
Then switch the UI engine controls from demo to ollama.
Local smoke notes from this Mac mini:
hf.co/openbmb/MiniCPM5-1B-GGUF:Q8_0 loads in Ollama, but current output was malformed for JSON prompts.openbmb/minicpm-v4.6 pulled successfully, but current Ollama runner returned unable to load model.The public Space stays lightweight and can call private Modal endpoints through runtime secrets:
DREAM_CUSTOMS_TEXT_ENDPOINT: Modal text route for openbmb/MiniCPM5-1B.DREAM_CUSTOMS_VISION_ENDPOINT: Modal vision route for openbmb/MiniCPM-V-4.6.DREAM_CUSTOMS_ASR_ENDPOINT: Modal ASR adapter route for voice-note transcription.DREAM_CUSTOMS_HOSTED_TOKEN: shared bearer token checked by Modal and sent by the Space.Set these only as Hugging Face Space repository secrets or local shell variables. Do not store values in .env, docs, logs, screenshots, or git. Missing endpoints or route failures fall back to deterministic demo behavior.
The Gradio UI defaults to modal for text, vision, and voice transcription backends, so a configured Space enters the private Modal routes first. The demo backend remains available in developer settings and as the deterministic fallback path when hosted routes are missing or fail.
The Hugging Face Space may run on ZeroGPU for hackathon hardware eligibility. dream_customs.zerogpu registers a lightweight @spaces.GPU startup probe so ZeroGPU accepts the app, but real MiniCPM inference still happens on the private Modal backend.
Token-safe text smoke:
python - <<'PY'
import os
from dream_customs.models import HostedMiniCPMTextClient
client = HostedMiniCPMTextClient(
endpoint=os.environ["DREAM_CUSTOMS_TEXT_ENDPOINT"],
token=os.getenv("DREAM_CUSTOMS_HOSTED_TOKEN", ""),
)
result = client.generate_negotiation("I missed an elevator in a foggy dream.")
print(result)
PY
Token-safe vision smoke:
python - <<'PY'
import os
from dream_customs.models import HostedMiniCPMVisionClient
client = HostedMiniCPMVisionClient(
endpoint=os.environ["DREAM_CUSTOMS_VISION_ENDPOINT"],
token=os.getenv("DREAM_CUSTOMS_HOSTED_TOKEN", ""),
)
print(client.extract_clues(os.environ["DREAM_CUSTOMS_SMOKE_IMAGE"]))
PY
python -m pytest -q
python scripts/evaluate_today_tip_quality.py
Latest V2 full UX smoke:
docs/smoke/2026-06-15-dreamqa-v2-full-ux-smoke.mdEarlier local Dream QA refactor smoke:
docs/smoke/2026-06-08-dream-qa-refactor-smoke.mddocs/smoke/2026-06-08-post-refactor-polish-smoke.mdHistorical smoke notes and earlier pact/customs plans have been archived to archive/dream-customs-legacy/. The current implementation target is the Dream QA flow documented in docs/handoff.md, docs/spec.md, and docs/prd.md.
This is not a therapy or diagnosis product. It gives playful reflection, one small today tip, and escalation copy for severe distress.
12 commits
Python
100.0%
title: Dream QA emoji: 🌤️ colorFrom: green colorTo: yellow sdk: gradio sdk_version: 4.44.1 python_version: "3.10" app_file: app.py pinned: false license: mit short_description: Morning dream Q&A with one grounded Today Tip. models:
A Build Small Hackathon Gradio app that turns a fresh dream into one grounded Morning Ticket.
The Hugging Face Space may still be named Dream Customs for continuity, but the current product direction is Dream QA / 清晨问讯室: record a dream, answer or skip one gentle question, and receive a screenshot-friendly ticket with one Today Tip.
The public hackathon demo is English-first for international judges. A visible in-app language toggle keeps the Chinese experience available as 中文.
Dream QA accepts dream fragments by text, image, or voice. It turns those fragments into a shared dream intake, extracts up to three concrete dream anchors, asks one grounded follow-up question, and returns a Morning Ticket: the Today Tip first, a tiny 5-minute action, and a short non-certain supporting reflection.
The fastest demo path is text or image first: choose a sample dream, or enter a short dream about a dead phone, a late elevator, or a misunderstood friend, then answer or skip one grounded question. Voice input is available as an ASR path, but the primary demo should not rely on live transcription.
This is not a therapy, diagnosis, or prophecy product.
videos/2026-06-15-dreamqa-v2/ux01_full_ux.mp4 - train platform + direction sign.videos/2026-06-15-dreamqa-v2/ux02_full_ux.mp4 - elevator buttons + floor 14 + work message.videos/2026-06-15-dreamqa-v2/ux03_full_ux.mp4 - floating table + loose keys + sunrise line.docs/submission/2026-06-14-build-small-final-pack.md.OpenAI Codex was used as the primary coding and release agent for this submission. Codex helped implement and harden the Gradio flow, refine the Dream QA UI and copy, generate and review demo evidence, coordinate GitHub and Hugging Face Space updates, and prepare the final README/social/video submission package.
The linked GitHub repository records the development trail and includes Codex-attributed final packaging commits. The Space README also declares the openai-codex tag so the project is visible for the OpenAI Codex prize review.
openbmb/MiniCPM-V-4.6 for image/sketch/note understanding.openbmb/MiniCPM5-1B for dream summary, follow-up questions, interpretation, and Today Tip generation.中文.English / 中文.梦境问答台 wording.docs/spec.mddocs/prd.mddocs/handoff.mdDESIGN.mddocs/prototypes/2026-06-08-dream-qa-mobile-flow.pngdocs/prototypes/2026-06-08-dream-qa-desktop-workbench.pngdocs/prototypes/2026-06-08-dream-qa-tips-card.pngpython3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python app.py
Open http://127.0.0.1:7860.
For pre-merge UI review, run the same app.py entrypoint with the local Space mirror wrapper:
.venv/bin/python scripts/local_space_mirror.py
Open http://127.0.0.1:7862, then verify the Gradio config in another terminal:
.venv/bin/python scripts/smoke_local_space_mirror.py
Use this path before merging Hugging Face Space PRs so UI changes can be reviewed locally. Details: docs/local-space-mirror.md.
ollama pull hf.co/openbmb/MiniCPM5-1B-GGUF:Q8_0
ollama pull openbmb/minicpm-v4.6
Then switch the UI engine controls from demo to ollama.
Local smoke notes from this Mac mini:
hf.co/openbmb/MiniCPM5-1B-GGUF:Q8_0 loads in Ollama, but current output was malformed for JSON prompts.openbmb/minicpm-v4.6 pulled successfully, but current Ollama runner returned unable to load model.The public Space stays lightweight and can call private Modal endpoints through runtime secrets:
DREAM_CUSTOMS_TEXT_ENDPOINT: Modal text route for openbmb/MiniCPM5-1B.DREAM_CUSTOMS_VISION_ENDPOINT: Modal vision route for openbmb/MiniCPM-V-4.6.DREAM_CUSTOMS_ASR_ENDPOINT: Modal ASR adapter route for voice-note transcription.DREAM_CUSTOMS_HOSTED_TOKEN: shared bearer token checked by Modal and sent by the Space.Set these only as Hugging Face Space repository secrets or local shell variables. Do not store values in .env, docs, logs, screenshots, or git. Missing endpoints or route failures fall back to deterministic demo behavior.
The Gradio UI defaults to modal for text, vision, and voice transcription backends, so a configured Space enters the private Modal routes first. The demo backend remains available in developer settings and as the deterministic fallback path when hosted routes are missing or fail.
The Hugging Face Space may run on ZeroGPU for hackathon hardware eligibility. dream_customs.zerogpu registers a lightweight @spaces.GPU startup probe so ZeroGPU accepts the app, but real MiniCPM inference still happens on the private Modal backend.
Token-safe text smoke:
python - <<'PY'
import os
from dream_customs.models import HostedMiniCPMTextClient
client = HostedMiniCPMTextClient(
endpoint=os.environ["DREAM_CUSTOMS_TEXT_ENDPOINT"],
token=os.getenv("DREAM_CUSTOMS_HOSTED_TOKEN", ""),
)
result = client.generate_negotiation("I missed an elevator in a foggy dream.")
print(result)
PY
Token-safe vision smoke:
python - <<'PY'
import os
from dream_customs.models import HostedMiniCPMVisionClient
client = HostedMiniCPMVisionClient(
endpoint=os.environ["DREAM_CUSTOMS_VISION_ENDPOINT"],
token=os.getenv("DREAM_CUSTOMS_HOSTED_TOKEN", ""),
)
print(client.extract_clues(os.environ["DREAM_CUSTOMS_SMOKE_IMAGE"]))
PY
python -m pytest -q
python scripts/evaluate_today_tip_quality.py
Latest V2 full UX smoke:
docs/smoke/2026-06-15-dreamqa-v2-full-ux-smoke.mdEarlier local Dream QA refactor smoke:
docs/smoke/2026-06-08-dream-qa-refactor-smoke.mddocs/smoke/2026-06-08-post-refactor-polish-smoke.mdHistorical smoke notes and earlier pact/customs plans have been archived to archive/dream-customs-legacy/. The current implementation target is the Dream QA flow documented in docs/handoff.md, docs/spec.md, and docs/prd.md.
This is not a therapy or diagnosis product. It gives playful reflection, one small today tip, and escalation copy for severe distress.
12 commits
Python
100.0%