Spaces:
Running
Running
changes made to app.py
Browse files
app.py
CHANGED
@@ -96,16 +96,24 @@ def identify_subtopic(question, domain):
|
|
96 |
|
97 |
def generate_question(prompt, domain, state=None):
|
98 |
full_prompt = system_prompt + "\n" + prompt
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
outputs = model.generate(
|
101 |
inputs["input_ids"],
|
|
|
102 |
max_new_tokens=50,
|
103 |
no_repeat_ngram_size=2,
|
104 |
top_k=30,
|
105 |
top_p=0.9,
|
106 |
temperature=0.7,
|
107 |
do_sample=True,
|
108 |
-
pad_token_id=tokenizer.
|
109 |
)
|
110 |
question = tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
|
111 |
if not question.endswith("?"):
|
@@ -124,6 +132,11 @@ def generate_question(prompt, domain, state=None):
|
|
124 |
|
125 |
|
126 |
def evaluate_response(response, question):
|
|
|
|
|
|
|
|
|
|
|
127 |
eval_prompt = (
|
128 |
"Evaluate the following candidate response to an interview question.\n\n"
|
129 |
f"**Question:** {question}\n"
|
@@ -132,15 +145,19 @@ def evaluate_response(response, question):
|
|
132 |
"Also, provide a brief suggestion for improvement. Format:\n"
|
133 |
"Rating: <Rating>\nSuggestion: <Suggestion>"
|
134 |
)
|
135 |
-
|
|
|
|
|
|
|
136 |
outputs = qwq_model.generate(
|
137 |
inputs["input_ids"],
|
|
|
138 |
max_new_tokens=100,
|
139 |
top_k=30,
|
140 |
top_p=0.9,
|
141 |
temperature=0.7,
|
142 |
do_sample=True,
|
143 |
-
pad_token_id=qwq_tokenizer.
|
144 |
)
|
145 |
evaluation = qwq_tokenizer.decode(outputs[0], skip_special_tokens=True)
|
146 |
rating, suggestion = "Unknown", "No suggestion available."
|
|
|
96 |
|
97 |
def generate_question(prompt, domain, state=None):
|
98 |
full_prompt = system_prompt + "\n" + prompt
|
99 |
+
# Explicitly set padding side and add pad token
|
100 |
+
tokenizer.padding_side = "left"
|
101 |
+
if tokenizer.pad_token is None:
|
102 |
+
tokenizer.pad_token = tokenizer.eos_token
|
103 |
+
|
104 |
+
# Tokenize with explicit padding and attention mask
|
105 |
+
inputs = tokenizer(full_prompt, return_tensors="pt", padding=True, truncation=True).to(device)
|
106 |
+
|
107 |
outputs = model.generate(
|
108 |
inputs["input_ids"],
|
109 |
+
attention_mask=inputs["attention_mask"],
|
110 |
max_new_tokens=50,
|
111 |
no_repeat_ngram_size=2,
|
112 |
top_k=30,
|
113 |
top_p=0.9,
|
114 |
temperature=0.7,
|
115 |
do_sample=True,
|
116 |
+
pad_token_id=tokenizer.pad_token_id,
|
117 |
)
|
118 |
question = tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
|
119 |
if not question.endswith("?"):
|
|
|
132 |
|
133 |
|
134 |
def evaluate_response(response, question):
|
135 |
+
# Explicitly set padding side and add pad token
|
136 |
+
qwq_tokenizer.padding_side = "left"
|
137 |
+
if qwq_tokenizer.pad_token is None:
|
138 |
+
qwq_tokenizer.pad_token = qwq_tokenizer.eos_token
|
139 |
+
|
140 |
eval_prompt = (
|
141 |
"Evaluate the following candidate response to an interview question.\n\n"
|
142 |
f"**Question:** {question}\n"
|
|
|
145 |
"Also, provide a brief suggestion for improvement. Format:\n"
|
146 |
"Rating: <Rating>\nSuggestion: <Suggestion>"
|
147 |
)
|
148 |
+
|
149 |
+
# Tokenize with explicit padding and attention mask
|
150 |
+
inputs = qwq_tokenizer(eval_prompt, return_tensors="pt", padding=True, truncation=True).to(qwq_model.device)
|
151 |
+
|
152 |
outputs = qwq_model.generate(
|
153 |
inputs["input_ids"],
|
154 |
+
attention_mask=inputs["attention_mask"],
|
155 |
max_new_tokens=100,
|
156 |
top_k=30,
|
157 |
top_p=0.9,
|
158 |
temperature=0.7,
|
159 |
do_sample=True,
|
160 |
+
pad_token_id=qwq_tokenizer.pad_token_id,
|
161 |
)
|
162 |
evaluation = qwq_tokenizer.decode(outputs[0], skip_special_tokens=True)
|
163 |
rating, suggestion = "Unknown", "No suggestion available."
|