fix: add Trek product model names to keywords and debug logging
Browse files- Add MARLIN, MADONE, FUEL, DOMANE etc. to product_keywords
- "marlin 4" now properly detected as product query
- Add debug logging to track product query detection
- Fix issue where model names weren't triggering Combined API
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
app.py
CHANGED
|
@@ -971,7 +971,10 @@ def process_whatsapp_message_with_memory(user_message, phone_number):
|
|
| 971 |
if not product_found_improved:
|
| 972 |
# Check if message seems to be asking about products
|
| 973 |
product_keywords = ['fiyat', 'kaç', 'stok', 'var mı', 'mevcut', 'bisiklet', 'bike',
|
| 974 |
-
'trek', 'model', 'beden', 'renk', 'mağaza', 'nerede', 'hangi'
|
|
|
|
|
|
|
|
|
|
| 975 |
|
| 976 |
# Common non-product responses
|
| 977 |
non_product_responses = ['süper', 'harika', 'güzel', 'teşekkür', 'tamam', 'olur',
|
|
@@ -980,16 +983,24 @@ def process_whatsapp_message_with_memory(user_message, phone_number):
|
|
| 980 |
is_product_query = False
|
| 981 |
lower_message = user_message.lower()
|
| 982 |
|
|
|
|
|
|
|
|
|
|
| 983 |
# Check if it's likely a product query
|
| 984 |
if any(keyword in lower_message for keyword in product_keywords):
|
| 985 |
is_product_query = True
|
|
|
|
| 986 |
# Check if it's NOT a simple response
|
| 987 |
elif lower_message not in non_product_responses and len(lower_message.split()) > 1:
|
| 988 |
# Multi-word queries might be product searches
|
| 989 |
is_product_query = True
|
|
|
|
| 990 |
# Single short words are usually not products
|
| 991 |
elif len(lower_message.split()) == 1 and len(lower_message) < 6:
|
| 992 |
is_product_query = False
|
|
|
|
|
|
|
|
|
|
| 993 |
|
| 994 |
if is_product_query:
|
| 995 |
# SADECE Combined API kullan
|
|
|
|
| 971 |
if not product_found_improved:
|
| 972 |
# Check if message seems to be asking about products
|
| 973 |
product_keywords = ['fiyat', 'kaç', 'stok', 'var mı', 'mevcut', 'bisiklet', 'bike',
|
| 974 |
+
'trek', 'model', 'beden', 'renk', 'mağaza', 'nerede', 'hangi',
|
| 975 |
+
'marlin', 'madone', 'fuel', 'domane', 'slash', 'remedy', 'session', 'procaliber',
|
| 976 |
+
'roscoe', 'supercommuter', 'allant', 'verve', 'dual sport', 'fx', 'checkpoint',
|
| 977 |
+
'émonda', 'speed concept', 'boone', 'crockett', 'stache', 'farley']
|
| 978 |
|
| 979 |
# Common non-product responses
|
| 980 |
non_product_responses = ['süper', 'harika', 'güzel', 'teşekkür', 'tamam', 'olur',
|
|
|
|
| 983 |
is_product_query = False
|
| 984 |
lower_message = user_message.lower()
|
| 985 |
|
| 986 |
+
logger.info(f"🔍 Product query detection for: '{user_message}'")
|
| 987 |
+
logger.info(f"🔤 Lower message: '{lower_message}'")
|
| 988 |
+
|
| 989 |
# Check if it's likely a product query
|
| 990 |
if any(keyword in lower_message for keyword in product_keywords):
|
| 991 |
is_product_query = True
|
| 992 |
+
logger.info(f"✅ Product query detected via keywords")
|
| 993 |
# Check if it's NOT a simple response
|
| 994 |
elif lower_message not in non_product_responses and len(lower_message.split()) > 1:
|
| 995 |
# Multi-word queries might be product searches
|
| 996 |
is_product_query = True
|
| 997 |
+
logger.info(f"✅ Product query detected via multi-word rule")
|
| 998 |
# Single short words are usually not products
|
| 999 |
elif len(lower_message.split()) == 1 and len(lower_message) < 6:
|
| 1000 |
is_product_query = False
|
| 1001 |
+
logger.info(f"❌ Product query rejected - single short word")
|
| 1002 |
+
|
| 1003 |
+
logger.info(f"🎯 Final is_product_query: {is_product_query}")
|
| 1004 |
|
| 1005 |
if is_product_query:
|
| 1006 |
# SADECE Combined API kullan
|