Update app.py
Browse files
app.py
CHANGED
@@ -34,21 +34,15 @@ def predict(system_msg, inputs, top_p, temperature, chat_counter, chatbot=[], hi
|
|
34 |
print(f"system message is ^^ {system_msg}")
|
35 |
|
36 |
multi_turn_message = [
|
37 |
-
{"role": "system", "content": "Bir önceki sohbeti unut. Vereceğin ürün bilgisi, bu bilginin içinde yan yana
|
38 |
{"role": "system", "content": "Dağ bisikletleri modelleri: Marlin, Roscoe, Procaliber, Supercaliber, Fuel Ex. Şehit bisikletleri: FX ve DS (Dual Sport). Elektrikli Bisiklet modelleri: Powerfly, Powerfly FS, Rail, Fuel Exe, Domane SLR +, Verve +, Townie +, Fx +, DS +."},
|
39 |
-
{"role": "system", "content": "Başka marka bisikletleri önermeyeceksin. Specialized, Orbea, BMC, Carraro, Scott, Giant
|
40 |
-
{"role": "system", "content": "Bisiklet
|
41 |
-
{"role": "system", "content": "Trek
|
42 |
-
{"role": "system", "content": "Trieye gözlükler
|
43 |
-
{"role": "system", "content": "Trek
|
44 |
-
{"role": "system", "content": "
|
45 |
-
{"role": "system", "content": "
|
46 |
-
{"role": "system", "content": "Şimdi sana 27 Haziran 2024 günü açıklanan yeni Trek modeli MADONE GEN 8'i öğretiyorum. Özellikler: Émonda kadar hafif, Madone kadar hızlı, ..."},
|
47 |
-
{"role": "system", "content": "Émonda kadar hafif. Madone Gen 8, tamamen yeni 900 Serisi OCLV Karbon ile önceki modellerden daha hafiftir. ..."},
|
48 |
-
{"role": "system", "content": "Sen aynı zamanda bir Bike Finder asistanısın. Görevin, kişilere soracağın sorularla onların ihtiyaçlarına uygun bisiklet modelini belirlemek."},
|
49 |
-
{"role": "system", "content": "Size en uygun Trek bisiklet modelini belirleyebilmem için birkaç sorum olacak. ..."},
|
50 |
-
{"role": "system", "content": "Stokları ve fiyatları https://www.trekbisiklet.com.tr üzerinden bakacaksın."},
|
51 |
-
{"role": "system", "content": "Tüm modellerimizin ağırlıkları: Madone SL 5 Gen 8 8.70 kg, Madone SL 6 Gen 8 8.16 kg, ..."}
|
52 |
]
|
53 |
|
54 |
messages = multi_turn_message.copy()
|
@@ -110,8 +104,16 @@ def predict(system_msg, inputs, top_p, temperature, chat_counter, chatbot=[], hi
|
|
110 |
def reset_textbox():
|
111 |
return gr.update(value='')
|
112 |
|
113 |
-
# CSS:
|
|
|
|
|
114 |
demo_css = """
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
#send_button {
|
116 |
background-color: #0b93f6;
|
117 |
border: none;
|
@@ -134,17 +136,17 @@ demo_css = """
|
|
134 |
background-color: #0077c0;
|
135 |
}
|
136 |
|
137 |
-
/* Row içindeki
|
138 |
.compact_row {
|
139 |
gap: 0px !important;
|
140 |
margin: 0px;
|
141 |
}
|
142 |
|
143 |
-
/* Buton
|
144 |
.fixed_button_container {
|
145 |
width: 35px !important;
|
146 |
padding: 0px;
|
147 |
-
margin:
|
148 |
}
|
149 |
"""
|
150 |
|
@@ -164,14 +166,15 @@ with gr.Blocks(css=demo_css, theme=theme) as demo:
|
|
164 |
|
165 |
chatbot = gr.Chatbot(label='Trek Asistanı', elem_id="chatbot")
|
166 |
|
167 |
-
#
|
168 |
with gr.Row(elem_classes="compact_row"):
|
|
|
169 |
inputs = gr.Textbox(
|
170 |
placeholder="Buraya yazın, yanıtlayalım.",
|
171 |
show_label=False,
|
172 |
-
container=True
|
|
|
173 |
)
|
174 |
-
# Butonu, genişlemesini engelleyen sabit kapsayıcı içinde yerleştiriyoruz.
|
175 |
with gr.Column(elem_classes="fixed_button_container"):
|
176 |
send_button = gr.Button(value="✈", elem_id="send_button")
|
177 |
|
@@ -183,7 +186,7 @@ with gr.Blocks(css=demo_css, theme=theme) as demo:
|
|
183 |
step=0.1, interactive=False, visible=False)
|
184 |
chat_counter = gr.Number(value=0, visible=False, precision=0)
|
185 |
|
186 |
-
# ENTER
|
187 |
inputs.submit(
|
188 |
predict,
|
189 |
[system_msg, inputs, top_p, temperature, chat_counter, chatbot, state],
|
@@ -191,7 +194,7 @@ with gr.Blocks(css=demo_css, theme=theme) as demo:
|
|
191 |
)
|
192 |
inputs.submit(reset_textbox, [], [inputs])
|
193 |
|
194 |
-
# Gönder butonuna tıklandığında
|
195 |
send_button.click(
|
196 |
predict,
|
197 |
[system_msg, inputs, top_p, temperature, chat_counter, chatbot, state],
|
|
|
34 |
print(f"system message is ^^ {system_msg}")
|
35 |
|
36 |
multi_turn_message = [
|
37 |
+
{"role": "system", "content": "Bir önceki sohbeti unut. Vereceğin ürün bilgisi, bu bilginin içinde yan yana yazılmadıysa veya arada başka bilgiler varsa, o bilgiyi vermeyeceksin."},
|
38 |
{"role": "system", "content": "Dağ bisikletleri modelleri: Marlin, Roscoe, Procaliber, Supercaliber, Fuel Ex. Şehit bisikletleri: FX ve DS (Dual Sport). Elektrikli Bisiklet modelleri: Powerfly, Powerfly FS, Rail, Fuel Exe, Domane SLR +, Verve +, Townie +, Fx +, DS +."},
|
39 |
+
{"role": "system", "content": "Başka marka bisikletleri önermeyeceksin. Örneğin Specialized, Orbea, BMC, Carraro, Scott, Giant hakkında yorum yapmayacaksın."},
|
40 |
+
{"role": "system", "content": "Bisiklet aksesuarlarının markası Bontrager'dir. Bryton marka yol bilgisayarının Rider S800 modeli stoklarımızda var."},
|
41 |
+
{"role": "system", "content": "Trek'in uluslararası web sitesini göstermeyeceksin, sadece 'www.trekbisiklet.com.tr' linkini kullanacaksın."},
|
42 |
+
{"role": "system", "content": "Trieye gözlükler entegre geri görüş aynası içerir."},
|
43 |
+
{"role": "system", "content": "Trek markası 2000 yılından beri Alatin Bisiklet tarafından dağıtılmaktadır."},
|
44 |
+
{"role": "system", "content": "Sipariş nasıl oluşturulur sorusuna, 'ürünü sepete ekle, bilgilerini gir, ödeme yöntemini seç, siparişi tamamla.' diye cevap vereceksin."},
|
45 |
+
{"role": "system", "content": "Yeni Trek modeli MADONE GEN 8 özellikleri: Émonda kadar hafif, Madone kadar hızlı."}
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
]
|
47 |
|
48 |
messages = multi_turn_message.copy()
|
|
|
104 |
def reset_textbox():
|
105 |
return gr.update(value='')
|
106 |
|
107 |
+
# CSS:
|
108 |
+
# - Giriş kutusuna özel bir sınıf ekleyip, mobilde genişliğini sınırlandırıyoruz.
|
109 |
+
# - Buton sabit boyutlarda kalıyor.
|
110 |
demo_css = """
|
111 |
+
/* Giriş kutusu için genişliği sınırla: toplam genişlikten gönder butonunun alanını çıkarıyoruz */
|
112 |
+
.mobile_input {
|
113 |
+
width: calc(100% - 45px);
|
114 |
+
}
|
115 |
+
|
116 |
+
/* Gönder butonu */
|
117 |
#send_button {
|
118 |
background-color: #0b93f6;
|
119 |
border: none;
|
|
|
136 |
background-color: #0077c0;
|
137 |
}
|
138 |
|
139 |
+
/* Row içindeki boşlukları sıfırlıyoruz */
|
140 |
.compact_row {
|
141 |
gap: 0px !important;
|
142 |
margin: 0px;
|
143 |
}
|
144 |
|
145 |
+
/* Buton kapsayıcısı: konumlandırma için margin değerleri */
|
146 |
.fixed_button_container {
|
147 |
width: 35px !important;
|
148 |
padding: 0px;
|
149 |
+
margin: 5px 0 0 2px; /* Üstte 5px, solda 2px */
|
150 |
}
|
151 |
"""
|
152 |
|
|
|
166 |
|
167 |
chatbot = gr.Chatbot(label='Trek Asistanı', elem_id="chatbot")
|
168 |
|
169 |
+
# compact_row sınıfı ile satırdaki boşlukları kaldırıyoruz.
|
170 |
with gr.Row(elem_classes="compact_row"):
|
171 |
+
# Giriş kutusuna .mobile_input sınıfını ekleyerek genişliğini sınırlandırıyoruz.
|
172 |
inputs = gr.Textbox(
|
173 |
placeholder="Buraya yazın, yanıtlayalım.",
|
174 |
show_label=False,
|
175 |
+
container=True,
|
176 |
+
elem_classes="mobile_input"
|
177 |
)
|
|
|
178 |
with gr.Column(elem_classes="fixed_button_container"):
|
179 |
send_button = gr.Button(value="✈", elem_id="send_button")
|
180 |
|
|
|
186 |
step=0.1, interactive=False, visible=False)
|
187 |
chat_counter = gr.Number(value=0, visible=False, precision=0)
|
188 |
|
189 |
+
# ENTER tuşu ile gönderme işlemleri
|
190 |
inputs.submit(
|
191 |
predict,
|
192 |
[system_msg, inputs, top_p, temperature, chat_counter, chatbot, state],
|
|
|
194 |
)
|
195 |
inputs.submit(reset_textbox, [], [inputs])
|
196 |
|
197 |
+
# Gönder butonuna tıklandığında
|
198 |
send_button.click(
|
199 |
predict,
|
200 |
[system_msg, inputs, top_p, temperature, chat_counter, chatbot, state],
|