Danialebrat commited on
Commit
96becf2
·
1 Parent(s): 2a7c020

Fixing deployment issues:

Browse files
.gitignore ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ **/__pycache__/
3
+ **/*.pyc
4
+ *.pyo
5
+ *.pyd
6
+ .Python
7
+ *.so
8
+ *.egg
9
+ *.egg-info/
10
+
11
+ # Environment & Secrets
12
+ .env
13
+ .env.local
14
+ *.pem
15
+ *.key
16
+
17
+ # IDE
18
+ .vscode/
19
+ .idea/
20
+ *.swp
21
+ *.swo
22
+ *~
23
+
24
+ # OS
25
+ .DS_Store
26
+ Thumbs.db
27
+
28
+ # Note: We keep ALL data files (JSON, CSV) as they are needed for the app
ai_messaging_system_v2/logs/.gitignore ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Note: We keep ALL log files (CSV, etc.) as they contain important data
2
+
3
+ # Keep directory structure
4
+ !.gitkeep
5
+ !rejections/.gitkeep
visualization/.gitignore ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ env/
8
+ venv/
9
+ ENV/
10
+ build/
11
+ develop-eggs/
12
+ dist/
13
+ downloads/
14
+ eggs/
15
+ .eggs/
16
+ lib/
17
+ lib64/
18
+ parts/
19
+ sdist/
20
+ var/
21
+ wheels/
22
+ *.egg-info/
23
+ .installed.cfg
24
+ *.egg
25
+
26
+ # Note: We keep ALL data files (JSON, CSV, etc.) as they are needed for the app
27
+
28
+ # Environment variables
29
+ .env
30
+ .env.local
31
+
32
+ # IDEs
33
+ .vscode/
34
+ .idea/
35
+ *.swp
36
+ *.swo
37
+ *~
38
+
39
+ # OS
40
+ .DS_Store
41
+ Thumbs.db
42
+
43
+ # Streamlit
44
+ .streamlit/secrets.toml
45
+
46
+ # Logs
47
+ *.log
visualization/data/configs/drumeo_re_engagement_test.json ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "brand": "drumeo",
3
+ "campaign_type": "re_engagement",
4
+ "campaign_name": "UI-Test-Campaign-Re-engagement",
5
+ "campaign_instructions": "Keep messages encouraging and motivational. Focus on getting users excited about practicing.",
6
+ "1": {
7
+ "stage": 1,
8
+ "model": "gpt-5-nano",
9
+ "personalization": true,
10
+ "involve_recsys_result": true,
11
+ "recsys_contents": [
12
+ "workout",
13
+ "course",
14
+ "quick_tips"
15
+ ],
16
+ "specific_content_id": null,
17
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
18
+ "instructions": "",
19
+ "sample_examples": "Header: Your next lesson is waiting 👇 \n Message: Check it out now and improve your playing!",
20
+ "identifier_column": "user_id",
21
+ "platform": "push"
22
+ },
23
+ "2": {
24
+ "stage": 2,
25
+ "model": "gemini-2.5-flash-lite",
26
+ "personalization": true,
27
+ "involve_recsys_result": true,
28
+ "recsys_contents": [
29
+ "workout",
30
+ "course",
31
+ "quick_tips"
32
+ ],
33
+ "specific_content_id": null,
34
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
35
+ "instructions": "",
36
+ "sample_examples": "Header: It's a great day to play 🤩,\n Message: It's been a few days — warm up with a quick lesson!",
37
+ "identifier_column": "user_id",
38
+ "platform": "push"
39
+ },
40
+ "3": {
41
+ "stage": 3,
42
+ "model": "gemini-2.5-flash-lite",
43
+ "personalization": true,
44
+ "involve_recsys_result": true,
45
+ "recsys_contents": [
46
+ "workout",
47
+ "course",
48
+ "quick_tips"
49
+ ],
50
+ "specific_content_id": null,
51
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
52
+ "instructions": "",
53
+ "sample_examples": "Header: Practice makes progress 💪, \nMessage: You don't need to be perfect. But you do need practice to reach your goals!",
54
+ "identifier_column": "user_id",
55
+ "platform": "push"
56
+ },
57
+ "4": {
58
+ "stage": 4,
59
+ "model": "gemini-2.5-flash-lite",
60
+ "personalization": true,
61
+ "involve_recsys_result": true,
62
+ "recsys_contents": [
63
+ "workout",
64
+ "course",
65
+ "quick_tips"
66
+ ],
67
+ "specific_content_id": null,
68
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
69
+ "instructions": "",
70
+ "sample_examples": "Header: Never stop learning, \nMessage: Take a lesson today and get back on track!",
71
+ "identifier_column": "user_id",
72
+ "platform": "push"
73
+ },
74
+ "5": {
75
+ "stage": 5,
76
+ "model": "gemini-2.5-flash-lite",
77
+ "personalization": true,
78
+ "involve_recsys_result": true,
79
+ "recsys_contents": [
80
+ "workout",
81
+ "course",
82
+ "quick_tips"
83
+ ],
84
+ "specific_content_id": null,
85
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
86
+ "instructions": "",
87
+ "sample_examples": "Header: Get back on track ⏱️\nMessage: It's been two weeks since your last practice session. Take a lesson today!",
88
+ "identifier_column": "user_id",
89
+ "platform": "push"
90
+ },
91
+ "6": {
92
+ "stage": 6,
93
+ "model": "gemini-2.5-flash-lite",
94
+ "personalization": true,
95
+ "involve_recsys_result": true,
96
+ "recsys_contents": [
97
+ "workout",
98
+ "course",
99
+ "quick_tips"
100
+ ],
101
+ "specific_content_id": null,
102
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
103
+ "instructions": "",
104
+ "sample_examples": "Header: Keep on going!\nMessage: Get back to playing today. It only takes a few minutes!",
105
+ "identifier_column": "user_id",
106
+ "platform": "push"
107
+ },
108
+ "7": {
109
+ "stage": 7,
110
+ "model": "gemini-2.5-flash-lite",
111
+ "personalization": true,
112
+ "involve_recsys_result": true,
113
+ "recsys_contents": [
114
+ "workout",
115
+ "course",
116
+ "quick_tips"
117
+ ],
118
+ "specific_content_id": null,
119
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
120
+ "instructions": "",
121
+ "sample_examples": "Header: Ready to play? 🎸\nMessage: Let's get started. Time for a quick practice session!",
122
+ "identifier_column": "user_id",
123
+ "platform": "push"
124
+ },
125
+ "8": {
126
+ "stage": 8,
127
+ "model": "gemini-2.5-flash-lite",
128
+ "personalization": true,
129
+ "involve_recsys_result": true,
130
+ "recsys_contents": [
131
+ "workout",
132
+ "course",
133
+ "quick_tips"
134
+ ],
135
+ "specific_content_id": null,
136
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
137
+ "instructions": "",
138
+ "sample_examples": "Header: Your lesson's waiting. 📥\nMessage: We want to hear you play! Dive in today.",
139
+ "identifier_column": "user_id",
140
+ "platform": "push"
141
+ },
142
+ "9": {
143
+ "stage": 9,
144
+ "model": "gemini-2.5-flash-lite",
145
+ "personalization": true,
146
+ "involve_recsys_result": true,
147
+ "recsys_contents": [
148
+ "workout",
149
+ "course",
150
+ "quick_tips"
151
+ ],
152
+ "specific_content_id": null,
153
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
154
+ "instructions": "",
155
+ "sample_examples": "Header: Time for a comeback!\nMessage: We haven't seen you in 25 days. This will help get you back into the groove!",
156
+ "identifier_column": "user_id",
157
+ "platform": "push"
158
+ },
159
+ "10": {
160
+ "stage": 10,
161
+ "model": "gemini-2.5-flash-lite",
162
+ "personalization": true,
163
+ "involve_recsys_result": true,
164
+ "recsys_contents": [
165
+ "workout",
166
+ "course",
167
+ "quick_tips"
168
+ ],
169
+ "specific_content_id": null,
170
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
171
+ "instructions": "",
172
+ "sample_examples": "Header: Have you been practicing?\nMessage: You're very talented. We'd love to hear you play again!",
173
+ "identifier_column": "user_id",
174
+ "platform": "push"
175
+ },
176
+ "11": {
177
+ "stage": 11,
178
+ "model": "gemini-2.5-flash-lite",
179
+ "personalization": true,
180
+ "involve_recsys_result": true,
181
+ "recsys_contents": [
182
+ "workout",
183
+ "course",
184
+ "quick_tips"
185
+ ],
186
+ "specific_content_id": null,
187
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
188
+ "instructions": "",
189
+ "sample_examples": "Header: We Miss You 😔Message: All your lessons will just be here when you get back!",
190
+ "identifier_column": "user_id",
191
+ "platform": "push"
192
+ }
193
+ }
visualization/data/configs/guitareo_re_engagement_test.json ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "campaign_name": "UI-Test-Campaign-Re-engagement",
3
+ "brand": "guitareo",
4
+ "campaign_instructions": "Keep messages encouraging and motivational. Focus on getting users excited about practicing.",
5
+
6
+ "1": {
7
+ "identifier_column": "user_id",
8
+ "stage": 1,
9
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
10
+ "recsys_contents": ["workout", "course", "quick_tips"],
11
+ "involve_recsys_result": true,
12
+ "personalization": true,
13
+ "sample_examples": "Header: Your next lesson is waiting 👇 \n Message: Check it out now and improve your playing!",
14
+ "model": "gemini-2.5-flash-lite"
15
+ },
16
+ "2": {
17
+ "identifier_column": "user_id",
18
+ "stage": 2,
19
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
20
+ "recsys_contents": ["workout", "course", "quick_tips"],
21
+ "involve_recsys_result": true,
22
+ "personalization": true,
23
+ "sample_examples": "Header: It's a great day to play 🤩,\n Message: It's been a few days — warm up with a quick lesson!",
24
+ "model": "gemini-2.5-flash-lite"
25
+ },
26
+ "3": {
27
+ "identifier_column": "user_id",
28
+ "stage": 3,
29
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
30
+ "recsys_contents": ["workout", "course", "quick_tips"],
31
+ "involve_recsys_result": true,
32
+ "personalization": true,
33
+ "sample_examples": "Header: Practice makes progress 💪, \nMessage: You don't need to be perfect. But you do need practice to reach your goals!",
34
+ "model": "gemini-2.5-flash-lite"
35
+ },
36
+ "4": {
37
+ "identifier_column": "user_id",
38
+ "stage": 4,
39
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
40
+ "recsys_contents": ["workout", "course", "quick_tips"],
41
+ "involve_recsys_result": true,
42
+ "personalization": true,
43
+ "sample_examples": "Header: Never stop learning, \nMessage: Take a lesson today and get back on track!",
44
+ "model": "gemini-2.5-flash-lite"
45
+ },
46
+ "5": {
47
+ "identifier_column": "user_id",
48
+ "stage": 5,
49
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
50
+ "recsys_contents": ["workout", "course", "quick_tips"],
51
+ "involve_recsys_result": true,
52
+ "personalization": true,
53
+ "sample_examples": "Header: Get back on track ⏱️\nMessage: It's been two weeks since your last practice session. Take a lesson today!",
54
+ "model": "gemini-2.5-flash-lite"
55
+ },
56
+ "6": {
57
+ "identifier_column": "user_id",
58
+ "stage": 6,
59
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
60
+ "recsys_contents": ["workout", "course", "quick_tips"],
61
+ "involve_recsys_result": true,
62
+ "personalization": true,
63
+ "sample_examples": "Header: Keep on going!\nMessage: Get back to playing today. It only takes a few minutes!",
64
+ "model": "gemini-2.5-flash-lite"
65
+ },
66
+ "7": {
67
+ "identifier_column": "user_id",
68
+ "stage": 7,
69
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
70
+ "recsys_contents": ["workout", "course", "quick_tips"],
71
+ "involve_recsys_result": true,
72
+ "personalization": true,
73
+ "sample_examples": "Header: Ready to play? 🎸\nMessage: Let's get started. Time for a quick practice session!",
74
+ "model": "gemini-2.5-flash-lite"
75
+ },
76
+ "8": {
77
+ "identifier_column": "user_id",
78
+ "stage": 8,
79
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
80
+ "recsys_contents": ["workout", "course", "quick_tips"],
81
+ "involve_recsys_result": true,
82
+ "personalization": true,
83
+ "sample_examples": "Header: Your lesson's waiting. 📥\nMessage: We want to hear you play! Dive in today.",
84
+ "model": "gemini-2.5-flash-lite"
85
+ },
86
+ "9": {
87
+ "identifier_column": "user_id",
88
+ "stage": 9,
89
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
90
+ "recsys_contents": ["workout", "course", "quick_tips"],
91
+ "involve_recsys_result": true,
92
+ "personalization": true,
93
+ "sample_examples": "Header: Time for a comeback!\nMessage: We haven't seen you in 25 days. This will help get you back into the groove!",
94
+ "model": "gemini-2.5-flash-lite"
95
+ },
96
+ "10": {
97
+ "identifier_column": "user_id",
98
+ "stage": 10,
99
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
100
+ "recsys_contents": ["workout", "course", "quick_tips"],
101
+ "involve_recsys_result": true,
102
+ "personalization": true,
103
+ "sample_examples": "Header: Have you been practicing?\nMessage: You're very talented. We'd love to hear you play again!",
104
+ "model": "gemini-2.5-flash-lite"
105
+ },
106
+ "11": {
107
+ "identifier_column": "user_id",
108
+ "stage": 11,
109
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
110
+ "recsys_contents": ["workout", "course", "quick_tips"],
111
+ "involve_recsys_result": true,
112
+ "personalization": true,
113
+ "sample_examples": "Header: We Miss You 😔Message: All your lessons will just be here when you get back!",
114
+ "model": "gemini-2.5-flash-lite"
115
+ }
116
+ }
visualization/data/configs/pianote_re_engagement_test.json ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "campaign_name": "UI-Test-Campaign-Re-engagement",
3
+ "brand": "pianote",
4
+ "campaign_instructions": "Keep messages encouraging and motivational. Focus on getting users excited about practicing.",
5
+
6
+ "1": {
7
+ "identifier_column": "user_id",
8
+ "stage": 1,
9
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
10
+ "recsys_contents": ["workout", "course", "quick_tips"],
11
+ "involve_recsys_result": true,
12
+ "personalization": true,
13
+ "sample_examples": "Header: Your next lesson is waiting 👇 \n Message: Check it out now and improve your playing!",
14
+ "model": "gemini-2.5-flash-lite"
15
+ },
16
+ "2": {
17
+ "identifier_column": "user_id",
18
+ "stage": 2,
19
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
20
+ "recsys_contents": ["workout", "course", "quick_tips"],
21
+ "involve_recsys_result": true,
22
+ "personalization": true,
23
+ "sample_examples": "Header: It's a great day to play 🤩,\n Message: It's been a few days — warm up with a quick lesson!",
24
+ "model": "gemini-2.5-flash-lite"
25
+ },
26
+ "3": {
27
+ "identifier_column": "user_id",
28
+ "stage": 3,
29
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
30
+ "recsys_contents": ["workout", "course", "quick_tips"],
31
+ "involve_recsys_result": true,
32
+ "personalization": true,
33
+ "sample_examples": "Header: Practice makes progress 💪, \nMessage: You don't need to be perfect. But you do need practice to reach your goals!",
34
+ "model": "gemini-2.5-flash-lite"
35
+ },
36
+ "4": {
37
+ "identifier_column": "user_id",
38
+ "stage": 4,
39
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
40
+ "recsys_contents": ["workout", "course", "quick_tips"],
41
+ "involve_recsys_result": true,
42
+ "personalization": true,
43
+ "sample_examples": "Header: Never stop learning, \nMessage: Take a lesson today and get back on track!",
44
+ "model": "gemini-2.5-flash-lite"
45
+ },
46
+ "5": {
47
+ "identifier_column": "user_id",
48
+ "stage": 5,
49
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
50
+ "recsys_contents": ["workout", "course", "quick_tips"],
51
+ "involve_recsys_result": true,
52
+ "personalization": true,
53
+ "sample_examples": "Header: Get back on track ⏱️\nMessage: It's been two weeks since your last practice session. Take a lesson today!",
54
+ "model": "gemini-2.5-flash-lite"
55
+ },
56
+ "6": {
57
+ "identifier_column": "user_id",
58
+ "stage": 6,
59
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
60
+ "recsys_contents": ["workout", "course", "quick_tips"],
61
+ "involve_recsys_result": true,
62
+ "personalization": true,
63
+ "sample_examples": "Header: Keep on going!\nMessage: Get back to playing today. It only takes a few minutes!",
64
+ "model": "gemini-2.5-flash-lite"
65
+ },
66
+ "7": {
67
+ "identifier_column": "user_id",
68
+ "stage": 7,
69
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
70
+ "recsys_contents": ["workout", "course", "quick_tips"],
71
+ "involve_recsys_result": true,
72
+ "personalization": true,
73
+ "sample_examples": "Header: Ready to play? 🎸\nMessage: Let's get started. Time for a quick practice session!",
74
+ "model": "gemini-2.5-flash-lite"
75
+ },
76
+ "8": {
77
+ "identifier_column": "user_id",
78
+ "stage": 8,
79
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
80
+ "recsys_contents": ["workout", "course", "quick_tips"],
81
+ "involve_recsys_result": true,
82
+ "personalization": true,
83
+ "sample_examples": "Header: Your lesson's waiting. 📥\nMessage: We want to hear you play! Dive in today.",
84
+ "model": "gemini-2.5-flash-lite"
85
+ },
86
+ "9": {
87
+ "identifier_column": "user_id",
88
+ "stage": 9,
89
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
90
+ "recsys_contents": ["workout", "course", "quick_tips"],
91
+ "involve_recsys_result": true,
92
+ "personalization": true,
93
+ "sample_examples": "Header: Time for a comeback!\nMessage: We haven't seen you in 25 days. This will help get you back into the groove!",
94
+ "model": "gemini-2.5-flash-lite"
95
+ },
96
+ "10": {
97
+ "identifier_column": "user_id",
98
+ "stage": 10,
99
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
100
+ "recsys_contents": ["workout", "course", "quick_tips"],
101
+ "involve_recsys_result": true,
102
+ "personalization": true,
103
+ "sample_examples": "Header: Have you been practicing?\nMessage: You're very talented. We'd love to hear you play again!",
104
+ "model": "gemini-2.5-flash-lite"
105
+ },
106
+ "11": {
107
+ "identifier_column": "user_id",
108
+ "stage": 11,
109
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
110
+ "recsys_contents": ["workout", "course", "quick_tips"],
111
+ "involve_recsys_result": true,
112
+ "personalization": true,
113
+ "sample_examples": "Header: We Miss You 😔Message: All your lessons will just be here when you get back!",
114
+ "model": "gemini-2.5-flash-lite"
115
+ }
116
+ }
visualization/data/configs/singeo_re_engagement_test.json ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "campaign_name": "UI-Test-Campaign-Re-engagement",
3
+ "brand": "singeo",
4
+ "campaign_instructions": "Keep messages encouraging and motivational. Focus on getting users excited about practicing.",
5
+
6
+ "1": {
7
+ "identifier_column": "user_id",
8
+ "stage": 1,
9
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
10
+ "recsys_contents": ["workout", "course", "quick_tips"],
11
+ "involve_recsys_result": true,
12
+ "personalization": true,
13
+ "sample_examples": "Header: Your next lesson is waiting 👇 \n Message: Check it out now and improve your singing!",
14
+ "model": "gemini-2.5-flash-lite"
15
+ },
16
+ "2": {
17
+ "identifier_column": "user_id",
18
+ "stage": 2,
19
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
20
+ "recsys_contents": ["workout", "course", "quick_tips"],
21
+ "involve_recsys_result": true,
22
+ "personalization": true,
23
+ "sample_examples": "Header: It's a great day to sing 🤩,\n Message: It's been a few days — warm up with a quick lesson!",
24
+ "model": "gemini-2.5-flash-lite"
25
+ },
26
+ "3": {
27
+ "identifier_column": "user_id",
28
+ "stage": 3,
29
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
30
+ "recsys_contents": ["workout", "course", "quick_tips"],
31
+ "involve_recsys_result": true,
32
+ "personalization": true,
33
+ "sample_examples": "Header: Practice makes progress 💪, \nMessage: You don't need to be perfect. But you do need practice to reach your goals!",
34
+ "model": "gemini-2.5-flash-lite"
35
+ },
36
+ "4": {
37
+ "identifier_column": "user_id",
38
+ "stage": 4,
39
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
40
+ "recsys_contents": ["workout", "course", "quick_tips"],
41
+ "involve_recsys_result": true,
42
+ "personalization": true,
43
+ "sample_examples": "Header: Never stop learning, \nMessage: Take a lesson today and get back on track!",
44
+ "model": "gemini-2.5-flash-lite"
45
+ },
46
+ "5": {
47
+ "identifier_column": "user_id",
48
+ "stage": 5,
49
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
50
+ "recsys_contents": ["workout", "course", "quick_tips"],
51
+ "involve_recsys_result": true,
52
+ "personalization": true,
53
+ "sample_examples": "Header: Get back on track ⏱️\nMessage: It's been two weeks since your last practice session. Take a lesson today!",
54
+ "model": "gemini-2.5-flash-lite"
55
+ },
56
+ "6": {
57
+ "identifier_column": "user_id",
58
+ "stage": 6,
59
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
60
+ "recsys_contents": ["workout", "course", "quick_tips"],
61
+ "involve_recsys_result": true,
62
+ "personalization": true,
63
+ "sample_examples": "Header: Keep on going!\nMessage: Get back to singing today. It only takes a few minutes!",
64
+ "model": "gemini-2.5-flash-lite"
65
+ },
66
+ "7": {
67
+ "identifier_column": "user_id",
68
+ "stage": 7,
69
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
70
+ "recsys_contents": ["workout", "course", "quick_tips"],
71
+ "involve_recsys_result": true,
72
+ "personalization": true,
73
+ "sample_examples": "Header: Ready to play? 🎸\nMessage: Let's get started. Time for a quick practice session!",
74
+ "model": "gemini-2.5-flash-lite"
75
+ },
76
+ "8": {
77
+ "identifier_column": "user_id",
78
+ "stage": 8,
79
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
80
+ "recsys_contents": ["workout", "course", "quick_tips"],
81
+ "involve_recsys_result": true,
82
+ "personalization": true,
83
+ "sample_examples": "Header: Your lesson's waiting. 📥\nMessage: We want to hear you sing! Dive in today.",
84
+ "model": "gemini-2.5-flash-lite"
85
+ },
86
+ "9": {
87
+ "identifier_column": "user_id",
88
+ "stage": 9,
89
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
90
+ "recsys_contents": ["workout", "course", "quick_tips"],
91
+ "involve_recsys_result": true,
92
+ "personalization": true,
93
+ "sample_examples": "Header: Time for a comeback!\nMessage: We haven't seen you in 25 days. This will help get you back into the groove!",
94
+ "model": "gemini-2.5-flash-lite"
95
+ },
96
+ "10": {
97
+ "identifier_column": "user_id",
98
+ "stage": 10,
99
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
100
+ "recsys_contents": ["workout", "course", "quick_tips"],
101
+ "involve_recsys_result": true,
102
+ "personalization": true,
103
+ "sample_examples": "Header: Have you been practicing?\nMessage: You have a lovely voice. We'd love to hear it again!",
104
+ "model": "gemini-2.5-flash-lite"
105
+ },
106
+ "11": {
107
+ "identifier_column": "user_id",
108
+ "stage": 11,
109
+ "segment_info": "Students who haven't practiced and logged into the app after at least 3 days.",
110
+ "recsys_contents": ["workout", "course", "quick_tips"],
111
+ "involve_recsys_result": true,
112
+ "personalization": true,
113
+ "sample_examples": "Header: We Miss You 😔Message: All your lessons will just be here when you get back!",
114
+ "model": "gemini-2.5-flash-lite"
115
+ }
116
+ }