File size: 3,016 Bytes
7dc0225
009aae9
7dc0225
f96b739
721a95b
 
7dc0225
1ba7c97
 
4de6dcc
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
import asyncio

# 🔑 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:
        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()