Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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.
|
| 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 |
-
|
| 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 |
-
|
| 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=
|
| 537 |
|
| 538 |
# ==========================
|
| 539 |
-
# Lançamento (público por padrão) — retrocompatível
|
| 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 |
-
|
| 551 |
-
app = demo.queue()
|
| 552 |
except Exception:
|
| 553 |
-
app = demo
|
| 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)
|