garyd1 commited on
Commit
4faaac7
·
verified ·
1 Parent(s): c5639ef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -8
app.py CHANGED
@@ -1,6 +1,6 @@
1
  import gradio as gr
2
  import time
3
- from transformers import pipeline
4
  from sentence_transformers import SentenceTransformer
5
  from sklearn.metrics.pairwise import cosine_similarity
6
  from TTS.api import TTS # Coqui TTS library
@@ -9,7 +9,10 @@ import PyPDF2
9
  # Initialize Models
10
  stt_model = pipeline("automatic-speech-recognition", model="openai/whisper-tiny")
11
  embedding_model = SentenceTransformer("all-MiniLM-L6-v2")
12
- conversation_model = pipeline("text-generation", model="deepseek/deepsense-open") # Using DeepSeek for question generation
 
 
 
13
 
14
  tts_model = TTS(model_name="tts_models/en/ljspeech/tacotron2-DDC", progress_bar=False, gpu=False)
15
 
@@ -28,16 +31,18 @@ def process_inputs(resume, job_desc):
28
  job_desc_embedding = embedding_model.encode(job_desc)
29
  return resume_embeddings, job_desc_embedding
30
 
31
- # Generate a follow-up question
32
- def generate_question(response, resume_embeddings):
33
  user_embedding = embedding_model.encode(response)
34
  similarities = {
35
  section: cosine_similarity([user_embedding], [embedding])[0][0]
36
  for section, embedding in resume_embeddings.items()
37
  }
38
  most_relevant_section = max(similarities, key=similarities.get)
39
- question_prompt = f"You are interviewing a candidate. Based on their resume and experience in {most_relevant_section}, ask a follow-up question."
40
- question = conversation_model(question_prompt, max_length=50, num_return_sequences=1)[0]['generated_text']
 
 
41
  return question
42
 
43
  # Generate TTS audio for a question
@@ -71,7 +76,7 @@ class MockInterview:
71
  return "No response detected. Please try again.", None
72
 
73
  # Generate the next question
74
- self.current_question = generate_question(transcription, self.resume_embeddings)
75
  return transcription, generate_audio(self.current_question)
76
 
77
  def end_interview(self):
@@ -111,4 +116,3 @@ with interface:
111
 
112
  if __name__ == "__main__":
113
  interface.launch()
114
-
 
1
  import gradio as gr
2
  import time
3
+ from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
4
  from sentence_transformers import SentenceTransformer
5
  from sklearn.metrics.pairwise import cosine_similarity
6
  from TTS.api import TTS # Coqui TTS library
 
9
  # Initialize Models
10
  stt_model = pipeline("automatic-speech-recognition", model="openai/whisper-tiny")
11
  embedding_model = SentenceTransformer("all-MiniLM-L6-v2")
12
+
13
+ gpt_model_name = "google/flan-t5-base"
14
+ gpt_tokenizer = AutoTokenizer.from_pretrained(gpt_model_name)
15
+ gpt_model = AutoModelForCausalLM.from_pretrained(gpt_model_name)
16
 
17
  tts_model = TTS(model_name="tts_models/en/ljspeech/tacotron2-DDC", progress_bar=False, gpu=False)
18
 
 
31
  job_desc_embedding = embedding_model.encode(job_desc)
32
  return resume_embeddings, job_desc_embedding
33
 
34
+ # Generate a follow-up question using Flan-T5
35
+ def generate_question(response, resume_embeddings, job_desc):
36
  user_embedding = embedding_model.encode(response)
37
  similarities = {
38
  section: cosine_similarity([user_embedding], [embedding])[0][0]
39
  for section, embedding in resume_embeddings.items()
40
  }
41
  most_relevant_section = max(similarities, key=similarities.get)
42
+ prompt = f"You are a hiring manager. Based on the candidate's experience in {most_relevant_section} and the job description, ask a follow-up question."
43
+ inputs = gpt_tokenizer(prompt, return_tensors="pt", truncation=True)
44
+ outputs = gpt_model.generate(**inputs, max_length=50, num_beams=3, early_stopping=True)
45
+ question = gpt_tokenizer.decode(outputs[0], skip_special_tokens=True)
46
  return question
47
 
48
  # Generate TTS audio for a question
 
76
  return "No response detected. Please try again.", None
77
 
78
  # Generate the next question
79
+ self.current_question = generate_question(transcription, self.resume_embeddings, self.job_desc_embedding)
80
  return transcription, generate_audio(self.current_question)
81
 
82
  def end_interview(self):
 
116
 
117
  if __name__ == "__main__":
118
  interface.launch()