AutoAssess / app.py
TensorFlo's picture
initial commit
37b9a66
raw
history blame
1.93 kB
import streamlit as st
import pandas as pd
from src.main import process_image # Assume process_image is a function in main.py
from src.assess_text import assess_essay_with_gpt
from src.transcribe_image import transcribe_image
from PIL import Image
st.title("AutoAssess: Student Essay Transcription and Assessment")
# Upload folder of images
uploaded_files = st.file_uploader("Upload a folder of student essays (images)", type=['jpg', 'jpeg', 'png'], accept_multiple_files=True)
# Text inputs for question and criteria
essay_question = st.text_input("Enter the essay question:")
grading_criteria = st.text_area("Enter grading criteria or relevant marking information:")
# Upload Excel file with student IDs and page count
student_info_file = st.file_uploader("Upload Excel file with student IDs and page count", type=["xlsx"])
if st.button("Process Essays"):
if not uploaded_files or not essay_question or not grading_criteria or not student_info_file:
st.warning("Please upload all required files and enter necessary information.")
else:
# Process student info file
student_df = pd.read_excel(student_info_file)
st.write("Student Information:")
st.write(student_df)
results = []
for uploaded_file in uploaded_files:
image = Image.open(uploaded_file)
# Use your backend function to process each image
transcription = process_image(image, essay_question, grading_criteria)
results.append({"filename": uploaded_file.name, "transcription": transcription})
for result in results:
st.write(f"**File:** {result['filename']}")
st.write(result['transcription'])
# Optional: Save results to the output folder
output_file = "output/results.csv"
pd.DataFrame(results).to_csv(output_file)
st.success(f"All essays processed. Results saved to {output_file}")