SamiKoen commited on
Commit
a54b8fb
·
1 Parent(s): 775e201

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -29
app.py CHANGED
@@ -10,36 +10,37 @@ from collections import defaultdict
10
  API_URL = "https://api.openai.com/v1/chat/completions"
11
  OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
12
 
13
- def etree_to_dict(t):
14
- d = {t.tag: {} if t.attrib else None}
15
- children = list(t)
16
- if children:
17
- dd = defaultdict(list)
18
- for dc in map(etree_to_dict, children):
19
- for k, v in dc.items():
20
- dd[k].append(v)
21
- d = {t.tag: {k:v[0] if len(v) == 1 else v for k, v in dd.items()}}
22
- if t.attrib:
23
- d[t.tag].update(('@' + k, v) for k, v in t.attrib.items())
24
- if t.text:
25
- text = t.text.strip()
26
- if children or t.attrib:
27
- if text:
28
- d[t.tag]['#text'] = text
29
- else:
30
- d[t.tag] = text
31
- return d
32
-
33
- def xml_to_json(url):
34
- response = requests.get(url)
35
- xml_string = response.text
36
- tree = ET.ElementTree(ET.fromstring(xml_string))
37
- return json.dumps(etree_to_dict(tree.getroot()))
38
 
39
-
40
 
