Spaces:
Running
Running
Update app.py
Browse files
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
|
110 |
|
111 |
-
|
112 |
-
|
113 |
-
response = requests.get(url)
|
114 |
|
115 |
-
|
116 |
-
|
117 |
-
data = xmltodict.parse(xml_data)
|
118 |
|
119 |
-
|
|
|
120 |
|
121 |
-
|
122 |
-
|
123 |
-
|
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 |
-
#
|
196 |
-
|
197 |
-
|
198 |
-
|
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()
|