AutoGrader / app.py
JishnuSetia's picture
Upload 2 files
4adb7a4 verified
import streamlit as st
import google.generativeai as genai
import os
import PyPDF2 as pdf
from dotenv import load_dotenv
import json
load_dotenv() ## load all our environment variables
os.getenv("GOOGLE_API_KEY")
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
def get_gemini_response(input):
model=genai.GenerativeModel('gemini-pro')
response=model.generate_content(input)
return response.text
def input_pdf_text(uploaded_file):
reader=pdf.PdfReader(uploaded_file)
text=""
for page in range(len(reader.pages)):
page=reader.pages[page]
text+=str(page.extract_text())
return text
#Prompt Template
input_prompt="""
Act Like a skilled or very experience Teacher. Your task is to evaluate the answers in the test. You are a very very strict teacher. Here are the details:-
Questions:{qs}
Answers:{text}
Rubric: {ٍrubric}
Give your response in 4 seperate parts having the structure
Marks:"%"
Give a small message saying 'Good Job' or something based on percentage
MissingKeywords:[]
Tips to Improve the Student Marks:""}}
"""
## streamlit app
st.title("AI AutoGrader")
qs=st.text_area("Enter Test Questions")
rubric=st.text_area("Enter Test Rubric")
uploaded_file=st.file_uploader("Upload Answer Sheet",type="pdf",help="Please uplaod the pdf")
submit = st.button("Submit")
if submit:
if uploaded_file is not None:
text=input_pdf_text(uploaded_file)
response=get_gemini_response(input_prompt.format(text=text, qs=qs, rubric=rubric))
st.subheader(response)