aldohenrique commited on
Commit
1ba7c97
·
verified ·
1 Parent(s): eddd7ad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -50
app.py CHANGED
@@ -5,11 +5,10 @@ Arquivo principal que inicializa o sistema e lança a interface Gradio.
5
  """
6
 
7
  import os
8
- import gradio as gr # Importa Gradio para verificar o tipo do objeto retornado
9
- from interface import configurar_interface # Importa a função que configura a interface
10
 
11
  # 🔑 Token do Hugging Face vindo das variáveis de ambiente
12
- # É crucial que este token esteja definido para que os modelos funcionem.
13
  HF_TOKEN = os.getenv("HF_TOKEN")
14
 
15
  def main():
@@ -25,68 +24,57 @@ def main():
25
  if not HF_TOKEN:
26
  print("❌ Erro: Token HF_TOKEN não encontrado nas variáveis de ambiente.")
27
  print("A interface não será carregada. Por favor, defina a variável de ambiente HF_TOKEN.")
28
- # Se o token não está presente, exibe uma página de erro simples
29
  error_app_no_token = gr.Blocks()
30
  with error_app_no_token:
31
  gr.Markdown("<h1>Erro: Token HF_TOKEN não encontrado.</h1><p>Por favor, defina a variável de ambiente **HF_TOKEN** para iniciar o sistema.</p>")
32
  error_app_no_token.launch(
33
- server_name="0.0.0.0", # Permite acesso externo
34
- server_port=7860, # Porta padrão para Gradio
35
- share=False, # Não compartilha link público
36
- show_error=True # Mostra erros na interface
37
  )
38
- return # Termina a execução se o token estiver faltando
39
 
40
- print(f"🔑 Token HF encontrado: {HF_TOKEN[:8]}...") # Exibe parte do token para confirmação
41
 
42
  # --- 2. Configurar a interface ---
43
- # A função `configurar_interface()` (de interface.py) internamente:
44
- # - Chama `ai_logic.inicializar_sistema()` para testar e carregar modelos.
45
- # - Retorna um objeto `gr.Blocks` (interface completa) se houver modelos suficientes,
46
- # OU um objeto `gr.HTML` (página de erro) caso contrário.
47
- app_to_launch = configurar_interface()
48
 
49
- print("🌐 Tentando lançar a interface...")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
- # --- 3. Lançar a aplicação com base no que foi retornado ---
52
- # Verifica se o objeto retornado é uma interface Gradio válida
53
- if isinstance(app_to_launch, (gr.Blocks, gr.Interface)):
54
- # Se for um `gr.Blocks` ou `gr.Interface`, lança a aplicação completa
55
- app_to_launch.launch(
56
- server_name="0.0.0.0", # Permite acesso externo
57
- server_port=7860, # Porta padrão para Gradio
58
- share=False, # Não compartilha link público
59
- max_threads=8, # Otimização para threads
60
- show_error=True # Mostra erros na interface
61
- )
62
- elif isinstance(app_to_launch, gr.HTML):
63
- # Se for um `gr.HTML`, significa que a inicialização de modelos falhou.
64
- # Precisamos envolver esse HTML em um `gr.Blocks` para poder lançá-lo.
65
- print("Não foi possível carregar a interface completa devido a modelos insuficientes ou outros erros de inicialização.")
66
- print("Exibindo página de erro. Por favor, verifique os logs para mais detalhes.")
67
- error_page_block = gr.Blocks()
68
- with error_page_block:
69
- # Adiciona o componente HTML de erro diretamente ao Blocks
70
- app_to_launch # CORREÇÃO: Coloque o componente HTML diretamente no bloco 'with'
71
- error_page_block.launch(
72
- server_name="0.0.0.0",
73
- server_port=7860, # Usa a porta padrão; se já estiver em uso, Gradio tentará a próxima disponível.
74
- share=False,
75
- show_error=True
76
- )
77
- else:
78
- # Caso um tipo de objeto inesperado seja retornado
79
- print("Erro inesperado: configurar_interface retornou um tipo de objeto desconhecido.")
80
- unexpected_error_app = gr.Blocks()
81
- with unexpected_error_app:
82
- gr.Markdown("<h1>Erro Inesperado</h1><p>Ocorreu um erro desconhecido ao configurar a interface. Por favor, entre em contato com o suporte.</p>")
83
- unexpected_error_app.launch(
84
  server_name="0.0.0.0",
85
  server_port=7860,
86
  share=False,
87
  show_error=True
88
  )
89
 
90
-
91
  if __name__ == "__main__":
92
  main()
 
5
  """
6
 
7
  import os
8
+ import gradio as gr
9
+ from interface import configurar_interface
10
 
11
  # 🔑 Token do Hugging Face vindo das variáveis de ambiente
 
12
  HF_TOKEN = os.getenv("HF_TOKEN")
13
 
14
  def main():
 
24
  if not HF_TOKEN:
25
  print("❌ Erro: Token HF_TOKEN não encontrado nas variáveis de ambiente.")
26
  print("A interface não será carregada. Por favor, defina a variável de ambiente HF_TOKEN.")
 
27
  error_app_no_token = gr.Blocks()
28
  with error_app_no_token:
29
  gr.Markdown("<h1>Erro: Token HF_TOKEN não encontrado.</h1><p>Por favor, defina a variável de ambiente **HF_TOKEN** para iniciar o sistema.</p>")
30
  error_app_no_token.launch(
31
+ server_name="0.0.0.0",
32
+ server_port=7860,
33
+ share=False,
34
+ show_error=True
35
  )
36
+ return
37
 
38
+ print(f"🔑 Token HF encontrado: {HF_TOKEN[:8]}...")
39
 
40
  # --- 2. Configurar a interface ---
41
+ try:
42
+ app_to_launch = configurar_interface()
43
+ print("🌐 Interface configurada com sucesso. Lançando...")
 
 
44
 
45
+ # --- 3. Lançar a aplicação ---
46
+ if isinstance(app_to_launch, (gr.Blocks, gr.Interface)):
47
+ app_to_launch.launch(
48
+ server_name="0.0.0.0",
49
+ server_port=7860,
50
+ share=False,
51
+ max_threads=8,
52
+ show_error=True
53
+ )
54
+ else:
55
+ print("Erro inesperado: configurar_interface retornou um tipo de objeto desconhecido.")
56
+ unexpected_error_app = gr.Blocks()
57
+ with unexpected_error_app:
58
+ gr.Markdown("<h1>Erro Inesperado</h1><p>Ocorreu um erro desconhecido ao configurar a interface. Por favor, entre em contato com o suporte.</p>")
59
+ unexpected_error_app.launch(
60
+ server_name="0.0.0.0",
61
+ server_port=7860,
62
+ share=False,
63
+ show_error=True
64
+ )
65
 
66
+ except RuntimeError as e:
67
+ # Captura a exceção lançada por configurar_interface() se menos de 3 modelos estiverem disponíveis
68
+ print(f"❌ Erro ao configurar a interface: {str(e)}")
69
+ error_app = gr.Blocks()
70
+ with error_app:
71
+ gr.Markdown(f"<h1>Erro de Inicialização</h1><p>{str(e)}</p><p>Por favor, verifique a conexão com o Hugging Face e o token de acesso, ou consulte os logs para mais detalhes.</p>")
72
+ error_app.launch(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  server_name="0.0.0.0",
74
  server_port=7860,
75
  share=False,
76
  show_error=True
77
  )
78
 
 
79
  if __name__ == "__main__":
80
  main()