IgorValpassos commited on
Commit
abaf2f8
·
verified ·
1 Parent(s): 4252808

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -16
app.py CHANGED
@@ -41,9 +41,16 @@ latex_delimiter_set = [
41
  # Tema (IFRJ green) — sem .set(...) com tokens não suportados
42
  theme = gr.themes.Soft(primary_hue="green", secondary_hue="emerald")
43
 
44
- # (Opcional) Analytics / header extra
45
  html_header = """
46
  <script defer src="https://cloud.umami.is/script.js" data-website-id="28b59ada-b311-4b77-85ba-9243a591bac2"></script>
 
 
 
 
 
 
 
47
  """
48
 
49
  # CSS compatível com versões antigas do Gradio
@@ -68,8 +75,6 @@ function () {
68
  }
69
  """
70
 
71
- """
72
-
73
  # ==========================
74
  # Modelo local (gratuito)
75
  # ==========================
@@ -96,7 +101,7 @@ STOP_SEQ = ["Usuário:", "Sistemas:", "Sistema:", "Assistant:", "Assistent
96
  _llm = None
97
 
98
  def _load_llm():
99
- """Carrega modelo local tentando Qwen 0.5 e caindo para TinyLlama se necessário."""
100
  global _llm
101
  if _llm is not None:
102
  return _llm
@@ -319,13 +324,12 @@ def is_offtopic(text):
319
  def try_skills(user_msg):
320
  for fn in (
321
  skill_juros_simples, skill_juros_compostos, skill_equivalencia_taxas,
322
- skill_price_sac, skill_aposentadoria, skill_pgbl_vgbl, skill_rf_rv,
323
  ):
324
  ans = fn(user_msg)
325
  if ans: return ans
326
- # armadilhas
327
- ans = skill_armadilhas(user_msg)
328
- return ans
329
 
330
  def skill_armadilhas(msg):
331
  lo = msg.lower()
@@ -435,7 +439,7 @@ def download_history(history):
435
  path = "chat_history.txt"
436
  with open(path, "w", encoding="utf-8") as f:
437
  f.writelines(lines)
438
- return path
439
 
440
  def upload_history(file):
441
  hist = []
@@ -511,7 +515,7 @@ with gr.Blocks(
511
  retry_btn = gr.Button("↻ Tentar de novo (última pergunta)")
512
  clear_btn = gr.Button("Limpar conversa")
513
  commons_btn = gr.Button("Perguntas comuns")
514
- #toggle_btn = gr.Button("Alternar tema")
515
 
516
  with gr.Accordion("Histórico", open=False):
517
  with gr.Row():
@@ -533,10 +537,10 @@ with gr.Blocks(
533
  dl_btn.click(download_history, inputs=chatbot, outputs=dl_btn)
534
  up_btn.upload(lambda f, h: ("", (h or []) + upload_history(f)), [up_btn, chatbot], [user_box, chatbot])
535
 
536
- toggle_btn.click(lambda: None, [], [], js=js_toggle)
537
 
538
  # ==========================
539
- # Lançamento (público por padrão) — retrocompatível com diferentes Gradios
540
  # ==========================
541
  USER_NAME = os.environ.get("USER_NAME", "")
542
  PASSWORD = os.environ.get("PASSWORD", "")
@@ -544,13 +548,11 @@ PASSWORD = os.environ.get("PASSWORD", "")
544
  if __name__ == "__main__":
545
  port = int(os.getenv("PORT", "7860"))
546
 
547
- # Tenta enfileirar (queue) com assinatura mais ampla; se falhar, usa direto.
548
  app = demo
549
  try:
550
- # Gradio ≥3/≤4: queue() sem kwargs costuma existir
551
- app = demo.queue()
552
  except Exception:
553
- app = demo # sem fila
554
 
555
  if USER_NAME and PASSWORD:
556
  app.launch(server_name="0.0.0.0", server_port=port, auth=(USER_NAME, PASSWORD), show_api=False)
 
41
  # Tema (IFRJ green) — sem .set(...) com tokens não suportados
42
  theme = gr.themes.Soft(primary_hue="green", secondary_hue="emerald")
43
 
44
+ # (Opcional) Analytics / header extra + garantir tema claro no load
45
  html_header = """
46
  <script defer src="https://cloud.umami.is/script.js" data-website-id="28b59ada-b311-4b77-85ba-9243a591bac2"></script>
47
+ <script>
48
+ document.addEventListener('DOMContentLoaded', function () {
49
+ try { localStorage.setItem('theme', 'light'); } catch(e) {}
50
+ document.body.classList.remove('dark');
51
+ document.body.classList.add('light');
52
+ });
53
+ </script>
54
  """
55
 
56
  # CSS compatível com versões antigas do Gradio
 
75
  }
76
  """
77
 
 
 
78
  # ==========================
79
  # Modelo local (gratuito)
80
  # ==========================
 
101
  _llm = None
102
 
103
  def _load_llm():
104
+ """Carrega modelo local tentando Qwen 0.5B e caindo para TinyLlama se necessário."""
105
  global _llm
106
  if _llm is not None:
107
  return _llm
 
324
  def try_skills(user_msg):
325
  for fn in (
326
  skill_juros_simples, skill_juros_compostos, skill_equivalencia_taxas,
327
+ skill_price_sac, skill_aposentadoria, skill_pgbl_vgbl, skill_rf_rv,
328
  ):
329
  ans = fn(user_msg)
330
  if ans: return ans
331
+ # armadilhas por último
332
+ return skill_armadilhas(user_msg)
 
333
 
334
  def skill_armadilhas(msg):
335
  lo = msg.lower()
 
439
  path = "chat_history.txt"
440
  with open(path, "w", encoding="utf-8") as f:
441
  f.writelines(lines)
442
+ return path # DownloadButton usa o nome do arquivo retornado
443
 
444
  def upload_history(file):
445
  hist = []
 
515
  retry_btn = gr.Button("↻ Tentar de novo (última pergunta)")
516
  clear_btn = gr.Button("Limpar conversa")
517
  commons_btn = gr.Button("Perguntas comuns")
518
+ toggle_btn = gr.Button("Tema claro")
519
 
520
  with gr.Accordion("Histórico", open=False):
521
  with gr.Row():
 
537
  dl_btn.click(download_history, inputs=chatbot, outputs=dl_btn)
538
  up_btn.upload(lambda f, h: ("", (h or []) + upload_history(f)), [up_btn, chatbot], [user_box, chatbot])
539
 
540
+ toggle_btn.click(lambda: None, [], [], js=js_force_light)
541
 
542
  # ==========================
543
+ # Lançamento (público por padrão) — retrocompatível
544
  # ==========================
545
  USER_NAME = os.environ.get("USER_NAME", "")
546
  PASSWORD = os.environ.get("PASSWORD", "")
 
548
  if __name__ == "__main__":
549
  port = int(os.getenv("PORT", "7860"))
550
 
 
551
  app = demo
552
  try:
553
+ app = demo.queue() # se a versão suportar
 
554
  except Exception:
555
+ app = demo # fallback sem fila
556
 
557
  if USER_NAME and PASSWORD:
558
  app.launch(server_name="0.0.0.0", server_port=port, auth=(USER_NAME, PASSWORD), show_api=False)