Spaces:
Build error
Build error
Commit
·
d6f51dc
1
Parent(s):
aa88d2a
Update app.py
Browse files
app.py
CHANGED
|
@@ -50,65 +50,6 @@ if "debug" not in st.session_state:
|
|
| 50 |
|
| 51 |
st.title("TAPAS Table Question Answering with Weaviate")
|
| 52 |
|
| 53 |
-
# Get existing classes from Weaviate
|
| 54 |
-
existing_classes = [cls["class"] for cls in client.schema.get()["classes"]]
|
| 55 |
-
class_options = existing_classes + ["New Class"]
|
| 56 |
-
selected_class = st.selectbox("Select a class or create a new one:", class_options, key="class_selector")
|
| 57 |
-
|
| 58 |
-
if selected_class == "New Class":
|
| 59 |
-
class_name = st.text_input("Enter the new class name:")
|
| 60 |
-
class_description = st.text_input("Enter a description for the class:")
|
| 61 |
-
else:
|
| 62 |
-
class_name = selected_class
|
| 63 |
-
class_description = "" # We can fetch the description from Weaviate if needed
|
| 64 |
-
|
| 65 |
-
# Upload CSV data
|
| 66 |
-
csv_file = st.file_uploader("Upload a CSV file", type=["csv"], key="csv_uploader")
|
| 67 |
-
|
| 68 |
-
# Display the schema if an existing class is selected
|
| 69 |
-
class_schema = None # Initialize class_schema to None
|
| 70 |
-
if selected_class != "New Class":
|
| 71 |
-
st.write(f"Schema for {selected_class}:")
|
| 72 |
-
class_schema = get_class_schema(client, selected_class)
|
| 73 |
-
if class_schema:
|
| 74 |
-
properties = class_schema["properties"]
|
| 75 |
-
schema_df = pd.DataFrame(properties)
|
| 76 |
-
st.table(schema_df[["name", "dataType"]]) # Display only the name and dataType columns
|
| 77 |
-
|
| 78 |
-
# Before ingesting data into Weaviate, check if CSV columns match the class schema
|
| 79 |
-
if csv_file is not None:
|
| 80 |
-
data = csv_file.read().decode("utf-8")
|
| 81 |
-
dataframe = pd.read_csv(StringIO(data))
|
| 82 |
-
|
| 83 |
-
# Log CSV upload information
|
| 84 |
-
log_debug_info(f"CSV uploaded with shape: {dataframe.shape}")
|
| 85 |
-
|
| 86 |
-
# Display the uploaded CSV data
|
| 87 |
-
st.write("Uploaded CSV Data:")
|
| 88 |
-
st.write(dataframe)
|
| 89 |
-
|
| 90 |
-
# Check if columns match
|
| 91 |
-
if class_schema: # Ensure class_schema is not None
|
| 92 |
-
schema_columns = [prop["name"] for prop in class_schema["properties"]]
|
| 93 |
-
if set(dataframe.columns) != set(schema_columns):
|
| 94 |
-
st.error("The columns in the uploaded CSV do not match the schema of the selected class. Please check and upload the correct CSV or create a new class.")
|
| 95 |
-
else:
|
| 96 |
-
# Ingest data into Weaviate
|
| 97 |
-
ingest_data_to_weaviate(client, dataframe, class_name, class_description)
|
| 98 |
-
|
| 99 |
-
# Input for questions
|
| 100 |
-
questions = st.text_area("Enter your questions (one per line)")
|
| 101 |
-
questions = questions.split("\n") # split questions by line
|
| 102 |
-
questions = [q for q in questions if q] # remove empty strings
|
| 103 |
-
|
| 104 |
-
if st.button("Submit"):
|
| 105 |
-
if data and questions:
|
| 106 |
-
answers = summarize_map_reduce(tokenizer, model, data, questions)
|
| 107 |
-
st.write("Answers:")
|
| 108 |
-
for q, a in zip(questions, answers):
|
| 109 |
-
st.write(f"Question: {q}")
|
| 110 |
-
st.write(f"Answer: {a}")
|
| 111 |
-
|
| 112 |
# Display debugging information
|
| 113 |
if st.checkbox("Show Debugging Information"):
|
| 114 |
st.write("Debugging Logs:")
|
|
|
|
| 50 |
|
| 51 |
st.title("TAPAS Table Question Answering with Weaviate")
|
| 52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
# Display debugging information
|
| 54 |
if st.checkbox("Show Debugging Information"):
|
| 55 |
st.write("Debugging Logs:")
|