SamiKoen commited on
Commit
abe607e
·
verified ·
1 Parent(s): e9edeb2

İki aşamalı arama sistemi eklendi

Browse files
Files changed (1) hide show
  1. app.py +26 -8
app.py CHANGED
@@ -503,16 +503,34 @@ def chatbot_fn(user_message, history, image=None):
503
  if product_words:
504
  product_name = ' '.join(product_words)
505
 
506
- # FX Sport AL 3 gibi özel ürün isimlerini düzelt
507
- # "fx sport 3 al" -> "fx sport al 3"
508
- if 'fx sport' in product_name and '3' in product_name:
509
- if 'al' in product_name:
510
- # Kelime sırasını düzelt
511
- product_name = 'fx sport al 3'
512
- elif 'carbon' in product_name:
513
- product_name = 'fx sport carbon'
514
  stock_info = get_realtime_stock(product_name)
515
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
516
  if stock_info:
517
  # Stok bilgisini sistem mesajına ekle
518
  system_messages.append({
 
503
  if product_words:
504
  product_name = ' '.join(product_words)
505
 
506
+ # İki aşamalı arama sistemi
507
+ # 1. Aşama: Direkt API'de ara
 
 
 
 
 
 
508
  stock_info = get_realtime_stock(product_name)
509
 
510
+ # 2. Aşama: Bulamazsa XML'de benzer ürün bul ve onunla tekrar dene
511
+ if not stock_info:
512
+ print(f"API'de '{product_name}' bulunamadı, XML'de aranıyor...")
513
+
514
+ # XML'deki products listesinde ara
515
+ found_product = None
516
+ for _, product_info, full_name in products:
517
+ full_name_lower = full_name.lower()
518
+ # Tüm kelimeler ürün adında geçiyor mu?
519
+ if all(word in full_name_lower for word in product_words):
520
+ found_product = full_name
521
+ print(f"XML'de eşleşen ürün bulundu: {found_product}")
522
+ break
523
+
524
+ # Bulunan ürün adıyla API'yi tekrar çağır
525
+ if found_product:
526
+ # XML'deki ürün adını temizle (sadece ana ürün adını al)
527
+ # Örnek: "FX SPORT AL 3 L - KREM" -> "FX SPORT AL 3"
528
+ clean_name = found_product.split(' - ')[0] # Renk bilgisini çıkar
529
+ clean_name = ' '.join(clean_name.split()[:4]) # İlk 4 kelimeyi al (model adı genelde 4 kelime)
530
+
531
+ print(f"Temizlenmiş ürün adıyla tekrar deneniyor: {clean_name}")
532
+ stock_info = get_realtime_stock(clean_name.lower())
533
+
534
  if stock_info:
535
  # Stok bilgisini sistem mesajına ekle
536
  system_messages.append({