Garvitj commited on
Commit
eada6b0
·
verified ·
1 Parent(s): aca269c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -24
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import gradio as gr
2
- from transformers import AutoModelForCausalLM, AutoTokenizer
3
  import torch
4
  import numpy as np
5
  import cv2
@@ -8,26 +8,28 @@ import pytesseract as tess
8
  from sentence_transformers import SentenceTransformer, util
9
  import io
10
 
11
- save_directory="spaces/Garvitj/grader"
12
 
13
- # Load the tokenizer from the saved directory
14
- tokenizer = AutoTokenizer.from_pretrained(save_directory)
15
 
16
- # Load the model from the saved directory
17
- model = AutoModelForCausalLM.from_pretrained(
18
- save_directory,
19
- torch_dtype=torch.float16 if device == "cuda" else torch.float32,
20
- device_map="auto" if device == "cuda" else None
21
- )
22
 
23
- # Move model to the appropriate device (CPU or CUDA)
24
- model.to(device)
 
25
 
26
- print(f"Model and tokenizer loaded from {save_directory}")
27
 
28
  tess.pytesseract.tesseract_cmd = r"/app/tesseract.exe"
29
- # Load a smaller version of Sentence-BERT model
30
- model1 = SentenceTransformer('all-MiniLM-L6-v2')
 
31
 
32
  def get_embedding(text):
33
  return model1.encode(text, convert_to_tensor=True)
@@ -62,18 +64,13 @@ def evaluate_answer(image):
62
  model_answer = "The process of photosynthesis helps plants produce glucose using sunlight."
63
  similarity_score = calculate_similarity(student_answer, model_answer)
64
  grade = get_grade(similarity_score)
65
- feedback = f"Student's answer: {student_answer}\nTeacher's answer: {model_answer}"
66
  return grade, similarity_score * 100, feedback
67
 
68
  def generate_response(prompt):
69
- inputs = tokenizer(prompt, return_tensors="pt").to(device)
70
-
71
- # Generate response from the model
72
- with torch.no_grad():
73
- outputs = model.generate(inputs.input_ids, max_length=150, temperature=0.7)
74
-
75
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
76
- return response
77
 
78
  def gradio_interface(image, prompt):
79
  grade, similarity_score, feedback = evaluate_answer(image)
 
1
  import gradio as gr
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
3
  import torch
4
  import numpy as np
5
  import cv2
 
8
  from sentence_transformers import SentenceTransformer, util
9
  import io
10
 
11
+ # save_directory = "spaces/Garvitj/grader"
12
 
13
+ # # Load the tokenizer from the saved directory
14
+ # tokenizer = AutoTokenizer.from_pretrained(save_directory)
15
 
16
+ # # Load the model from the saved directory
17
+ # model = AutoModelForCausalLM.from_pretrained(
18
+ # save_directory,
19
+ # torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
20
+ # device_map="auto" if torch.cuda.is_available() else None
21
+ # )
22
 
23
+ # # Move model to the appropriate device (CPU or CUDA)
24
+ # device = "cuda" if torch.cuda.is_available() else "cpu"
25
+ # model.to(device)
26
 
27
+ # print(f"Model and tokenizer loaded from {save_directory}")
28
 
29
  tess.pytesseract.tesseract_cmd = r"/app/tesseract.exe"
30
+
31
+ # Use a pipeline as a high-level helper
32
+ pipe = pipeline("text-generation", model="eachadea/vicuna-7b-1.1")
33
 
34
  def get_embedding(text):
35
  return model1.encode(text, convert_to_tensor=True)
 
64
  model_answer = "The process of photosynthesis helps plants produce glucose using sunlight."
65
  similarity_score = calculate_similarity(student_answer, model_answer)
66
  grade = get_grade(similarity_score)
67
+ feedback = generate_response("Student's answer: {student_answer}\nTeacher's answer: {model_answer}")
68
  return grade, similarity_score * 100, feedback
69
 
70
  def generate_response(prompt):
71
+ # Generate response from the new model using the pipeline
72
+ response = pipe(prompt, max_length=150, temperature=0.7)
73
+ return response[0]['generated_text']
 
 
 
 
 
74
 
75
  def gradio_interface(image, prompt):
76
  grade, similarity_score, feedback = evaluate_answer(image)