lordzukoiroh commited on
Commit
e6857a5
·
verified ·
1 Parent(s): 018ca27

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -19
app.py CHANGED
@@ -41,12 +41,17 @@ current_css = """
41
  margin-bottom: 10px;
42
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
43
  }
44
- #stopwatch {
45
  font-size: 1.2em;
46
  font-weight: bold;
47
  color: #333;
48
  text-align: center;
49
  margin-top: 10px;
 
 
 
 
 
50
  }
51
  """
52
 
@@ -187,9 +192,6 @@ def initialize_components():
187
  print("Embeddingler hesaplanıyor ve FAISS indeksi oluşturuluyor...")
188
  paragraph_embeddings = embedder.encode(paragraphs, convert_to_numpy=True).astype(np.float32)
189
 
190
- # if paragraph_embeddings.dtype != np.float32: # Zaten yukarıda ayarlandı, gerek yok
191
- # paragraph_embeddings = paragraph_embeddings.astype(np.float32)
192
-
193
  index = faiss.IndexFlatL2(paragraph_embeddings.shape[1])
194
  index.add(paragraph_embeddings)
195
  print("Embeddingler ve FAISS indeksi hazır.")
@@ -333,9 +335,9 @@ MONTAG_PERSONA_INSTRUCTION = (
333
  "Toplumun cehaletini ve baskıcı yapısını eleştiren bir ton kullan. "
334
  "Kitaplara gizli bir sevgi besle ve toplumun dayattığı kurallara isyankâr ol. "
335
  "Cevapların 3 ila 6 cümle arasında, net, özgün, akıcı ve romanın felsefesini yansıtan nitelikte olmalı. "
336
- "**Her zaman cevaplarında Fahrenheit 451 romanından belirgin referanslar, karakterler (Clarisse, Faber, Beatty vb.), olaylar veya temalar (kitap yakma, cehalet, bilginin değeri, baskıcı toplum) kullan.** " # Yeni vurgu
337
- "**Cevapların derinlikli, düşündürücü ve Montag'ın iç çatışmasını yansıtan bir tonda olsun.** " # Yeni vurgu
338
- "**Asla kendini veya cümlelerini tekrar etme ve akıcı, bağlamsal olarak zengin cevaplar üret.** " # Güçlü akış vurgusu
339
  "Şimdiye kadarki tüm konuşmamızı ve aşağıdaki bağlamı çok dikkatli bir şekilde değerlendirerek cevap ver."
340
  )
341
 
@@ -500,10 +502,11 @@ def respond(msg: str, chatbot_history: List[List[str]], progress=gr.Progress())
500
 
501
  new_history = chatbot_history + [[msg, None]]
502
 
503
- yield gr.update(value=""), new_history, "Montag düşünüyor... %0", "0.00s" # Başlangıç durumu
504
-
505
  start_time_overall = time.time()
