File size: 3,111 Bytes
7dc0225
 
 
f96b739
721a95b
 
7dc0225
1ba7c97
 
2253ce8
 
 
 
7dc0225
f96b739
 
 
 
 
 
7dc0225
2253ce8
f96b739
7dc0225
f96b739
 
 
 
 
 
1ba7c97
 
 
 
f96b739
1ba7c97
f96b739
1ba7c97
f96b739
 
1ba7c97
 
 
f96b739
1ba7c97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f96b739
1ba7c97
 
 
 
 
 
 
f96b739
 
 
 
 
7dc0225
 
95ddb94
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env python3
"""
Dr. Aldo Henrique - Chatbot com RAG
Arquivo principal que inicializa o sistema e lança a interface Gradio.
"""

import os
import gradio as gr
from interface import configurar_interface

# 🔑 Token do Hugging Face vindo das variáveis de ambiente
HF_TOKEN = os.getenv("HF_TOKEN")

def main():
    """
    Função principal que gerencia o fluxo de inicialização do chatbot:
    1. Verifica a presença do token Hugging Face.
    2. Tenta configurar a interface Gradio (que internamente testa os modelos).
    3. Lança a interface completa ou uma página de erro, dependendo do resultado.
    """
    print("🚀 Iniciando Dr. Aldo Henrique com RAG...")

    # --- 1. Verificar se o token HF está configurado ---
    if not HF_TOKEN:
        print("❌ Erro: Token HF_TOKEN não encontrado nas variáveis de ambiente.")
        print("A interface não será carregada. Por favor, defina a variável de ambiente HF_TOKEN.")
        error_app_no_token = gr.Blocks()
        with error_app_no_token:
            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>")
        error_app_no_token.launch(
            server_name="0.0.0.0",
            server_port=7860,
            share=False,
            show_error=True
        )
        return

    print(f"🔑 Token HF encontrado: {HF_TOKEN[:8]}...")

    # --- 2. Configurar a interface ---
    try:
        app_to_launch = configurar_interface()
        print("🌐 Interface configurada com sucesso. Lançando...")

        # --- 3. Lançar a aplicação ---
        if isinstance(app_to_launch, (gr.Blocks, gr.Interface)):
            app_to_launch.launch(
                server_name="0.0.0.0",
                server_port=7860,
                share=False,
                max_threads=8,
                show_error=True
            )
        else:
            print("Erro inesperado: configurar_interface retornou um tipo de objeto desconhecido.")
            unexpected_error_app = gr.Blocks()
            with unexpected_error_app:
                gr.Markdown("<h1>Erro Inesperado</h1><p>Ocorreu um erro desconhecido ao configurar a interface. Por favor, entre em contato com o suporte.</p>")
            unexpected_error_app.launch(
                server_name="0.0.0.0",
                server_port=7860,
                share=False,
                show_error=True
            )

    except RuntimeError as e:
        # Captura a exceção lançada por configurar_interface() se menos de 3 modelos estiverem disponíveis
        print(f"❌ Erro ao configurar a interface: {str(e)}")
        error_app = gr.Blocks()
        with error_app:
            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>")
        error_app.launch(
            server_name="0.0.0.0",
            server_port=7860,
            share=False,
            show_error=True
        )

if __name__ == "__main__":
    main()