Spaces:
Build error
Build error
stylizing chatbot interface
Browse files
app.py
CHANGED
@@ -19,6 +19,52 @@ from text_generation import Client
|
|
19 |
|
20 |
from utils import get_full_text, wrap_html_code
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
HF_TOKEN = os.environ.get("HF_TOKEN", None)
|
23 |
REPO_ID = "sheonhan/rm-test-data"
|
24 |
API_URL = "https://api-inference.huggingface.co/models/HuggingFaceH4/starcoderbase-finetuned-oasst1"
|
@@ -134,7 +180,7 @@ def on_select(event: gr.SelectData, history):
|
|
134 |
return history
|
135 |
|
136 |
|
137 |
-
with gr.Blocks() as demo:
|
138 |
chatbot = gr.Chatbot()
|
139 |
user_message = gr.Textbox()
|
140 |
clear = gr.Button("Clear")
|
@@ -144,9 +190,28 @@ with gr.Blocks() as demo:
|
|
144 |
[user_message, chatbot],
|
145 |
[user_message, chatbot],
|
146 |
queue=False,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
)
|
148 |
|
149 |
-
chatbot.select(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
clear.click(lambda: None, None, chatbot, queue=False)
|
152 |
|
|
|
19 |
|
20 |
from utils import get_full_text, wrap_html_code
|
21 |
|
22 |
+
STYLE = """
|
23 |
+
|
24 |
+
// for the last chat message on user side
|
25 |
+
.message.user.latest {
|
26 |
+
background-color: #F9FBE7;
|
27 |
+
border: none;
|
28 |
+
color: black;
|
29 |
+
}
|
30 |
+
|
31 |
+
// for the last chat message on bot side
|
32 |
+
.message.bot.latest {
|
33 |
+
background-color: #CE93D8;
|
34 |
+
border: none;
|
35 |
+
color: black;
|
36 |
+
}
|
37 |
+
|
38 |
+
// when user hovers on the two answers
|
39 |
+
// generated by a language model
|
40 |
+
.message.bot.latest:hover {
|
41 |
+
box-shadow: 0 0 15px 0.5px #E1BEE7 !important;
|
42 |
+
}
|
43 |
+
|
44 |
+
// "done" class is injected when user has made
|
45 |
+
// decision between two candidate generated answers
|
46 |
+
.message.bot.done {
|
47 |
+
animation: colorTransition 2s ease-in-out;
|
48 |
+
}
|
49 |
+
|
50 |
+
// fade out animation effect when user selects a choice
|
51 |
+
@keyframes colorTransition {
|
52 |
+
0% {
|
53 |
+
background-color: var(--checkbox-background-color-selected);
|
54 |
+
}
|
55 |
+
100% {
|
56 |
+
background-color: var(--background-fill-secondary);
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
.button:active {
|
61 |
+
color: black;
|
62 |
+
border: none;
|
63 |
+
background-color: #CE93D8 !important;
|
64 |
+
box-shadow: 0 0 15px 0.5px #F3E5F5 !important;
|
65 |
+
}
|
66 |
+
"""
|
67 |
+
|
68 |
HF_TOKEN = os.environ.get("HF_TOKEN", None)
|
69 |
REPO_ID = "sheonhan/rm-test-data"
|
70 |
API_URL = "https://api-inference.huggingface.co/models/HuggingFaceH4/starcoderbase-finetuned-oasst1"
|
|
|
180 |
return history
|
181 |
|
182 |
|
183 |
+
with gr.Blocks(css=STYLE) as demo:
|
184 |
chatbot = gr.Chatbot()
|
185 |
user_message = gr.Textbox()
|
186 |
clear = gr.Button("Clear")
|
|
|
190 |
[user_message, chatbot],
|
191 |
[user_message, chatbot],
|
192 |
queue=False,
|
193 |
+
).then(
|
194 |
+
None, None, None,
|
195 |
+
_js="""()=>{
|
196 |
+
|
197 |
+
let last_elem = document.querySelector("div.message.bot.done");
|
198 |
+
last_elem.classList.remove("done");
|
199 |
+
}
|
200 |
+
"""
|
201 |
)
|
202 |
|
203 |
+
chatbot.select(
|
204 |
+
on_select, chatbot, chatbot
|
205 |
+
).then(
|
206 |
+
None, None, None,
|
207 |
+
_js="""()=>{
|
208 |
+
|
209 |
+
let last_elem = document.querySelector("div.message.bot.latest");
|
210 |
+
last_elem.classList.remove("latest");
|
211 |
+
last_elem.classList.add("done");
|
212 |
+
}
|
213 |
+
"""
|
214 |
+
)
|
215 |
|
216 |
clear.click(lambda: None, None, chatbot, queue=False)
|
217 |
|