# Dream Customs / 梦境海关 Product Spec Last updated: 2026-06-05 ## 1. One-Line Concept 梦境海关帮用户和昨晚的梦结盟:用户用语音、图片或文字申报梦境,系统把不安转成第二天的小建议,把怪梦转成一件 5 分钟能完成的有趣小事。 ## 2. Contest Fit - Event: Build Small Hackathon. - Build window: 2026-06-05 to 2026-06-15. - Deployment target: Gradio app on Hugging Face Space. - Model constraint: total model parameters must be <= 32B. - Primary track fit: An Adventure in Thousand Token Wood, because the AI is the load-bearing delight of the experience. - Secondary story: Backyard AI, because the concept comes from a real sleep problem: frequent vivid dreams and poor sleep. - Model family constraint: prioritize MiniCPM models before considering any unrelated small model. ## 3. Core User Problem The user wakes up after vivid or unsettling dreams and wants a quick, non-clinical way to make sense of the dream before the day begins. Existing dream tools often feel either too mystical, too diagnostic, or too generic. This product should feel like a playful ritual that gives emotional order without pretending to be therapy. ## 4. Product Principles 1. Do not diagnose. 2. Do not frighten the user. 3. Convert dream residue into a small next-day action. 4. Keep the output weird enough to show a friend. 5. Make the AI the main experience, not a helper hidden behind a form. 6. Keep the MVP stable enough for Gradio Space and demo-video recording. ## 5. User Inputs All inputs are normalized into one `DreamIntake` object so the app does not become three separate products. ### 5.1 Text Input The user writes: - Dream narrative. - Wake-up mood. - Repeated symbols. - Any second-day concern or wish. ### 5.2 Image Input The user uploads: - A dream sketch. - A bedside note. - A screenshot or photo related to the dream. - A quick doodle drawn after waking. MiniCPM-V-4.6 extracts visual clues and returns structured text. ### 5.3 Voice Input The user speaks the dream immediately after waking. Implementation note: MiniCPM-V-4.6 and MiniCPM5-1B are not raw audio ASR models. Voice input needs a small transcription adapter. The adapter only converts audio to text; dream understanding remains MiniCPM-driven. ## 6. Dream Intake Schema ```json { "dream_text": "我梦见自己一直赶不上电梯,楼层按钮会融化。", "voice_transcript": "我梦见我一直赶不上电梯...", "visual_clues": ["歪斜电梯门", "蓝色楼道", "融化的数字 14"], "mood": "焦虑但有点滑稽", "recurring_symbols": ["电梯", "迟到", "融化的按钮"], "uncertainty": "梦的后半段记不清", "user_context": "最近晚上常做梦,睡醒后想获得第二天建议" } ``` ## 7. Model Responsibilities ### MiniCPM-V-4.6 Role: dream witness. Responsibilities: - Read sketches, notes, screenshots, and photos. - Extract objects, locations, visible text, colors, spatial relationships, and emotional cues. - Return concise JSON-compatible visual clues. Non-responsibilities: - Do not generate the final alliance card. - Do not provide psychological interpretation. ### MiniCPM5-1B Role: dream diplomat. Responsibilities: - Merge dream text, voice transcript, and visual clues. - Name the dream visitor. - Ask 2-3 alliance negotiation questions. - Generate the final alliance card. - Keep tone playful, gentle, and non-clinical. ## 8. MVP User Flow 1. User opens Gradio app. 2. User submits any combination of text, image, and voice. 3. App transcribes voice if present. 4. App calls MiniCPM-V-4.6 if image is present. 5. App builds `DreamIntake`. 6. MiniCPM5-1B generates a dream visitor profile and 2-3 follow-up questions. 7. User answers questions or clicks "skip / refuse cooperation". 8. MiniCPM5-1B generates a final alliance card. 9. App renders the card as a shareable visual block and plain text. ## 9. Output Contract The final card must include: - Dream visitor name. - Entry permit number. - Carried emotional contraband. - Risk level, phrased playfully. - Alliance reading: what the dream may be trying to protect. - One practical next-day suggestion. - One 5-minute weird task. - One bedtime release phrase. - Safety note if the input indicates severe distress. Example: ```json { "visitor_name": "迟到的电梯", "permit_id": "DC-0605-014", "contraband": ["未申报的焦虑", "融化的按钮", "一小袋没来得及开始的事"], "risk_level": "橙色:需要被安置,但不需要被害怕", "alliance_reading": "这个梦像是在提醒你,今天不要把启动一件事和完成一件事混成同一个压力。", "practical_suggestion": "提前 10 分钟开始一件最小的任务,只要求打开它。", "weird_task": "给电梯写一句道歉信:抱歉总让你替我背迟到的锅。", "bedtime_release": "今日电梯已停靠,未完成事项明日再报关。", "safety_note": "" } ``` ## 10. UX Structure ### Screen 1: Dream Declaration Desk Inputs: - Textbox for dream notes. - Image upload for dream sketch or bedside note. - Audio input for spoken dream. - Optional mood selector. Primary action: - "Submit to Customs" ### Screen 2: Alliance Negotiation Content: - Dream visitor name. - 2-3 questions from the customs officer. - Buttons: answer, skip, refuse cooperation. ### Screen 3: Today's Pact Card Content: - Card-style result. - Copy text button. - Download/share image target if feasible. - "Release this dream for tonight" reset action. ## 11. Safety Boundaries The app must: - Avoid diagnoses, medical claims, or certainty about dream meaning. - Avoid telling users that a dream proves trauma, illness, or danger. - Use language such as "may be", "could be treated as", and "for today, try". - If the user mentions self-harm, intent to harm others, severe insomnia, panic, or inability to function, show a supportive escalation note. Escalation copy: > This dream sounds heavier than a playful customs ritual should handle. If you feel unsafe, unable to sleep for many nights, or worried you may hurt yourself or someone else, please reach out to a trusted person or professional support now. ## 12. Recommended MVP Scope Included: - Gradio app. - Text input. - Image input through MiniCPM-V-4.6. - Voice input through small ASR adapter. - MiniCPM5-1B prompt flow. - Result card in HTML. - Example mode for demo stability. - Basic safety classifier prompt or rule layer. Excluded from MVP: - Voice output. - Long-term account system. - Medical sleep tracking. - Dream history database. - Personalized therapy plans. - Multi-user social feed. ## 13. Grill Questions And Recommended Answers 1. Is this a therapy tool? - Recommended answer: no. It is a playful reflection and next-day ritual tool. 2. Which track should the submission emphasize? - Recommended answer: Thousand Token Wood first, Backyard AI second. 3. Should voice be core? - Recommended answer: voice input yes, voice output no for MVP. 4. Should the image input be mandatory? - Recommended answer: no. Image is a strong MiniCPM-V demo path but text alone must work. 5. What is the winning demo moment? - Recommended answer: user speaks a dream, uploads a quick sketch, and receives a strange but useful "Today's Pact" card. ## 14. Open Questions - Which ASR adapter should be used on Hugging Face Space for the MVP? - Should the first demo be in Chinese, English, or bilingual? - Do we want to submit under the same team/repo as the earlier Ordinary Relics MVP, or create a new Space? - Should the visual card support image download in MVP or only screenshot-friendly HTML?