Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -66,7 +66,6 @@ def analyze_financial_data(file):
|
|
66 |
# Read the uploaded CSV file
|
67 |
data = pd.read_csv(file.name, encoding="utf-8", on_bad_lines='skip')
|
68 |
except UnicodeDecodeError:
|
69 |
-
# Fallback for non-UTF-8 encoding
|
70 |
try:
|
71 |
data = pd.read_csv(file.name, encoding="ISO-8859-1", on_bad_lines='skip')
|
72 |
except Exception as e:
|
@@ -74,19 +73,29 @@ def analyze_financial_data(file):
|
|
74 |
except Exception as e:
|
75 |
return {"error": f"An unexpected error occurred: {str(e)}"}
|
76 |
|
77 |
-
# Handle empty or malformed data
|
78 |
if data.empty:
|
79 |
return {"error": "The uploaded file is empty or has an invalid structure."}
|
80 |
|
81 |
-
#
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
try:
|
87 |
# Data Preprocessing
|
88 |
-
X = data[["Revenue", "Profit", "Loss", "Expenses"]].dropna()
|
89 |
-
y = data["Risk_Level"].dropna()
|
90 |
|
91 |
if X.empty or y.empty:
|
92 |
return {"error": "The data contains missing values or invalid rows after cleaning."}
|
@@ -114,10 +123,9 @@ def analyze_financial_data(file):
|
|
114 |
gan.train(torch.tensor(X_pca, dtype=torch.float32), epochs=200)
|
115 |
anomalies = gan.generate(n_samples=5, input_dim=X_pca.shape[1])
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
total_loss = data["Loss"].sum()
|
121 |
|
122 |
return {
|
123 |
"Accuracy": f"{accuracy * 100:.2f}%",
|
@@ -136,9 +144,7 @@ def analyze_financial_data(file):
|
|
136 |
# Gradio Interface
|
137 |
with gr.Blocks(theme=gr.themes.Monochrome()) as interface:
|
138 |
gr.Markdown("# **AI Risk Analyst Agent**")
|
139 |
-
gr.Markdown(
|
140 |
-
"Analyze your financial risks and identify anomalies using advanced AI models. Upload financial data in CSV format to get started."
|
141 |
-
)
|
142 |
with gr.Row():
|
143 |
with gr.Column():
|
144 |
data_file = gr.File(label="Upload Financial Data (CSV)", file_types=[".csv"])
|
|
|
66 |
# Read the uploaded CSV file
|
67 |
data = pd.read_csv(file.name, encoding="utf-8", on_bad_lines='skip')
|
68 |
except UnicodeDecodeError:
|
|
|
69 |
try:
|
70 |
data = pd.read_csv(file.name, encoding="ISO-8859-1", on_bad_lines='skip')
|
71 |
except Exception as e:
|
|
|
73 |
except Exception as e:
|
74 |
return {"error": f"An unexpected error occurred: {str(e)}"}
|
75 |
|
|
|
76 |
if data.empty:
|
77 |
return {"error": "The uploaded file is empty or has an invalid structure."}
|
78 |
|
79 |
+
# Dynamically map required columns
|
80 |
+
expected_columns = ["Revenue", "Profit", "Loss", "Expenses", "Risk_Level"]
|
81 |
+
available_columns = data.columns.tolist()
|
82 |
+
column_mapping = {}
|
83 |
+
|
84 |
+
for expected_col in expected_columns:
|
85 |
+
for available_col in available_columns:
|
86 |
+
if expected_col.lower() in available_col.lower():
|
87 |
+
column_mapping[expected_col] = available_col
|
88 |
+
break
|
89 |
+
|
90 |
+
if len(column_mapping) != len(expected_columns):
|
91 |
+
return {"error": f"The CSV must contain columns similar to: {', '.join(expected_columns)}"}
|
92 |
+
|
93 |
+
data.rename(columns=column_mapping, inplace=True)
|
94 |
|
95 |
try:
|
96 |
# Data Preprocessing
|
97 |
+
X = data[[column_mapping["Revenue"], column_mapping["Profit"], column_mapping["Loss"], column_mapping["Expenses"]]].dropna()
|
98 |
+
y = data[column_mapping["Risk_Level"]].dropna()
|
99 |
|
100 |
if X.empty or y.empty:
|
101 |
return {"error": "The data contains missing values or invalid rows after cleaning."}
|
|
|
123 |
gan.train(torch.tensor(X_pca, dtype=torch.float32), epochs=200)
|
124 |
anomalies = gan.generate(n_samples=5, input_dim=X_pca.shape[1])
|
125 |
|
126 |
+
total_revenue = data[column_mapping["Revenue"]].sum()
|
127 |
+
total_profit = data[column_mapping["Profit"]].sum()
|
128 |
+
total_loss = data[column_mapping["Loss"]].sum()
|
|
|
129 |
|
130 |
return {
|
131 |
"Accuracy": f"{accuracy * 100:.2f}%",
|
|
|
144 |
# Gradio Interface
|
145 |
with gr.Blocks(theme=gr.themes.Monochrome()) as interface:
|
146 |
gr.Markdown("# **AI Risk Analyst Agent**")
|
147 |
+
gr.Markdown("Analyze your financial risks and identify anomalies using AI models.")
|
|
|
|
|
148 |
with gr.Row():
|
149 |
with gr.Column():
|
150 |
data_file = gr.File(label="Upload Financial Data (CSV)", file_types=[".csv"])
|