41
- url = "https://www.alatin.com.tr/index.php?do=catalog/output&pCode=4249932787"
42
- print(xml_to_json(url))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  def predict(system_msg, inputs, top_p, temperature, chat_counter, chatbot=[], history=[]):
44
  headers = {
45
  "Content-Type": "application/json",
@@ -49,7 +50,7 @@ def predict(system_msg, inputs, top_p, temperature, chat_counter, chatbot=[], hi
49
 
50
 
51
  initial_message = [{"role": "user", "content": f"{inputs}"},]
52
- multi_turn_message = [{"role": "system", "content": xml_to_json},
53
  {"role": "system", "content": "Sen bir AI Trek marka bisiklet uzmanı, bilir kişisi ve asistanısın. Trek bisiklet dışında hiç bir konuda cevap vermeyeceksin. Trek bisikletlerini İstanbulda 2 mağazadan görebilirler, bir tanesi Caddebostanda, diğeri Dereboyu 84 Ortaköyde. Ortaköy mağazası Saat 10.00 da açılıp, 19.00 da kapanıyor. Telefon numarası 0212 2271015. caddebostan mağazamızın adresi: Prof. Dr. Hulusi Behçet 18 Caddebostan, Kadıköy. Telefon numarası 0216 6292432, ortaköyden bir saat önce açılıyor ve ortaköyle aynı saate kapanıyor. Ortaköy mağazası Pazar günleri kapalıdır. Ancak Caddebostan mağazamız haftanın 7 günü açıktır. Caddebostan mağazası her gün 09.00 da açılır ve 19.00 kapanır. sadece Pazar günleri 10.00 da açılır ve 17.00 de kapanır. Caddebostan mağazamızda haftanın 1 günü Bike-Fit yapılmaktadır. Retul firmasının bikefit makinesini kullanıyoruz. Salı günleri bike-fit yapabiliyoruz. Yapan kişi Emre Yavuz. MTB Türkiye şampyonu ve 3 senedir Trek Caddebostanda Retul Bike fit yapıyor. Bike fit için rezervasyon yapılması gerekir. Bike fit yaptırmak isteyen kişi, bikefit linkinden rezervasyona basarak, kendi başına rezervasyon yapar. 2012 yılından beri Retul Bike Fit hizmeti veriyoruz."},
54
  {"role": "system", "content": "Trek Türkiye canlı destek hattına hoş geldiniz, demeyeceksin. Canlı sohbet için, sitede sol alt köşede bulunan YEŞİL düğmesine basarak kullanıcı kendi bilgilerini girebilir, bir Trek çalışanı kullanıcı ile iletişime geçecek. Trek Türkiye için web adresimiz: https://www.alatin.com.tr "},
55
  {"role": "system", "content": "Bike fit ücreti 1400 TL. İstanbul dışındaki bayileri bilmiyorsun, bayi soranlara cevap vermeyeceksin.. Tüm bayi detayları için https://www.alatin.com.tr/sayfa/bayilerimiz/ linkinine baksınlar. Bikefit işlem süresi yaklaşık 60 - 90 dakikadır."},
 
10
  API_URL = "https://api.openai.com/v1/chat/completions"
11
  OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
12
 
13
+ # XML verisinin URL'si
14
+ xml_url = "http://www.alatin.com.tr/index.php?do=catalog/output&pCode=4249932787" # Gerçek URL'nizi buraya yazın
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
 
16
 
17
+
18
+ # XML verisini URL'den çek
19
+ response = requests.get(xml_url)
20
+ response.raise_for_status()
21
+
22
+ # XML verisini bir string olarak al
23
+ xml_data = response.text
24
+
25
+ # XML verisini parse et
26
+ root = ET.fromstring(xml_data)
27
+
28
+ # Her bir 'item' için bir metin oluştur
29
+ items_text = []
30
+ for item in root.findall('item'):
31
+ item_text = []
32
+
33
+ # Her bir 'item' elementi içindeki bilgileri al
34
+ for child in item:
35
+ # Bilgiyi metin formatına dönüştür
36
+ # 'CDATA' elementini ayıklamak için '.text' özelliğini kullanıyoruz
37
+ item_text.append(f"{child.tag}: {child.text.strip()}")
38
+
39
+ # Her bir 'item' için oluşturulan metni 'items_text' listesine ekliyoruz
40
+ items_text.append('\n'.join(item_text))
41
+
42
+ # Tüm 'item' metinlerini birleştir
43
+ full_text = '\n\n'.join(items_text)
44
  def predict(system_msg, inputs, top_p, temperature, chat_counter, chatbot=[], history=[]):
45
  headers = {
46
  "Content-Type": "application/json",
 
50
 
51
 
52
  initial_message = [{"role": "user", "content": f"{inputs}"},]
53
+ multi_turn_message = [{"role": "system", "content": full_text},
54
  {"role": "system", "content": "Sen bir AI Trek marka bisiklet uzmanı, bilir kişisi ve asistanısın. Trek bisiklet dışında hiç bir konuda cevap vermeyeceksin. Trek bisikletlerini İstanbulda 2 mağazadan görebilirler, bir tanesi Caddebostanda, diğeri Dereboyu 84 Ortaköyde. Ortaköy mağazası Saat 10.00 da açılıp, 19.00 da kapanıyor. Telefon numarası 0212 2271015. caddebostan mağazamızın adresi: Prof. Dr. Hulusi Behçet 18 Caddebostan, Kadıköy. Telefon numarası 0216 6292432, ortaköyden bir saat önce açılıyor ve ortaköyle aynı saate kapanıyor. Ortaköy mağazası Pazar günleri kapalıdır. Ancak Caddebostan mağazamız haftanın 7 günü açıktır. Caddebostan mağazası her gün 09.00 da açılır ve 19.00 kapanır. sadece Pazar günleri 10.00 da açılır ve 17.00 de kapanır. Caddebostan mağazamızda haftanın 1 günü Bike-Fit yapılmaktadır. Retul firmasının bikefit makinesini kullanıyoruz. Salı günleri bike-fit yapabiliyoruz. Yapan kişi Emre Yavuz. MTB Türkiye şampyonu ve 3 senedir Trek Caddebostanda Retul Bike fit yapıyor. Bike fit için rezervasyon yapılması gerekir. Bike fit yaptırmak isteyen kişi, bikefit linkinden rezervasyona basarak, kendi başına rezervasyon yapar. 2012 yılından beri Retul Bike Fit hizmeti veriyoruz."},
55
  {"role": "system", "content": "Trek Türkiye canlı destek hattına hoş geldiniz, demeyeceksin. Canlı sohbet için, sitede sol alt köşede bulunan YEŞİL düğmesine basarak kullanıcı kendi bilgilerini girebilir, bir Trek çalışanı kullanıcı ile iletişime geçecek. Trek Türkiye için web adresimiz: https://www.alatin.com.tr "},
56
  {"role": "system", "content": "Bike fit ücreti 1400 TL. İstanbul dışındaki bayileri bilmiyorsun, bayi soranlara cevap vermeyeceksin.. Tüm bayi detayları için https://www.alatin.com.tr/sayfa/bayilerimiz/ linkinine baksınlar. Bikefit işlem süresi yaklaşık 60 - 90 dakikadır."},