File size: 1,554 Bytes
4adb7a4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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)