MCQ-Generator / MCQGenerator.py
yukti-kash's picture
Update MCQGenerator.py
c1cc5d8 verified
import os
import json
import pandas as pd
import traceback
import PyPDF2
from langchain.chat_models import ChatOpenAI
from langchain import PromptTemplate, LLMChain, OpenAI
from langchain.chains import SequentialChain
# geting envrionment variable like => os.environ
key = os.getenv('OPENAI_API_KEY')
# making openai object
llm = ChatOpenAI(openai_api_key = key,model_name = 'gpt-3.5-turbo',temperature = 0.6)
# creating Tempalate for PromptTemplate
Template = '''
You are a helpful MCQ Generater and u have been given a text : {text},
You have to generate {number} mcq questions on {subject} and
level of difficulty should be {level} .
The response should be kept the way it is given in RESPONSE_JSON and use it as guide
### RESPONSE_JSON
{response_json}'''
quiz_prompt = PromptTemplate(
input_variables = ['text','number','subject','level','response_json'],
template = Template
)
quiz_chain = LLMChain(llm = llm,prompt = quiz_prompt,output_key = 'quiz')
Template2 = '''
Quiz : {quiz} ,
U are an english grammerian and writer
Task : Ur task is to anyalyse or review the quiz questions in the given quiz
quiz for the given subject : {subject},
Just give a review about the quiz like how it is and
If the quiz doesn't fit with the cognitve abiltiy of the student then just change the
questions in the quiz and difficulty level of the quiz to make it fit
'''
# to check the complexity and review the quiz
complex_prompt = PromptTemplate(
input_variables = ['quiz','subject'],
template = Template2
)
complex_chain = LLMChain(llm = llm, prompt = complex_prompt, output_key = 'complexity')
final_chain = SequentialChain(chains = [quiz_chain, complex_chain], input_variables = ['text','number','subject','level','response_json'],output_variables = ['quiz','complexity'])