LuckRafly's picture
Update app.py
b87b67d
raw
history blame
2.74 kB
from langchain.prompts import PromptTemplate
from langchain.llms import CTransformers
from langchain.chains import LLMChain
from langchain.chains import SequentialChain
from langchain.llms import HuggingFaceHub
from dotenv import load_dotenv
# load_dotenv();
config = {'max_new_tokens': 512, 'temperature': 0.6}
# Create function for app
def GetLLMResponse(selected_topic_level,
selected_topic,
num_quizzes):
# Calling llama model
# llm = CTransformers(model="D:\Code Workspace\DL Model\llama-2-7b-chat.ggmlv3.q8_0.bin",
# model_type = 'llama',
# config = config)
# llm = CTransformers(model='TheBloke/Llama-2-7B-Chat-GGML',
# model_file = 'llama-2-7b-chat.ggmlv3.q8_0.bin',
# model_type = 'llama',
# config = config)
llm = HuggingFaceHub(
repo_id = "mistralai/Mixtral-8x7B-Instruct-v0.1",
model_kwargs = config
)
## Create LLM Chaining
questions_template = "I want you to just generate question with this specification: Generate a {selected_topic_level} math quiz on the topic of {selected_topic}. Generate only {num_quizzes} questions not more and without providing answers. The Question should not in image format/link"
questions_prompt = PromptTemplate(input_variables=["selected_topic_level", "selected_topic", "num_quizzes"],
template=questions_template)
questions_chain = LLMChain(llm= llm,
prompt = questions_prompt,
output_key = "questions")
answer_template = "I want you to become a teacher answer this specific Question:\n {questions}\n\n. You should gave me a straightforward and consise explanation and answer to each one of them"
answer_prompt = PromptTemplate(input_variables = ["questions"],
template = answer_template)
answer_chain = LLMChain(llm = llm,
prompt = answer_prompt,
output_key = "answer")
## Create Sequential Chaining
seq_chain = SequentialChain(chains = [questions_chain, answer_chain],
input_variables = ['selected_topic_level', 'selected_topic', 'num_quizzes'],
output_variables = ['questions', 'answer'])
response = seq_chain({'selected_topic_level': selected_topic_level,
'selected_topic': selected_topic,
'num_quizzes' : num_quizzes})
## Generate the response from the llama 2 model
print(response)
return response