alessiodevoto commited on
Commit
f2389fe
1 Parent(s): 6a4a54e
config/config.yaml CHANGED
@@ -19,8 +19,16 @@ llm:
19
  "recommendations": "your recommendations text here",
20
  "closing": "your closing text here"
21
  }
22
- default_few_shot: null
23
-
 
 
 
 
 
 
 
 
24
 
25
  recommender_api:
26
  base_url:
@@ -33,7 +41,7 @@ app:
33
 
34
  # templates for newsletters and prompts
35
  newsletter:
36
- newsletter_example_path: "./newsletter_examples/1.html"
37
  brand_logo: "https://seeklogo.com/images/L/luisa-spagnoli-logo-EF482BEE89-seeklogo.com.png"
38
  brand_name: "Luisa Spagnoli"
39
  max_recommendations: 2
 
19
  "recommendations": "your recommendations text here",
20
  "closing": "your closing text here"
21
  }
22
+ default_few_shot: |
23
+ ###
24
+ {
25
+ "greeting": "Hello [customer name]",
26
+ "intro": "It’s such a pleasure to reconnect with you! Your selections, such as the [item 1] and the [item 2], were such standout choices. I’d love to help you discover more pieces that complement your impeccable style.",
27
+ "recommendations": "Based on your recent purchases, I thought you might love the [item 3] as a stylish addition to your wardrobe. Available in classic Black and versatile Blue, these trousers effortlessly combine style and comfort, making them perfect for any occasion. Have you considered adding a touch of denim to your collection?",
28
+ "closing": "Thanks for letting me share these finds with you, [customer name]. I can't wait to see how you style them. Until next time, stay fabulous!"
29
+ }
30
+ ###
31
+
32
 
33
  recommender_api:
34
  base_url:
 
41
 
42
  # templates for newsletters and prompts
43
  newsletter:
44
+ newsletter_example_path: "./newsletter_examples/2.html"
45
  brand_logo: "https://seeklogo.com/images/L/luisa-spagnoli-logo-EF482BEE89-seeklogo.com.png"
46
  brand_name: "Luisa Spagnoli"
47
  max_recommendations: 2
