Update app.py
Browse files
app.py
CHANGED
|
@@ -117,20 +117,54 @@ CRM context (for your understanding, do not copy verbatim):
|
|
| 117 |
with gr.Blocks(
|
| 118 |
title="Contextual Pitch Assistant for Dental Sales",
|
| 119 |
css="""
|
| 120 |
-
|
| 121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 122 |
"""
|
| 123 |
) as app:
|
| 124 |
gr.Markdown(
|
| 125 |
"""
|
| 126 |
# π¦· Contextual Pitch Assistant for Dental Sales
|
| 127 |
-
|
|
|
|
|
|
|
| 128 |
"""
|
| 129 |
)
|
| 130 |
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
run_btn = gr.Button("π Generate Pitch", variant="primary")
|
| 135 |
output = gr.HTML(label="β¨ Email Pitch Preview", elem_id="output_html")
|
| 136 |
|
|
@@ -144,3 +178,4 @@ with gr.Blocks(
|
|
| 144 |
)
|
| 145 |
|
| 146 |
app.launch()
|
|
|
|
|
|
| 117 |
with gr.Blocks(
|
| 118 |
title="Contextual Pitch Assistant for Dental Sales",
|
| 119 |
css="""
|
| 120 |
+
body { background-color: #f7f9f9; font-family: 'Inter', sans-serif; }
|
| 121 |
+
#output_html { min-height: 450px; }
|
| 122 |
+
.gradio-container { max-width: 90% !important; margin: auto; }
|
| 123 |
+
h1, h2, h3, h4, h5 { color: #00857C; font-weight: 600; }
|
| 124 |
+
.gr-button {
|
| 125 |
+
background-color: #00857C !important;
|
| 126 |
+
color: white !important;
|
| 127 |
+
border: none !important;
|
| 128 |
+
font-weight: 600;
|
| 129 |
+
padding: 10px 18px;
|
| 130 |
+
border-radius: 8px;
|
| 131 |
+
}
|
| 132 |
+
.gr-button:hover { background-color: #006e67 !important; }
|
| 133 |
+
.gr-file, .gr-textbox {
|
| 134 |
+
border: 1px solid #d1d5db !important;
|
| 135 |
+
border-radius: 8px !important;
|
| 136 |
+
}
|
| 137 |
+
.gr-box {
|
| 138 |
+
background: white !important;
|
| 139 |
+
border-radius: 12px !important;
|
| 140 |
+
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
|
| 141 |
+
padding: 20px !important;
|
| 142 |
+
}
|
| 143 |
"""
|
| 144 |
) as app:
|
| 145 |
gr.Markdown(
|
| 146 |
"""
|
| 147 |
# π¦· Contextual Pitch Assistant for Dental Sales
|
| 148 |
+
*Powered by contextual CRM data and generative AI*
|
| 149 |
+
---
|
| 150 |
+
Upload a CRM file and enter a sales question β get a personalized email pitch with a contextual image.
|
| 151 |
"""
|
| 152 |
)
|
| 153 |
|
| 154 |
+
with gr.Row():
|
| 155 |
+
csv_file = gr.File(label="π Upload CRM CSV (5β100 rows)", file_types=[".csv"])
|
| 156 |
+
sender_name = gr.Textbox(
|
| 157 |
+
label="βοΈ Who signs the email?",
|
| 158 |
+
placeholder="e.g. Nuno Camacho, Sales Director",
|
| 159 |
+
value="Nuno Camacho"
|
| 160 |
+
)
|
| 161 |
+
|
| 162 |
+
query = gr.Textbox(
|
| 163 |
+
label="π¬ Sales Query",
|
| 164 |
+
placeholder="e.g. Which clinic is best for our imaging subscription?",
|
| 165 |
+
lines=2
|
| 166 |
+
)
|
| 167 |
+
|
| 168 |
run_btn = gr.Button("π Generate Pitch", variant="primary")
|
| 169 |
output = gr.HTML(label="β¨ Email Pitch Preview", elem_id="output_html")
|
| 170 |
|
|
|
|
| 178 |
)
|
| 179 |
|
| 180 |
app.launch()
|
| 181 |
+
|