File size: 7,684 Bytes
9bbe096
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
# 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?