Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -7,6 +7,7 @@ import matplotlib.pyplot as plt
|
|
| 7 |
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
|
| 8 |
from dotenv import load_dotenv
|
| 9 |
import anthropic
|
|
|
|
| 10 |
|
| 11 |
# Load environment variables
|
| 12 |
load_dotenv()
|
|
@@ -118,20 +119,32 @@ if uploaded_file is not None:
|
|
| 118 |
else:
|
| 119 |
parsed_query = ask_gpt(f"Convert this question into a Pandas operation: {query}")
|
| 120 |
|
| 121 |
-
#
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
|
| 136 |
# Memory for context retention
|
| 137 |
if "query_history" not in st.session_state:
|
|
|
|
| 7 |
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
|
| 8 |
from dotenv import load_dotenv
|
| 9 |
import anthropic
|
| 10 |
+
import ast
|
| 11 |
|
| 12 |
# Load environment variables
|
| 13 |
load_dotenv()
|
|
|
|
| 119 |
else:
|
| 120 |
parsed_query = ask_gpt(f"Convert this question into a Pandas operation: {query}")
|
| 121 |
|
| 122 |
+
# Validate and clean query
|
| 123 |
+
parsed_query = parsed_query.strip().replace("`", "")
|
| 124 |
+
st.write(f"Parsed Query: `{parsed_query}`")
|
| 125 |
+
|
| 126 |
+
# Check for column existence if query involves a column
|
| 127 |
+
for col in column_names:
|
| 128 |
+
if col in parsed_query and col not in df.columns:
|
| 129 |
+
st.error(f"Error: Column '{col}' not found in the uploaded file.")
|
| 130 |
+
break
|
| 131 |
+
else:
|
| 132 |
+
# Execute the query
|
| 133 |
+
try:
|
| 134 |
+
result = eval(parsed_query, {"df": df, "pd": pd}) # Ensuring df is correctly referenced
|
| 135 |
+
st.write("### Result:")
|
| 136 |
+
st.write(result if isinstance(result, pd.DataFrame) else str(result))
|
| 137 |
+
|
| 138 |
+
# If numerical data, show a visualization
|
| 139 |
+
if isinstance(result, pd.Series) and result.dtype in ["int64", "float64"]:
|
| 140 |
+
fig, ax = plt.subplots()
|
| 141 |
+
result.plot(kind="bar", ax=ax)
|
| 142 |
+
st.pyplot(fig)
|
| 143 |
+
|
| 144 |
+
except SyntaxError as e:
|
| 145 |
+
st.error(f"Syntax Error in parsed query: {str(e)}")
|
| 146 |
+
except Exception as e:
|
| 147 |
+
st.error(f"Error executing query: {str(e)}")
|
| 148 |
|
| 149 |
# Memory for context retention
|
| 150 |
if "query_history" not in st.session_state:
|