Spaces:
Sleeping
Sleeping
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 |