Spaces:
Sleeping
Sleeping
Fix: remove bold/italic regex stripping Arabic text, add debug logging for payload and AI responses
Browse files- ai_service.py +3 -7
- telegram_handlers.py +3 -0
ai_service.py
CHANGED
|
@@ -10,17 +10,11 @@ MODEL_NAME = HF_MODEL
|
|
| 10 |
def clean_ai_response(text: str):
|
| 11 |
if not text: return ""
|
| 12 |
text = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL)
|
| 13 |
-
# Remove HTML tags
|
| 14 |
text = re.sub(r'<br\s*/?>', '\n', text)
|
| 15 |
text = re.sub(r'<[^>]+>', '', text)
|
| 16 |
-
# Remove markdown tables (lines that start and end with |)
|
| 17 |
text = re.sub(r'^\|.*\|\s*$', '', text, flags=re.MULTILINE)
|
| 18 |
text = re.sub(r'^[\s|:-]+$', '', text, flags=re.MULTILINE)
|
| 19 |
-
# Remove markdown bold/italic
|
| 20 |
-
text = re.sub(r'[*_]{1,3}(.*?)[*_]{1,3}', r'\1', text)
|
| 21 |
-
# Remove markdown headers
|
| 22 |
text = re.sub(r'^#{1,6}\s*', '', text, flags=re.MULTILINE)
|
| 23 |
-
# Clean up extra blank lines
|
| 24 |
text = re.sub(r'\n{3,}', '\n\n', text)
|
| 25 |
return text.strip()
|
| 26 |
|
|
@@ -105,7 +99,9 @@ async def get_ai_response(user_query: str, telegram_id: int):
|
|
| 105 |
completion = await loop.run_in_executor(None, lambda: call_hf(messages))
|
| 106 |
response_message = completion.choices[0].message
|
| 107 |
|
| 108 |
-
final_response = clean_ai_response(response_message.content)
|
|
|
|
|
|
|
| 109 |
|
| 110 |
if db_manager:
|
| 111 |
db_manager.save_message(telegram_id, user_query, "user")
|
|
|
|
| 10 |
def clean_ai_response(text: str):
|
| 11 |
if not text: return ""
|
| 12 |
text = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL)
|
|
|
|
| 13 |
text = re.sub(r'<br\s*/?>', '\n', text)
|
| 14 |
text = re.sub(r'<[^>]+>', '', text)
|
|
|
|
| 15 |
text = re.sub(r'^\|.*\|\s*$', '', text, flags=re.MULTILINE)
|
| 16 |
text = re.sub(r'^[\s|:-]+$', '', text, flags=re.MULTILINE)
|
|
|
|
|
|
|
|
|
|
| 17 |
text = re.sub(r'^#{1,6}\s*', '', text, flags=re.MULTILINE)
|
|
|
|
| 18 |
text = re.sub(r'\n{3,}', '\n\n', text)
|
| 19 |
return text.strip()
|
| 20 |
|
|
|
|
| 99 |
completion = await loop.run_in_executor(None, lambda: call_hf(messages))
|
| 100 |
response_message = completion.choices[0].message
|
| 101 |
|
| 102 |
+
final_response = clean_ai_response(response_message.content if response_message.content else "")
|
| 103 |
+
print(f"--- AI Raw Response: {repr(response_message.content)} ---")
|
| 104 |
+
print(f"--- AI Final Response: {repr(final_response)} ---")
|
| 105 |
|
| 106 |
if db_manager:
|
| 107 |
db_manager.save_message(telegram_id, user_query, "user")
|
telegram_handlers.py
CHANGED
|
@@ -51,6 +51,8 @@ async def telegram_webhook(data: WebhookData):
|
|
| 51 |
"text": ai_answer or "Sorry, I couldn't generate a response. Please try again."
|
| 52 |
}
|
| 53 |
|
|
|
|
|
|
|
| 54 |
try:
|
| 55 |
response = await client.post(TELEGRAM_URL, json=payload)
|
| 56 |
except Exception as dns_err:
|
|
@@ -68,6 +70,7 @@ async def telegram_webhook(data: WebhookData):
|
|
| 68 |
if response.status_code == 200:
|
| 69 |
print(f"--- Success: Message delivered via Direct IP Pipeline ---")
|
| 70 |
else:
|
|
|
|
| 71 |
print(f"--- Telegram Rejected Request: {response.status_code} - {response.text} ---")
|
| 72 |
|
| 73 |
except Exception as send_error:
|
|
|
|
| 51 |
"text": ai_answer or "Sorry, I couldn't generate a response. Please try again."
|
| 52 |
}
|
| 53 |
|
| 54 |
+
print(f"--- Payload being sent: {payload} ---")
|
| 55 |
+
|
| 56 |
try:
|
| 57 |
response = await client.post(TELEGRAM_URL, json=payload)
|
| 58 |
except Exception as dns_err:
|
|
|
|
| 70 |
if response.status_code == 200:
|
| 71 |
print(f"--- Success: Message delivered via Direct IP Pipeline ---")
|
| 72 |
else:
|
| 73 |
+
print(f"--- Payload: {payload} ---")
|
| 74 |
print(f"--- Telegram Rejected Request: {response.status_code} - {response.text} ---")
|
| 75 |
|
| 76 |
except Exception as send_error:
|