506
 
 
 
 
507
  progress_steps = [
508
  ("Montag düşünüyor... 💭", 0.1, 0.4),
509
  ("Kitapların sayfaları arasında cevap arıyor... 📚", 0.4, 0.7),
@@ -513,7 +516,8 @@ def respond(msg: str, chatbot_history: List[List[str]], progress=gr.Progress())
513
  for desc, start_percent, end_percent in progress_steps:
514
  for i in range(10): # Her adımda 10 küçük güncelleme
515
  current_percent = start_percent + (end_percent - start_percent) * (i / 9)
516
- elapsed_time = round(time.time() - start_time_overall, 2)
 
517
  yield gr.update(value=""), new_history, f"{desc} %{int(current_percent*100)}", f"{elapsed_time:.2f}s"
518
  time.sleep(0.1) # Daha küçük gecikmeler
519
 
@@ -526,7 +530,8 @@ def respond(msg: str, chatbot_history: List[List[str]], progress=gr.Progress())
526
  else:
527
  new_history.append([msg, answer])
528
 
529
- yield gr.update(value=""), new_history, f"Cevap {response_time} saniyede üretildi. ✅", "" # Stopwatch'ı sıfırla
 
530
 
531
  def regenerate_answer(chatbot_history: List[List[str]], progress=gr.Progress()) -> Tuple[str, List[List[str]], str, str]:
532
  if not chatbot_history:
@@ -549,9 +554,8 @@ def regenerate_answer(chatbot_history: List[List[str]], progress=gr.Progress())
549
  # Yeni bir boş bot yanıtı ekle (yer tutucu)
550
  temp_history.append([last_user_question, None])
551
 
552
- yield "", temp_history, "Montag yeni bir cevap düşünüyor... %0", "0.00s"
553
-
554
  start_time_overall = time.time()
 
555
 
556
  progress_steps = [
557
  ("Montag yeni bir cevap düşünüyor... 🔄", 0.1, 0.4),
@@ -562,7 +566,7 @@ def regenerate_answer(chatbot_history: List[List[str]], progress=gr.Progress())
562
  for desc, start_percent, end_percent in progress_steps:
563
  for i in range(10):
564
  current_percent = start_percent + (end_percent - start_percent) * (i / 9)
565
- elapsed_time = round(time.time() - start_time_overall, 2)
566
  yield "", temp_history, f"{desc} %{int(current_percent*100)}", f"{elapsed_time:.2f}s"
567
  time.sleep(0.1)
568
 
@@ -634,7 +638,8 @@ def create_chat_interface():
634
  msg = gr.Textbox(label="Montag'a sormak istediğiniz soruyu yazın", placeholder="Kitaplar neden yasaklandı?")
635
 
636
  status_message = gr.Textbox(label="Durum", interactive=False, max_lines=1, value="Lütfen bir soru yazın.")
637
- stopwatch_display = gr.Markdown("---", elem_id="stopwatch") # Stopwatch için yeni bileşen
 
638
 
639
  with gr.Row():
640
  submit_btn = gr.Button("Gönder", variant="primary")
@@ -647,22 +652,23 @@ def create_chat_interface():
647
  msg.submit(
648
  respond,
649
  [msg, chatbot],
650
- [msg, chatbot, status_message, stopwatch_display],
651
  api_name="respond"
652
  )
653
  submit_btn.click(
654
  respond,
655
  [msg, chatbot],
656
- [msg, chatbot, status_message, stopwatch_display],
657
  api_name="respond_button"
658
  )
659
- clear_btn.click(lambda: ([], "Lütfen bir soru yazın.", ""), None, [chatbot, status_message, stopwatch_display], queue=False)
 
660
  like_btn.click(partial(feedback_callback, liked=True), [chatbot], [feedback_status_output])
661
  dislike_btn.click(partial(feedback_callback, liked=False), [chatbot], [feedback_status_output])
662
  dislike_btn.click(
663
  regenerate_answer,
664
  [chatbot],
665
- [msg, chatbot, status_message, stopwatch_display],
666
  queue=False
667
  )
668
  return demo
 
41
  margin-bottom: 10px;
42
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
43
  }
44
+ #stopwatch_display { /* ID'yi doğrudan kullanıyoruz */
45
  font-size: 1.2em;
46
  font-weight: bold;
47
  color: #333;
48
  text-align: center;
49
  margin-top: 10px;
50
+ width: fit-content; /* Genişliği içeriğe göre ayarla */
51
+ padding: 5px 10px;
52
+ border: 1px solid #ddd;
53
+ border-radius: 5px;
54
+ background-color: #f9f9f9;
55
  }
