fix: clean query for smart fallback to work properly
Browse files- "Marlin 4 var mı" → "MARLIN 4" cleaning
- Remove "var mı", "stok", "fiyat" suffixes from query
- Smart fallback now works: MARLIN 4 → MARLIN 4 GEN 3 (2026)
- Add logging to track query cleaning process
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
- combined_api_search.py +11 -3
combined_api_search.py
CHANGED
|
@@ -380,15 +380,23 @@ def get_warehouse_stock_combined_api(query):
|
|
| 380 |
# Örn: "marlin 4" arandığında MARLIN 4 yoksa MARLIN 4 GEN 3'ü göster
|
| 381 |
query_normalized = normalize_turkish(query.upper())
|
| 382 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 383 |
# Genel ürün adı aranıyorsa (model numarası yok)
|
| 384 |
-
if not any(year in
|
| 385 |
# Stokta olan modelleri kontrol et
|
| 386 |
stocked_alternatives = []
|
| 387 |
|
| 388 |
for product in results:
|
| 389 |
name_normalized = normalize_turkish(product['name'].upper())
|
| 390 |
-
# Ana ürün adıyla eşleşiyor mu?
|
| 391 |
-
if
|
| 392 |
# Ana ürün mü?
|
| 393 |
if is_main_product(product['name']):
|
| 394 |
# Stokta mı veya varyantları var mı?
|
|
|
|
| 380 |
# Örn: "marlin 4" arandığında MARLIN 4 yoksa MARLIN 4 GEN 3'ü göster
|
| 381 |
query_normalized = normalize_turkish(query.upper())
|
| 382 |
|
| 383 |
+
# Query'yi temizle - "var mı", "stok", "fiyat" gibi ekleri çıkar
|
| 384 |
+
clean_query = query_normalized
|
| 385 |
+
for suffix in ['VAR MI', 'VAR MIYDI', 'STOK', 'STOKTA', 'FIYAT', 'FIYATI', 'KACA', 'NE KADAR']:
|
| 386 |
+
clean_query = clean_query.replace(' ' + suffix, '').replace(suffix + ' ', '').replace(suffix, '')
|
| 387 |
+
clean_query = clean_query.strip()
|
| 388 |
+
|
| 389 |
+
logger.info(f"🧹 Query temizlendi: '{query}' → '{clean_query}'")
|
| 390 |
+
|
| 391 |
# Genel ürün adı aranıyorsa (model numarası yok)
|
| 392 |
+
if not any(year in clean_query for year in ['GEN', '2024', '2025', '2026', '(20']):
|
| 393 |
# Stokta olan modelleri kontrol et
|
| 394 |
stocked_alternatives = []
|
| 395 |
|
| 396 |
for product in results:
|
| 397 |
name_normalized = normalize_turkish(product['name'].upper())
|
| 398 |
+
# Ana ürün adıyla eşleşiyor mu? (temizlenmiş query ile)
|
| 399 |
+
if clean_query in name_normalized:
|
| 400 |
# Ana ürün mü?
|
| 401 |
if is_main_product(product['name']):
|
| 402 |
# Stokta mı veya varyantları var mı?
|