Exam_Checker_AI / main.py
sharoz's picture
updated flow
f140f1f
from transcriber import transcribe_pdf
from evaluator import eval_flow
import json
import os
def flow(student_pdf_path: str,
standard_pdf_path:str,
save_dict: bool,
student_dict_path: str,
standard_dict_path: str,
output_pdf_path: str):
# create new interim_files folder if multiple instances of the flow are run
# Transcribe the student's PDF response
print("Transcribing the student's response")
student_resp = transcribe_pdf(student_pdf_path, "interim_files_student", save_dict, student_dict_path)
print("--------------------------------------------")
# Transcribe the standard answer key PDF
print("Transcribing the standard answer key")
standard_key = transcribe_pdf(standard_pdf_path, "interim_files_standard", save_dict, standard_dict_path)
print("--------------------------------------------")
# # comment if running full flow
# # when testing the evaluator only
# student_resp = json.load(open(student_dict_path, "r"))
# standard_key = json.load(open(standard_dict_path, "r"))
# Evaluate the student's response and generate a report
print("Evaluating the student's response")
eval_flow(student_resp, standard_key, output_pdf_path)
print("Flow completed successfully!")
print("--------------------------------------------")
# remove the files in the interim_files folder
print("Clearing interim files folder")
for file in os.listdir("interim_files_student"):
file_path = os.path.join("interim_files_student", file)
os.remove(file_path)
for file in os.listdir("interim_files_standard"):
file_path = os.path.join("interim_files_standard", file)
os.remove(file_path)
return output_pdf_path
if __name__ == "__main__":
# student_pdf_path = "examples/Chapter 1 - Indian Regulatory Framework Student Answer Key (1).pdf"
# standard_pdf_path = "examples/Chapter 1 Indian Regulatory Frame Work Standard Question And Answer Key (2).pdf"
student_pdf_path = "examples/ca inter chapter - amalgamation student answer.pdf"
standard_pdf_path = "examples/ca inter chapter - amalgamation.pdf"
save_dict = True
student_dict_path = "student_response.json"
standard_dict_path = "standard_key.json"
output_pdf_path = "output_report.pdf"
flow(student_pdf_path, standard_pdf_path, save_dict, student_dict_path, standard_dict_path, output_pdf_path)