import gradio as gr from data_processing import load_documents, load_index from search_engine import search_relevant_chunks from response_generator import generate_response from sentence_transformers import SentenceTransformer # Carregar dados e modelo documents = load_documents("data/documents.json") index = load_index("models/faiss_index.pkl") model = SentenceTransformer('neuralmind/bert-base-portuguese-cased') # Função principal do chatbot def politometro_chat(query): relevant_chunks = search_relevant_chunks(query, index, documents, model) response = generate_response(query, relevant_chunks) return response # Interface Gradio with gr.Blocks() as demo: gr.Markdown("🗳️ Bem-vindo ao Politómetro!") gr.Markdown("Este bot foi criado para te ajudar a explorar e compreender as propostas dos partidos políticos portugueses.") with gr.Row(): input_query = gr.Textbox(label="Faça sua pergunta aqui") output_response = gr.Textbox(label="Resposta") submit_button = gr.Button("Enviar") submit_button.click(politometro_chat, inputs=input_query, outputs=output_response) demo.launch()