Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -130,6 +130,9 @@ ENGAGED_STR = 'Engaged (Respect, Responsibility, Effort)'
|
|
130 |
PARTIALLY_ENGAGED_STR = 'Partially Engaged (about 50%)'
|
131 |
NOT_ENGAGED_STR = 'Not Engaged (less than 50%)'
|
132 |
|
|
|
|
|
|
|
133 |
def main():
|
134 |
st.title("Intervention Program Analysis")
|
135 |
|
@@ -138,67 +141,73 @@ def main():
|
|
138 |
|
139 |
if uploaded_file is not None:
|
140 |
try:
|
141 |
-
# Read the Excel file into a DataFrame
|
142 |
-
|
143 |
|
144 |
-
# Rename duplicate columns to make them unique
|
|
|
145 |
cols = pd.Series(df.columns)
|
146 |
for dup in cols[cols.duplicated()].unique():
|
147 |
cols[cols[cols == dup].index.values.tolist()] = [f"{dup}_{i+1}" if i != 0 else dup for i in range(sum(cols == dup))]
|
148 |
df.columns = cols
|
149 |
|
150 |
-
# Replace student names with initials
|
151 |
df = replace_student_names_with_initials(df)
|
152 |
|
|
|
153 |
st.subheader("Uploaded Data")
|
154 |
st.write(df)
|
155 |
|
156 |
-
# Ensure expected column is available
|
157 |
if INTERVENTION_COLUMN not in df.columns:
|
158 |
st.error(f"Expected column '{INTERVENTION_COLUMN}' not found.")
|
159 |
return
|
160 |
|
161 |
-
# Clean up column names
|
162 |
df.columns = df.columns.str.strip()
|
163 |
|
164 |
-
# Compute Intervention Session Statistics
|
165 |
intervention_stats = compute_intervention_statistics(df)
|
166 |
st.subheader("Intervention Session Statistics")
|
167 |
st.write(intervention_stats)
|
168 |
|
169 |
-
# Visualization for Intervention Session Statistics
|
170 |
intervention_fig = plot_intervention_statistics(intervention_stats)
|
171 |
|
172 |
-
# Add download button for Intervention Session Statistics chart
|
173 |
download_chart(intervention_fig, "intervention_statistics_chart.png")
|
174 |
|
175 |
-
# Compute Student Metrics
|
176 |
student_metrics_df = compute_student_metrics(df)
|
177 |
st.subheader("Student Metrics")
|
178 |
st.write(student_metrics_df)
|
179 |
|
180 |
-
# Visualization for Student Metrics
|
181 |
student_metrics_fig = plot_student_metrics(student_metrics_df)
|
182 |
|
183 |
-
# Add download button for Student Metrics chart
|
184 |
download_chart(student_metrics_fig, "student_metrics_chart.png")
|
185 |
|
186 |
-
# Prepare input for the language model
|
187 |
llm_input = prepare_llm_input(student_metrics_df)
|
188 |
|
189 |
-
# Generate Notes and Recommendations using Hugging Face LLM
|
190 |
with st.spinner("Generating AI analysis..."):
|
191 |
recommendations = prompt_response_from_hf_llm(llm_input)
|
192 |
|
|
|
193 |
st.subheader("AI Analysis")
|
194 |
st.markdown(recommendations)
|
195 |
|
196 |
-
# Add download button for LLM output
|
197 |
download_llm_output(recommendations, "llm_output.txt")
|
198 |
|
199 |
except Exception as e:
|
200 |
st.error(f"Error reading the file: {str(e)}")
|
201 |
|
|
|
|
|
|
|
202 |
def replace_student_names_with_initials(df):
|
203 |
"""Replace student names in column headers with initials."""
|
204 |
updated_columns = []
|
|
|
130 |
PARTIALLY_ENGAGED_STR = 'Partially Engaged (about 50%)'
|
131 |
NOT_ENGAGED_STR = 'Not Engaged (less than 50%)'
|
132 |
|
133 |
+
import streamlit as st
|
134 |
+
import pandas as pd
|
135 |
+
|
136 |
def main():
|
137 |
st.title("Intervention Program Analysis")
|
138 |
|
|
|
141 |
|
142 |
if uploaded_file is not None:
|
143 |
try:
|
144 |
+
# Step 1: Read the Excel file into a DataFrame
|
145 |
+
df = pd.read_excel(uploaded_file)
|
146 |
|
147 |
+
# Step 2: Rename duplicate columns to make them unique
|
148 |
+
# Using built-in pandas functionality to handle duplicate column names
|
149 |
cols = pd.Series(df.columns)
|
150 |
for dup in cols[cols.duplicated()].unique():
|
151 |
cols[cols[cols == dup].index.values.tolist()] = [f"{dup}_{i+1}" if i != 0 else dup for i in range(sum(cols == dup))]
|
152 |
df.columns = cols
|
153 |
|
154 |
+
# Step 3: Replace student names with initials
|
155 |
df = replace_student_names_with_initials(df)
|
156 |
|
157 |
+
# Step 4: Display the uploaded data
|
158 |
st.subheader("Uploaded Data")
|
159 |
st.write(df)
|
160 |
|
161 |
+
# Step 5: Ensure expected column is available
|
162 |
if INTERVENTION_COLUMN not in df.columns:
|
163 |
st.error(f"Expected column '{INTERVENTION_COLUMN}' not found.")
|
164 |
return
|
165 |
|
166 |
+
# Step 6: Clean up column names
|
167 |
df.columns = df.columns.str.strip()
|
168 |
|
169 |
+
# Step 7: Compute and Display Intervention Session Statistics
|
170 |
intervention_stats = compute_intervention_statistics(df)
|
171 |
st.subheader("Intervention Session Statistics")
|
172 |
st.write(intervention_stats)
|
173 |
|
174 |
+
# Step 8: Visualization for Intervention Session Statistics
|
175 |
intervention_fig = plot_intervention_statistics(intervention_stats)
|
176 |
|
177 |
+
# Step 9: Add download button for Intervention Session Statistics chart
|
178 |
download_chart(intervention_fig, "intervention_statistics_chart.png")
|
179 |
|
180 |
+
# Step 10: Compute Student Metrics
|
181 |
student_metrics_df = compute_student_metrics(df)
|
182 |
st.subheader("Student Metrics")
|
183 |
st.write(student_metrics_df)
|
184 |
|
185 |
+
# Step 11: Visualization for Student Metrics
|
186 |
student_metrics_fig = plot_student_metrics(student_metrics_df)
|
187 |
|
188 |
+
# Step 12: Add download button for Student Metrics chart
|
189 |
download_chart(student_metrics_fig, "student_metrics_chart.png")
|
190 |
|
191 |
+
# Step 13: Prepare input for the language model
|
192 |
llm_input = prepare_llm_input(student_metrics_df)
|
193 |
|
194 |
+
# Step 14: Generate Notes and Recommendations using Hugging Face LLM
|
195 |
with st.spinner("Generating AI analysis..."):
|
196 |
recommendations = prompt_response_from_hf_llm(llm_input)
|
197 |
|
198 |
+
# Step 15: Display AI Analysis
|
199 |
st.subheader("AI Analysis")
|
200 |
st.markdown(recommendations)
|
201 |
|
202 |
+
# Step 16: Add download button for LLM output
|
203 |
download_llm_output(recommendations, "llm_output.txt")
|
204 |
|
205 |
except Exception as e:
|
206 |
st.error(f"Error reading the file: {str(e)}")
|
207 |
|
208 |
+
if __name__ == "__main__":
|
209 |
+
main()
|
210 |
+
|
211 |
def replace_student_names_with_initials(df):
|
212 |
"""Replace student names in column headers with initials."""
|
213 |
updated_columns = []
|