Spaces:
Running
Running
Commit
ยท
07112a0
1
Parent(s):
70cf92b
updatation
Browse files- app.py +2 -1
- src/chatbot.py +8 -4
app.py
CHANGED
|
@@ -123,7 +123,8 @@ def generate_reply(user_msg: str, history: Optional[List[Dict[str, Any]]]):
|
|
| 123 |
else:
|
| 124 |
prompt = f"User: {user_msg}"
|
| 125 |
|
| 126 |
-
bot_reply = bot.ask(
|
|
|
|
| 127 |
ts = now_ts()
|
| 128 |
bot_reply_ts = f"{bot_reply}\n\n๐ {ts}"
|
| 129 |
|
|
|
|
| 123 |
else:
|
| 124 |
prompt = f"User: {user_msg}"
|
| 125 |
|
| 126 |
+
bot_reply = bot.ask(user_msg) # intent auto-detected
|
| 127 |
+
|
| 128 |
ts = now_ts()
|
| 129 |
bot_reply_ts = f"{bot_reply}\n\n๐ {ts}"
|
| 130 |
|
src/chatbot.py
CHANGED
|
@@ -56,23 +56,27 @@ class LocalChatbot:
|
|
| 56 |
# ------------------------------------------------
|
| 57 |
# Main Ask Function
|
| 58 |
# ------------------------------------------------
|
| 59 |
-
def ask(self, user_message: Any, gen_args: Optional[Dict[str, Any]] = None) -> str:
|
| 60 |
-
|
|
|
|
| 61 |
if isinstance(user_message, list):
|
| 62 |
extracted = []
|
| 63 |
for item in user_message:
|
| 64 |
if isinstance(item, dict) and "text" in item:
|
| 65 |
extracted.append(item["text"])
|
| 66 |
user_message = "\n".join(extracted)
|
|
|
|
| 67 |
elif isinstance(user_message, dict) and "text" in user_message:
|
| 68 |
user_message = user_message["text"]
|
| 69 |
|
| 70 |
user_message = str(user_message).strip()
|
|
|
|
| 71 |
if not user_message:
|
| 72 |
return "Please enter a message."
|
| 73 |
|
| 74 |
-
#
|
| 75 |
-
intent
|
|
|
|
| 76 |
|
| 77 |
# Build prompt
|
| 78 |
prompt = self._build_prompt(user_message, intent, max_pairs=12)
|
|
|
|
| 56 |
# ------------------------------------------------
|
| 57 |
# Main Ask Function
|
| 58 |
# ------------------------------------------------
|
| 59 |
+
def ask(self, user_message: Any, gen_args: Optional[Dict[str, Any]] = None, intent: Optional[str] = None) -> str:
|
| 60 |
+
|
| 61 |
+
# --- FIX #1: Extract text from Gradio compatibility formats ---
|
| 62 |
if isinstance(user_message, list):
|
| 63 |
extracted = []
|
| 64 |
for item in user_message:
|
| 65 |
if isinstance(item, dict) and "text" in item:
|
| 66 |
extracted.append(item["text"])
|
| 67 |
user_message = "\n".join(extracted)
|
| 68 |
+
|
| 69 |
elif isinstance(user_message, dict) and "text" in user_message:
|
| 70 |
user_message = user_message["text"]
|
| 71 |
|
| 72 |
user_message = str(user_message).strip()
|
| 73 |
+
|
| 74 |
if not user_message:
|
| 75 |
return "Please enter a message."
|
| 76 |
|
| 77 |
+
# --- FIX #2: Use passed intent, or detect if None ---
|
| 78 |
+
if intent is None:
|
| 79 |
+
intent = detect_intent(user_message)
|
| 80 |
|
| 81 |
# Build prompt
|
| 82 |
prompt = self._build_prompt(user_message, intent, max_pairs=12)
|