SamiKoen commited on
Commit
d99e9d0
·
1 Parent(s): 1ad6c46

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -114
app.py CHANGED
@@ -104,129 +104,52 @@ with gr.Blocks(css = """#col_container { margin-left: auto; margin-right: auto;}
104
 
105
  demo.queue(max_size=20, concurrency_count=20).launch(debug=True)
106
 
107
- import gradio as gr
108
  import requests
109
- import xmltodict
110
 
111
- def get_stock(product_code):
112
- url = "https://bizimhesap.com/api/product/getproductsasxml?apikey=6F4BAF303FA240608A39653824B6C495"
113
- response = requests.get(url)
114
 
115
- if response.status_code == 200:
116
- xml_data = response.content
117
- data = xmltodict.parse(xml_data)
118
 
119
- import xml.etree.ElementTree as ET
 
120
 
121
- xml_data = """<?xml version="1.0" encoding="UTF-8"?>
122
- <urunler>
123
- <urun>
124
- <stok_kod>
125
- <![CDATA[ 411690 ]]>
126
- </stok_kod>
127
- <barkod>
128
- <![CDATA[ 601479057559 ]]>
129
- </barkod>
130
- <urun_ad>
131
- <![CDATA[ 29.3 TLR TEAM ISSUE DIŞ LASTİK ]]>
132
- </urun_ad>
133
- <varyant>
134
- <![CDATA[ 29 x 2.00 ]]>
135
- </varyant>
136
- <marka>
137
- <![CDATA[ BONTRAGER ]]>
138
- </marka>
139
- <stok>1</stok>
140
- <satis_fiyat>2771,6668000000</satis_fiyat>
141
- <para_birim>TL</para_birim>
142
- <kdv>18</kdv>
143
- <detay>
144
- <![CDATA[ 29.3 TLR TEAM ISSUE DIŞ LASTİK ]]>
145
- </detay>
146
- <kat_yolu>
147
- <![CDATA[ DIŞ LASTİK ]]>
148
- </kat_yolu>
149
- <resim>
150
- <![CDATA[ https://st2.myideasoft.com/idea/ar/30/myassets/products/984/2470-1.png?revision=1582038307 ]]>
151
- </resim>
152
- </urun>
153
- <urun>
154
- <stok_kod>
155
- <![CDATA[ 430703 ]]>
156
- </stok_kod>
157
- <barkod>
158
- <![CDATA[ ]]>
159
- </barkod>
160
- <urun_ad>
161
- <![CDATA[ 29-1 TEAM ISSUE TLR DIŞ LASTİK ]]>
162
- </urun_ad>
163
- <varyant>
164
- <![CDATA[ 29X2.20 ]]>
165
- </varyant>
166
- <marka>
167
- <![CDATA[ BONTRAGER ]]>
168
- </marka>
169
- <stok>0</stok>
170
- <satis_fiyat>2772,2919880000</satis_fiyat>
171
- <para_birim>TL</para_birim>
172
- <kdv>18</kdv>
173
- <detay>
174
- <![CDATA[ 29-1 TEAM ISSUE TLR DIŞ LASTİK ]]>
175
- </detay>
176
- <kat_yolu>
177
- <![CDATA[ DIŞ LASTİK ]]>
178
- </kat_yolu>
179
- <resim>
180
- <![CDATA[ https://st2.myideasoft.com/idea/ar/30/myassets/products/356/2467-1.png?revision=1548315406 ]]>
181
- </resim>
182
- </urun>
183
- """
184
-
185
- root = ET.fromstring(xml_data)
186
-
187
- products = []
188
- for product in root.findall('product'):
189
  stok_kod = product.find('code').text
190
  urun_ad = product.find('name').text
191
  satis_fiyat = product.find('price').text
192
  varyant = product.find('variant').text
193
  stok = int(product.find('quantity').text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
 
195
- # Alınan verileri products listesine ekle
196
- products.append({'stok_kod': stok_kod, 'urun_ad': urun_ad, 'satis_fiyat': satis_fiyat, 'varyant': varyant, 'stok': stok})
197
- import requests
198
- import xmltodict
199
-
200
- # XML dosyasının URL'si
201
- url = "https://bizimhesap.com/api/product/getproductsasxml?apikey=API_KEY"
202
-
203
- # API'den XML dosyasını çekme
204
- response = requests.get(url)
205
-
206
- if response.status_code == 200:
207
- # XML dosyasını dict nesnesine çevirme
208
- data = xmltodict.parse(response.content)
209
-
210
- # Tüm ürünleri dolaşarak stok bilgilerini alıp sözlük yapısında saklama
211
- stock_dict = {}
212
- for product in data['products']:
213
- stock_code = product['code']
214
- stock_qty = product['quantity']
215
- stock_dict[stock_code] = stock_qty
216
-
217
- # Chatbot fonksiyonunu tanımlama
218
- def chatbot(inp):
219
- # Gelen soruyu küçük harflere çevirme ve önceden tanımlanmış anahtar kelimeleri arama
220
- inp = inp.lower()
221
- if "stok" in inp and "durum" in inp:
222
- # Stok bilgisinin hangi ürün için istendiğini bulma
223
- for key in stock_dict.keys():
224
- if key in inp:
225
- return f"{key} ürününün stok durumu: {stock_dict[key]}"
226
- # Eğer ürün kodu bulunamazsa
227
- return "Üzgünüm, istediğiniz ürünün stok bilgisine erişemiyorum."
228
- else:
229
- return "Üzgünüm, sadece stok durumu hakkında bilgi verebilirim."
230
- else:
231
- print("API'ye bağlanırken hata oluştu. Hata kodu: ", response.status_code)
232
 
 
 
 
104
 
105
  demo.queue(max_size=20, concurrency_count=20).launch(debug=True)
106
 
 
107
  import requests
108
+ import xml.etree.ElementTree as ET
109
 
110
+ # Envanter yönetim sistemi URL'niz
111
+ url = "https://bizimhesap.com/api/product/getproductsasxml?apikey=6F4BAF303FA240608A39653824B6C495"
 
112
 
113
+ # URL'ye bir istek gönderin ve yanıt içeriğini alın
114
+ response = requests.get(url).content
 
115
 
116
+ # Yanıt XML'ini ayrıştırın
117
+ root = ET.fromstring(response)
118
 
119
+ # Her ürün öğesi üzerinde döngü yapın ve değerleri çıkarın
120
+ urunler = []
121
+ for product in root.findall('.//product'):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  stok_kod = product.find('code').text
123
  urun_ad = product.find('name').text
124
  satis_fiyat = product.find('price').text
125
  varyant = product.find('variant').text
126
  stok = int(product.find('quantity').text)
127
+
128
+ # Çıkarılan değerleri ürünler listesine ekleyin
129
+ urunler.append({
130
+ 'stok_kod': stok_kod,
131
+ 'urun_ad': urun_ad,
132
+ 'satis_fiyat': satis_fiyat,
133
+ 'varyant': varyant,
134
+ 'stok': stok
135
+ })
136
+
137
+ # Şimdi urunler listesi, çıkarılan değerlere sahip tüm ürünlerin sözlüklerini içeriyor.
138
+
139
+ # Müşterilerin isteklerini işlemek ve uygun bir yanıt sağlamak için 'Gradio' tabanlı sohbet botunuzda girdileri ve çıktıları geliştirebilirsiniz.
140
+
141
+ import gradio as gr
142
+
143
+ def urun_stok_sorgula(urun_kodu):
144
+ for urun in urunler:
145
+ if urun['stok_kod'] == urun_kodu:
146
+ # Eğer talep edilen ürün bulunursa, stok seviyesini döndürün
147
+ return f"{urun['urun_ad']} ürününün stok seviyesi {urun['stok']} adet."
148
 
149
+ # Eğer talep edilen ürün bulunamazsa, uygun bir mesaj döndürün
150
+ return f"Maalesef {urun_kodu} ürününün stok seviyesi hakkında hiçbir bilgimiz yok."
151
+
152
+ iface = gr.Interface(fn=urun_stok_sorgula, inputs="text", outputs="text", title="Ürün Stok Sorgulama", description="Lütfen ürün kodunu girin.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
 
154
+ # Arayüzü çalıştırın
155
+ iface.launch()