config/few_shot.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "greeting": "Hello [customer name]",
3
+ "intro": "It’s such a pleasure to reconnect with you! Your selections, such as the [item 1] and the [item 2], were such standout choices. I’d love to help you discover more pieces that complement your impeccable style.",
4
+ "recommendations": "Based on your recent purchases, I thought you might love the [item 3] as a stylish addition to your wardrobe. Available in classic Black and versatile Blue, these trousers effortlessly combine style and comfort, making them perfect for any occasion. Have you considered adding a touch of denim to your collection?",
5
+ "closing": "Thanks for letting me share these finds with you, [customer name]. I can't wait to see how you style them. Until next time, stay fabulous!"
6
+ }
newsletter_examples/2.html ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Your Personalized Style Curation</title>
7
+ <style>
8
+ /* Adjusted colors for better visibility */
9
+ body {
10
+ margin: 0;
11
+ padding: 0;
12
+ width: 100%;
13
+ font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, serif;
14
+ line-height: 1.6;
15
+ color: #2C2C2C; /* Darker gray for better contrast */
16
+ background-color: #FAF9F6; /* Light neutral background */
17
+ }
18
+
19
+ .nlbackgroundcontainer {
20
+ max-width: 600px;
21
+ margin: 0 auto;
22
+ padding: 30px;
23
+ background-color: #FFFFFF;
24
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
25
+ border: 1px solid #DDDDDD; /* Neutral border */
26
+ color: black;
27
+ }
28
+
29
+ .nlheader {
30
+ text-align: center;
31
+ padding: 20px 0;
32
+ border-bottom: 1px solid #CCCCCC;
33
+ margin-bottom: 30px;
34
+ }
35
+
36
+ .nlheader img {
37
+ max-width: 200px;
38
+ height: auto;
39
+ }
40
+
41
+ .nlsection {
42
+ margin-bottom: 40px;
43
+ }
44
+
45
+ h1, h2, h3 {
46
+ font-family: 'Didot', serif;
47
+ color: #333333; /* Dark neutral tone for headings */
48
+ margin-bottom: 15px;
49
+ }
50
+
51
+ .nlsection-row {
52
+ display: flex;
53
+ flex-wrap: wrap;
54
+ justify-content: space-between;
55
+ gap: 20px;
56
+ }
57
+
58
+ .bought-item, .product {
59
+ display: flex;
60
+ flex-direction: column;
61
+ align-items: center;
62
+ width: calc(50% - 10px);
63
+ margin: 10px 0;
64
+ text-align: center;
65
+ padding: 20px;
66
+ background-color: #F9F9F9;
67
+ border-radius: 8px;
68
+ border: 1px solid #DDDDDD;
69
+ transition: transform 0.3s ease;
70
+ color: rgba(0,0,0,0.1);
71
+ }
72
+
73
+ @media screen and (max-width: 600px) {
74
+ .nlsection-row {
75
+ flex-direction: column;
76
+ }
77
+
78
+ .bought-item, .product {
79
+ width: 100%;
80
+ margin: 10px 0;
81
+ }
82
+ }
83
+
84
+ .bought-item:hover, .product:hover {
85
+ transform: scale(1.02);
86
+ box-shadow: 0 4px 6px rgba(0,0,0,0.1);
87
+ }
88
+
89
+ .deal-box {
90
+ background-color: #F4F4F4;
91
+ color: rgba(0,0,0,0.1);
92
+ padding: 20px;
93
+ margin: 15px 0;
94
+ border-radius: 8px;
95
+ text-align: center;
96
+ border: 1px solid #CCCCCC;
97
+ }
98
+
99
+ .nlbutton {
100
+ display: inline-block;
101
+ padding: 12px 25px;
102
+ background-color: #5A5A5A; /* Neutral dark button */
103
+ color: #050505;
104
+ text-decoration: none;
105
+ border-radius: 5px;
106
+ font-weight: 600;
107
+ text-transform: uppercase;
108
+ letter-spacing: 1px;
109
+ transition: background-color 0.3s ease;
110
+ }
111
+
112
+ .nlbutton:hover {
113
+ background-color: #333333; /* Slightly darker on hover */
114
+ }
115
+
116
+ .nlfooter {
117
+ text-align: center;
118
+ padding: 20px;
119
+ background-color: #F4F4F4;
120
+ border-top: 1px solid #CCCCCC;
121
+ font-size: 0.9em;
122
+ }
123
+
124
+ a {
125
+ color: rgba(0,0,0,0.1); /* Neutral dark links */
126
+ text-decoration: none;
127
+ }
128
+
129
+ a:hover {
130
+ text-decoration: underline;
131
+ }
132
+ </style>
133
+ </head>
134
+ <body>
135
+ <div class="nlbackgroundcontainer">
136
+ <!-- nlheader nlsection -->
137
+ <div class="nlheader" style="display: flex; justify-content: center; align-items: center;">
138
+ <img src="${brand_logo}" alt="Brand Logo">
139
+ </div>
140
+
141
+ <!-- Personal Greeting -->
142
+ <div class="nlsection">
143
+ <p style="font-size: 18px; font-family: 'Georgia', 'Times New Roman', serif; font-style: italic; line-height: 1.5; color: black; letter-spacing: 0.5px; text-align: left;">
144
+ ${greeting} </p>
145
+ </div>
146
+
147
+ <!-- Previously Bought Items nlsection -->
148
+ <div class="nlsection">
149
+
150
+ <p style="font-size: 18px; font-family: 'Georgia', 'Times New Roman', serif; font-style: italic; color: #333; line-height: 1.5; letter-spacing: 0.5px; text-align: left;"> ${intro} </p>
151
+ <h2 style="color:black;"> Your recent selections </h2>
152
+ <div class="nlsection-row">
153
+ <div class="bought-item">
154
+ <img src= ${transaction_url} alt="Previous Product 1">
155
+ <h3 style="color:black;"> ${transaction_name} </h3>
156
+ </div>
157
+ <div class="bought-item">
158
+ <img src= ${transaction_url} alt="Previous Product 2">
159
+ <h3 style="color:black;">${transaction_name}</h3>
160
+ </div>
161
+ </div>
162
+ </div>
163
+
164
+ <!-- Recommended Items -->
165
+ <p style="font-size: 18px; font-family: 'Georgia', 'Times New Roman', serif; font-style: italic; color: #333; line-height: 1.5; letter-spacing: 0.5px; text-align: left;">
166
+ ${recommendations} </p>
167
+ <div class="nlsection">
168
+ <div class="nlsection-row">
169
+ <div class="product">
170
+ <img src=${recommendation_url} alt="Recommended Product 1">
171
+ <h3 style="color:black;">${recommendation_name}</h3>
172
+ <a href="#" class="nlbutton" >Explore</a>
173
+ </div>
174
+ <div class="product">
175
+ <img src=${recommendation_url} alt="Recommended Product 2">
176
+ <h3 style="color:black;">${recommendation_name}</h3>
177
+ <a href="#" class="nlbutton">Explore</a>
178
+ </div>
179
+ </div>
180
+ </div>
181
+
182
+ <!-- Deals nlsection -->
183
+ <div class="nlsection">
184
+ <h2 style="color: #8B6914;">Not Your Style?</h2>
185
+ <p style="font-size: 18px; font-family: 'Georgia', 'Times New Roman', serif; font-style: italic; color: #333; line-height: 1.5; letter-spacing: 0.5px; text-align: left;">
186
+ Well, I always try my best and recommend what I think would suit you well, but hey, we all make mistakes, right? </p>
187
+ <p style="font-size: 18px; font-family: 'Georgia', 'Times New Roman', serif; font-style: italic; color: #333; line-height: 1.5; letter-spacing: 0.5px; text-align: left;">
188
+ No worries though, I still have a lot of stuff for you! Take a look at these weekly deals! </p>
189
+ <div class="deal-box">
190
+ <h3 style="color:black;"> 30% OFF ALL DRESSES</h3>
191
+ <p style="color:black;">Exclusive Code: LSF30</p>
192
+ </div>
193
+ <div class="deal-box">
194
+ <h3 style="color:black;"> BUY 2 GET 1 FREE</h3>
195
+ <p style="color:black;">On our curated accessories collection</p>
196
+ </div>
197
+ <p style="font-size: 18px; font-family: 'Georgia', 'Times New Roman', serif; font-style: italic; color: #333; line-height: 1.5; letter-spacing: 0.5px; text-align: left;">
198
+ ${closing} </p>
199
+ </div>
200
+
201
+ <!-- Call to Action -->
202
+ <div class="nlsection" style="text-align: center;">
203
+ <h2 style="color:black;">Ready to Refine Your Wardrobe?</h2>
204
+ <a href="#" class="nlbutton">View New Arrivals</a>
205
+ <a href="#" class="nlbutton" style="background-color: #5D4037;">Book Styling Consultation</a>
206
+ </div>
207
+
208
+ <!-- nlfooter -->
209
+ <div class="nlfooter">
210
+ <p style="font-weight: bold; color:black">The ${brand_name} Team</p>
211
+ <p style="color:black;">
212
+ <small>
213
+ You're receiving this curated selection because you're part of our stylish community.
214
+ <a href="#">Unsubscribe</a> | <a href="#">View in Browser</a>
215
+ </small>
216
+ </p>
217
+ </div>
218
+ </div>
219
+ </body>
220
+ </html>