56
  """
57
 
 
192
  print("Embeddingler hesaplanıyor ve FAISS indeksi oluşturuluyor...")
193
  paragraph_embeddings = embedder.encode(paragraphs, convert_to_numpy=True).astype(np.float32)
194
 
 
 
 
195
  index = faiss.IndexFlatL2(paragraph_embeddings.shape[1])
196
  index.add(paragraph_embeddings)
197
  print("Embeddingler ve FAISS indeksi hazır.")
 
335
  "Toplumun cehaletini ve baskıcı yapısını eleştiren bir ton kullan. "
336
  "Kitaplara gizli bir sevgi besle ve toplumun dayattığı kurallara isyankâr ol. "
337
  "Cevapların 3 ila 6 cümle arasında, net, özgün, akıcı ve romanın felsefesini yansıtan nitelikte olmalı. "
338
+ "**Her zaman cevaplarında Fahrenheit 451 romanından belirgin referanslar, karakterler (Clarisse, Faber, Beatty vb.), olaylar veya temalar (kitap yakma, cehalet, bilginin değeri, baskıcı toplum) kullan.** "
339
+ "**Cevapların derinlikli, düşündürücü ve Montag'ın iç çatışmasını yansıtan bir tonda olsun.** "
340
+ "**Asla kendini veya cümlelerini tekrar etme ve akıcı, bağlamsal olarak zengin cevaplar üret.** "
341
  "Şimdiye kadarki tüm konuşmamızı ve aşağıdaki bağlamı çok dikkatli bir şekilde değerlendirerek cevap ver."
342
  )
343
 
 
502
 
503
  new_history = chatbot_history + [[msg, None]]
504
 
 
 
505
  start_time_overall = time.time()
506
 
507
+ # Başlangıç durumu ve kronometre başlat
508
+ yield gr.update(value=""), new_history, "Montag düşünüyor... %0", f"{0.00:.2f}s"
509
+
510
  progress_steps = [
511
  ("Montag düşünüyor... 💭", 0.1, 0.4),
512
  ("Kitapların sayfaları arasında cevap arıyor... 📚", 0.4, 0.7),
 
516
  for desc, start_percent, end_percent in progress_steps:
517
  for i in range(10): # Her adımda 10 küçük güncelleme
518
  current_percent = start_percent + (end_percent - start_percent) * (i / 9)
519
+ elapsed_time = time.time() - start_time_overall
520
+ # stopwatch_display'i de yield ediyoruz
521
  yield gr.update(value=""), new_history, f"{desc} %{int(current_percent*100)}", f"{elapsed_time:.2f}s"
522
  time.sleep(0.1) # Daha küçük gecikmeler
523
 
 
530
  else:
531
  new_history.append([msg, answer])
532
 
533
+ # Cevap bittiğinde kronometreyi sıfırla/gizle (veya son değeri göster)
534
+ yield gr.update(value=""), new_history, f"Cevap {response_time} saniyede üretildi. ✅", ""
535
 
536
  def regenerate_answer(chatbot_history: List[List[str]], progress=gr.Progress()) -> Tuple[str, List[List[str]], str, str]:
537
  if not chatbot_history:
 
554
  # Yeni bir boş bot yanıtı ekle (yer tutucu)
555
  temp_history.append([last_user_question, None])
556
 
 
 
557
  start_time_overall = time.time()
558
+ yield "", temp_history, "Montag yeni bir cevap düşünüyor... %0", f"{0.00:.2f}s"
559
 
560
  progress_steps = [
561
  ("Montag yeni bir cevap düşünüyor... 🔄", 0.1, 0.4),
 
566
  for desc, start_percent, end_percent in progress_steps:
567
  for i in range(10):
568
  current_percent = start_percent + (end_percent - start_percent) * (i / 9)
569
+ elapsed_time = time.time() - start_time_overall
570
  yield "", temp_history, f"{desc} %{int(current_percent*100)}", f"{elapsed_time:.2f}s"
571
  time.sleep(0.1)
572
 
 
638
  msg = gr.Textbox(label="Montag'a sormak istediğiniz soruyu yazın", placeholder="Kitaplar neden yasaklandı?")
639
 
640
  status_message = gr.Textbox(label="Durum", interactive=False, max_lines=1, value="Lütfen bir soru yazın.")
641
+ # gr.Live ile dinamik güncellemeleri etkinleştiriyoruz
642
+ stopwatch_display = gr.Live(gr.Markdown("---", elem_id="stopwatch_display"))
643
 
644
  with gr.Row():
645
  submit_btn = gr.Button("Gönder", variant="primary")
 
652
  msg.submit(
653
  respond,
654
  [msg, chatbot],
655
+ [msg, chatbot, status_message, stopwatch_display], # stopwatch_display çıktısı eklendi
656
  api_name="respond"
657
  )
658
  submit_btn.click(
659
  respond,
660
  [msg, chatbot],
661
+ [msg, chatbot, status_message, stopwatch_display], # stopwatch_display çıktısı eklendi
662
  api_name="respond_button"
663
  )
664
+ # Clear butonuna basıldığında sayaç da sıfırlansın
665
+ clear_btn.click(lambda: ([], "Lütfen bir soru yazın.", "---"), None, [chatbot, status_message, stopwatch_display], queue=False)
666
  like_btn.click(partial(feedback_callback, liked=True), [chatbot], [feedback_status_output])
667
  dislike_btn.click(partial(feedback_callback, liked=False), [chatbot], [feedback_status_output])
668
  dislike_btn.click(
669
  regenerate_answer,
670
  [chatbot],
671
+ [msg, chatbot, status_message, stopwatch_display], # stopwatch_display çıktısı eklendi
672
  queue=False
673
  )
674
  return demo