Spaces:
Running
Running
File size: 2,526 Bytes
c6dc269 34e67a1 10379c1 23171a7 c6dc269 23171a7 8775a91 34e67a1 8775a91 c6dc269 8775a91 23171a7 4ade980 86088c2 9b8124b 86088c2 4ade980 c6dc269 23171a7 c6dc269 23171a7 c6dc269 23171a7 c6dc269 31a3643 c6dc269 23171a7 c6dc269 23171a7 c6dc269 31a3643 c6dc269 23171a7 c6dc269 23171a7 c6dc269 31a3643 c6dc269 31a3643 |
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 |
import streamlit as st
import pandas as pd
from transformers import pipeline
# Load the anomalies data
df = pd.read_csv('anomalies.csv', sep=',', decimal='.')
# Function to generate a response
def response(user_question):
# Verifica se a pergunta é uma string
if not isinstance(user_question, str):
raise TypeError(f"Esperado uma string para a pergunta, mas recebeu {type(user_question)}")
# Inicializa o pipeline para table-question-answering
tqa = pipeline(task="table-question-answering", model="google/tapas-large-finetuned-wtq")
# Obtém a resposta do modelo
resposta = tqa(table=df, query=user_question)
# Verifica se alguma célula foi retornada
if len(resposta['cells']) == 0:
raise IndexError("Nenhuma célula foi retornada pelo modelo.")
# Obtém a primeira célula da resposta
final_response = resposta['cells'][0]
return final_response
# Streamlit interface
st.markdown("""
<div style='display: flex; align-items: center;'>
<div style='width: 40px; height: 40px; background-color: green; border-radius: 50%; margin-right: 5px;'></div>
<div style='width: 40px; height: 40px; background-color: red; border-radius: 50%; margin-right: 5px;'></div>
<div style='width: 40px; height: 40px; background-color: yellow; border-radius: 50%; margin-right: 5px;'></div>
<span style='font-size: 40px; font-weight: bold;'>Chatbot do Tesouro RS</span>
</div>
""", unsafe_allow_html=True)
# Chat history
if 'history' not in st.session_state:
st.session_state['history'] = []
# Input box for user question
user_question = st.text_input("Escreva sua questão aqui:", "")
if user_question:
# Add person emoji when typing question
st.session_state['history'].append(('👤', user_question))
st.markdown(f"**👤 {user_question}**")
# Generate the response
bot_response = response(user_question)
# Add robot emoji when generating response and align to the right
st.session_state['history'].append(('🤖', bot_response))
st.markdown(f"<div style='text-align: right'>**🤖 {bot_response}**</div>", unsafe_allow_html=True)
# Clear history button
if st.button("Limpar"):
st.session_state['history'] = []
# Display chat history
for sender, message in st.session_state['history']:
if sender == '👤':
st.markdown(f"**👤 {message}**")
elif sender == '🤖':
st.markdown(f"<div style='text-align: right'>**🤖 {message}**</div>", unsafe_allow_html=True)
|