Spaces:
Build error
Build error
import sys | |
sys.path.append('.') | |
from copy import deepcopy | |
from langchain.callbacks import StreamlitCallbackHandler | |
import streamlit as st | |
import logging | |
import ui_utils | |
import weaviate_utils | |
import tapas_utils | |
from weaviate_utils import * | |
from tapas_utils import * | |
from ui_utils import * | |
# Initialize Weaviate client | |
client = initialize_weaviate_client() | |
# Initialize TAPAS | |
tokenizer, model = initialize_tapas() | |
# Global list to store debugging information | |
DEBUG_LOGS = [] | |
class StreamlitCallbackHandler(logging.Handler): | |
def emit(self, record): | |
log_entry = self.format(record) | |
st.write(log_entry) | |
def log_debug_info(message): | |
if st.session_state.debug: | |
logger = logging.getLogger(__name__) | |
logger.setLevel(logging.DEBUG) | |
# Check if StreamlitCallbackHandler is already added to avoid duplicate logs | |
if not any(isinstance(handler, StreamlitCallbackHandler) for handler in logger.handlers): | |
handler = StreamlitCallbackHandler() | |
logger.addHandler(handler) | |
logger.debug(message) | |
# UI components | |
ui_utils.display_initial_buttons() | |
selected_class = ui_utils.display_class_dropdown(client) | |
ui_utils.handle_new_class_selection(client, selected_class) | |
ui_utils.csv_upload_and_ingestion(client, selected_class) | |
ui_utils.display_query_input(client, selected_class, tokenizer, model) # Updated this line | |
# Initialize session state attributes | |
if "debug" not in st.session_state: | |
st.session_state.debug = False | |
st.title("TAPAS Table Question Answering with Weaviate") | |
# Display debugging information | |
if st.checkbox("Show Debugging Information"): | |
st.write("Debugging Logs:") | |
for log in DEBUG_LOGS: | |
st.write(log) | |
# Add Ctrl+Enter functionality for submitting the questions | |
st.markdown(""" | |
<script> | |
document.addEventListener("DOMContentLoaded", function(event) { | |
document.addEventListener("keydown", function(event) { | |
if (event.ctrlKey && event.key === "Enter") { | |
document.querySelector(".stButton button").click(); | |
} | |
}); | |
}); | |
</script> | |
""", unsafe_allow_html=True) | |