Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -177,6 +177,13 @@ def delete_chat_cb(selected_label):
|
|
| 177 |
selected = labels[0] if labels else None
|
| 178 |
return gr.update(choices=labels, value=selected), []
|
| 179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
# --- Fixed send_cb to show user message ---
|
| 181 |
def send_cb(user_text, selected_label, chatbot_msgs, system_message, max_tokens, temperature, top_p, model_choice, dataset_choice, *args):
|
| 182 |
sid = label_to_id(selected_label)
|
|
@@ -185,19 +192,27 @@ def send_cb(user_text, selected_label, chatbot_msgs, system_message, max_tokens,
|
|
| 185 |
labels, _ = list_sessions()
|
| 186 |
selected_label = next((lbl for lbl in labels if lbl.startswith(f"{sid} ")), None)
|
| 187 |
|
|
|
|
| 188 |
add_message(sid, "user", user_text)
|
| 189 |
update_session_title_if_needed(sid, user_text)
|
| 190 |
|
| 191 |
-
|
| 192 |
-
display_msgs = chatbot_msgs[:] # preserve current chat
|
| 193 |
-
|
| 194 |
-
# Show user's message immediately
|
| 195 |
display_msgs.append({"role": "user", "content": user_text})
|
| 196 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
display_msgs.append({"role": "assistant", "content": "…"})
|
| 198 |
yield (display_msgs, "", selected_label)
|
| 199 |
|
| 200 |
client = get_client(model_choice)
|
|
|
|
| 201 |
partial = ""
|
| 202 |
try:
|
| 203 |
for chunk in client.chat_completion(
|
|
|
|
| 177 |
selected = labels[0] if labels else None
|
| 178 |
return gr.update(choices=labels, value=selected), []
|
| 179 |
|
| 180 |
+
FRONTEND_KEYWORDS = [
|
| 181 |
+
"react", "vue", "angular", "html", "css", "javascript", "tailwind", "recharts", "typescript"
|
| 182 |
+
]
|
| 183 |
+
|
| 184 |
+
def is_frontend_request(user_text: str) -> bool:
|
| 185 |
+
text_lower = user_text.lower()
|
| 186 |
+
return any(kw in text_lower for kw in FRONTEND_KEYWORDS)
|
| 187 |
# --- Fixed send_cb to show user message ---
|
| 188 |
def send_cb(user_text, selected_label, chatbot_msgs, system_message, max_tokens, temperature, top_p, model_choice, dataset_choice, *args):
|
| 189 |
sid = label_to_id(selected_label)
|
|
|
|
| 192 |
labels, _ = list_sessions()
|
| 193 |
selected_label = next((lbl for lbl in labels if lbl.startswith(f"{sid} ")), None)
|
| 194 |
|
| 195 |
+
# Save user message
|
| 196 |
add_message(sid, "user", user_text)
|
| 197 |
update_session_title_if_needed(sid, user_text)
|
| 198 |
|
| 199 |
+
display_msgs = chatbot_msgs[:]
|
|
|
|
|
|
|
|
|
|
| 200 |
display_msgs.append({"role": "user", "content": user_text})
|
| 201 |
+
|
| 202 |
+
# Check for frontend-heavy request
|
| 203 |
+
if is_frontend_request(user_text):
|
| 204 |
+
apology = "⚠️ I'm a backend-focused assistant and cannot provide frontend code."
|
| 205 |
+
display_msgs.append({"role": "assistant", "content": apology})
|
| 206 |
+
add_message(sid, "assistant", apology)
|
| 207 |
+
yield (display_msgs, "", selected_label)
|
| 208 |
+
return
|
| 209 |
+
|
| 210 |
+
# Normal backend response
|
| 211 |
display_msgs.append({"role": "assistant", "content": "…"})
|
| 212 |
yield (display_msgs, "", selected_label)
|
| 213 |
|
| 214 |
client = get_client(model_choice)
|
| 215 |
+
api_messages = build_api_messages(sid, system_message)
|
| 216 |
partial = ""
|
| 217 |
try:
|
| 218 |
for chunk in client.chat_completion(
|