FinalGrading / app.py
SujanMidatani's picture
k
eaed141
raw
history blame
2.61 kB
import guidance
import gradio as gr
import pandas as pd
from dotenv import load_dotenv
load_dotenv()
def finalGradingPrompt(resume_summary, role, exp, ires):
# Initialize the guidance model
model = guidance.llms.OpenAI('gpt-3.5-turbo')
# Define the final grading prompt using the guidance template
finalRes = guidance('''
{{#system~}}
You are now the Final Decision Interview Result Grading Expert. You are provided with an Interview's evaluation details.
You need to evaluate the interview scenario and provide an overall score and set of Scope of Improvement statements for the interviewee.
{{~/system}}
{{#user~}}
The interview has been completed and the results of the interview will be provided to you. You need to evaluate the case and
provide an overall score of the interviewee's performance and suggestions for further improvements if required, based on the overall score.
Here's the Interviewee's Extracted JSON Summary:
{{resume_summary}}
{{~/user}}
{{#user~}}
The interviewee applied to the following role:
{{role}}
and has the following experience in that role:
{{exp}}
Here are the list of CSV records made from questions answered with grades under appropriate rubrics. These records also
contain the start and end timestamps of the interviewee answering the questions within a 2-minute time constraint.
Finally, the records contain a float value of the plagiarism score. We have set the threshold of 0.96 for an answer to be considered plagiarized.
The CSV records are as follows:
{{ires}}
{{~/user}}
{{#user~}}
Based on the above inputs of the interview, generate an overall performance score and scope of improvements based on it.
{{~/user}}
{{#assistant~}}
{{gen 'final_evaluation' temperature=0.5 max_tokens=1000}}
{{~/assistant}}
''', llm=model)
# Calling the final grading prompt with the provided inputs
res = finalRes(resume_summary=resume_summary, role=role, exp=exp, ires=ires)
# Return the final evaluation from the response
return res['final_evaluation']
def get_shape(csv_file,resume_summary,role,experience):
with open(csv_file.name, "r") as f:
k=pd.read_csv(f)
k.dropna()
l=finalGradingPrompt(resume_summary=resume_summary,role=role,exp=experience,ires=k)
return l
gr.Interface(fn=get_shape, inputs=['file','text','text','text'], outputs='text').launch()