AniseF commited on
Commit
0f0fe40
·
verified ·
1 Parent(s): a4870ae

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -6
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
  from utils import call_openrouter
3
 
4
- # CSS para Contraste e Fontes (O que ajustamos antes)
5
  custom_css = """
6
  textarea, .input-container textarea { font-size: 22px !important; line-height: 1.6 !important; }
7
  .selected { background-color: #2b5797 !important; color: white !important; }
@@ -9,18 +9,34 @@ textarea, .input-container textarea { font-size: 22px !important; line-height: 1
9
  .item.selected, .item:hover { background-color: #2b5797 !important; color: white !important; }
10
  """
11
 
12
- # Listas de modelos para exibição (idênticas às do seu utils.py)
13
  MODELS_A = ["anthropic/claude-3.5-sonnet", "openai/gpt-4o", "google/gemini-pro-1.5"]
14
  MODELS_B = ["google/gemini-flash-1.5", "mistralai/mistral-7b-instruct", "cohere/command-r"]
15
 
 
16
  def update_model_display(mode):
17
- """Atualiza o texto que mostra os modelos ao usuário"""
18
  chain = MODELS_A if "Alta" in mode else MODELS_B
19
  display_text = "### 🔗 Cadeia de Modelos Ativa:\n"
20
  for m in chain:
21
  display_text += f"- `{m}`\n"
22
  return display_text
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  with gr.Blocks(css=custom_css, theme=gr.themes.Soft()) as demo:
25
  gr.Markdown("# 🏛️ Assistente de Análise Filológica")
26
 
@@ -31,13 +47,12 @@ with gr.Blocks(css=custom_css, theme=gr.themes.Soft()) as demo:
31
  with gr.Column():
32
  radio_mode = gr.Radio(["Alta Precisão (Filológica)", "Custo-Benefício"],
33
  label="Modo de Operação", value="Alta Precisão (Filológica)")
34
- # Este componente mostrará os modelos dinamicamente
35
  model_info_display = gr.Markdown(update_model_display("Alta Precisão (Filológica)"))
36
 
37
  radio_cat = gr.Radio(["Syntax", "Morphology", "Semantics"],
38
  label="Protocolo de Análise", value="Syntax")
39
 
40
- # Lógica para mudar o texto dos modelos quando o usuário clica no Radio
41
  radio_mode.change(fn=update_model_display, inputs=radio_mode, outputs=model_info_display)
42
 
43
  btn = gr.Button("Gerar Análise Completa", variant="primary")
@@ -46,10 +61,12 @@ with gr.Blocks(css=custom_css, theme=gr.themes.Soft()) as demo:
46
  output_file = gr.File(label="Baixar Relatório (.txt)")
47
  status = gr.Markdown("Pronto para iniciar.")
48
 
 
49
  btn.click(
50
  fn=process_interface,
51
  inputs=[input_text, radio_mode, radio_cat],
52
  outputs=[output_report, output_file, status]
53
  )
54
 
55
- demo.launch()
 
 
1
  import gradio as gr
2
  from utils import call_openrouter
3
 
4
+ # 1. CSS para Contraste e Fontes
5
  custom_css = """
6
  textarea, .input-container textarea { font-size: 22px !important; line-height: 1.6 !important; }
7
  .selected { background-color: #2b5797 !important; color: white !important; }
 
9
  .item.selected, .item:hover { background-color: #2b5797 !important; color: white !important; }
10
  """
11
 
12
+ # 2. Definição das listas de modelos para exibição
13
  MODELS_A = ["anthropic/claude-3.5-sonnet", "openai/gpt-4o", "google/gemini-pro-1.5"]
14
  MODELS_B = ["google/gemini-flash-1.5", "mistralai/mistral-7b-instruct", "cohere/command-r"]
15
 
16
+ # 3. Função que atualiza a lista de modelos na tela
17
  def update_model_display(mode):
 
18
  chain = MODELS_A if "Alta" in mode else MODELS_B
19
  display_text = "### 🔗 Cadeia de Modelos Ativa:\n"
20
  for m in chain:
21
  display_text += f"- `{m}`\n"
22
  return display_text
23
 
24
+ # 4. Função que processa a interface (O QUE ESTAVA FALTANDO)
25
+ def process_interface(passage, mode, category):
26
+ if not passage.strip():
27
+ return "Por favor, insira um texto.", None, "Aguardando entrada..."
28
+
29
+ # Chama a função turbinada do utils
30
+ report, model_used = call_openrouter(passage, mode, category)
31
+
32
+ # Gera arquivo para download
33
+ file_path = "analise_completa.txt"
34
+ with open(file_path, "w", encoding="utf-8") as f:
35
+ f.write(report)
36
+
37
+ return report, file_path, f"Finalizado com: {model_used}"
38
+
39
+ # 5. Construção da Interface Gradio
40
  with gr.Blocks(css=custom_css, theme=gr.themes.Soft()) as demo:
41
  gr.Markdown("# 🏛️ Assistente de Análise Filológica")
42
 
 
47
  with gr.Column():
48
  radio_mode = gr.Radio(["Alta Precisão (Filológica)", "Custo-Benefício"],
49
  label="Modo de Operação", value="Alta Precisão (Filológica)")
 
50
  model_info_display = gr.Markdown(update_model_display("Alta Precisão (Filológica)"))
51
 
52
  radio_cat = gr.Radio(["Syntax", "Morphology", "Semantics"],
53
  label="Protocolo de Análise", value="Syntax")
54
 
55
+ # Evento para mudar a lista de modelos quando o usuário trocar o Radio
56
  radio_mode.change(fn=update_model_display, inputs=radio_mode, outputs=model_info_display)
57
 
58
  btn = gr.Button("Gerar Análise Completa", variant="primary")
 
61
  output_file = gr.File(label="Baixar Relatório (.txt)")
62
  status = gr.Markdown("Pronto para iniciar.")
63
 
64
+ # Conexão do botão com a função definida no item 4
65
  btn.click(
66
  fn=process_interface,
67
  inputs=[input_text, radio_mode, radio_cat],
68
  outputs=[output_report, output_file, status]
69
  )
70
 
71
+ if __name__ == "__main__":
72
+ demo.launch()