File size: 2,230 Bytes
2dd02d0
 
 
 
 
 
aecf0f2
2dd02d0
 
aecf0f2
 
0746d2c
2dd02d0
 
aecf0f2
 
 
 
 
 
 
 
2dd02d0
 
aecf0f2
 
 
a636628
2dd02d0
aecf0f2
 
 
2dd02d0
 
 
0746d2c
247406d
2dd02d0
0746d2c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2dd02d0
 
 
 
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
import streamlit as st
import streamlit.components.v1 as components
import re
import sys
import os

# Configuração do caminho para incluir as pastas necessárias
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# Importando módulos necessários
from interface.chatbot import Chatbot
from interface.login import Login


def display_message(message):
    """Exibe a mensagem no chat, processando o tipo de mensagem."""
    if message["type"] == "text":
        # Remove a tag <path> da mensagem, se existir
        response_without_path = re.sub(r'<path>(.*?)</path>', '', message["content"]).strip()
        st.chat_message(message["role"]).write(response_without_path)
    elif message["type"] == "page":
        display_page_message(message)


def display_page_message(message):
    """Exibe a mensagem de tipo 'page', lidando com possíveis erros."""
    if "ERROR" in message["content"].upper():
        st.chat_message(message["role"]).write("Esta informação não está em meu alcance.")
    else:
        st.subheader("Conteúdo da Página Web:")
        height = 600 if message == st.session_state.chat_history[-1] else 400
        components.html(message["content"], height=height, scrolling=True)


def main():
    login = Login()
    app = Chatbot()

    if not st.session_state.user_authorized:
        login.mount_login_page()
    
    else:
        with st.sidebar:
            app.create_sidebar()  # Corrigido para chamar o método que cria o sidebar
        
        app.mount_chatbot() # Recebe o input de texto feito pelo usuário
        
        if app.response:
            app.add_to_history(app.response, role="user")
            app.generate_answer(app.response)
            app.response = ""  # Zerando a variável após uso
            st.session_state.is_feedback_active = True # Ativando o feedback
    
        for message in st.session_state.chat_history:
            display_message(message)
            if message["type"] == "page" and message == st.session_state.chat_history[-1]:
                app.display_suggestions(app.links)
        
        if st.session_state.is_feedback_active:
            app.display_feedback()


if __name__ == "__main__":
    main()