Spaces:
Sleeping
Sleeping
SirinootKK
commited on
Commit
·
846bf0f
1
Parent(s):
fcea57d
fix app.py
Browse files
app.py
CHANGED
@@ -75,19 +75,19 @@ class Chatbot:
|
|
75 |
def load_data(self, path: str = DATA_PATH):
|
76 |
self.df = pd.read_excel(path, sheet_name='Default')
|
77 |
self.df['Context'] = pd.read_excel(path, sheet_name='mdeberta')['Context']
|
78 |
-
print('Load data done')
|
79 |
|
80 |
def load_model(self, model_name: str = DEFAULT_MODEL):
|
81 |
self.model = AutoModelForQuestionAnswering.from_pretrained(MODEL_DICT[model_name])
|
82 |
self.tokenizer = AutoTokenizer.from_pretrained(MODEL_DICT[model_name])
|
83 |
self.model_name = model_name
|
84 |
-
print('Load model done')
|
85 |
|
86 |
def load_embedding_model(self, model_name: str = DEFAULT_SENTENCE_EMBEDDING_MODEL):
|
87 |
if torch.cuda.is_available(): # Check if GPU is available
|
88 |
self.embedding_model = SentenceTransformer(model_name, device='cpu')
|
89 |
else: self.embedding_model = SentenceTransformer(model_name)
|
90 |
-
print('Load sentence embedding model done')
|
91 |
|
92 |
def set_vectors(self):
|
93 |
self.vectors = self.prepare_sentences_vector(self.load_embeddings(EMBEDDINGS_PATH))
|
@@ -149,8 +149,9 @@ class Chatbot:
|
|
149 |
similar_questions, similar_contexts, distances, indices = self.faiss_search(question_vector)
|
150 |
Answers = [self.df['Answer'][i] for i in indices[0]]
|
151 |
Answer = Answers[0]
|
152 |
-
|
153 |
return Answer
|
|
|
154 |
|
155 |
# Function to predict using BERT embedding
|
156 |
def predict_bert_embedding(self,message):
|
@@ -181,19 +182,6 @@ class Chatbot:
|
|
181 |
Answer = self.model_pipeline(message, context)
|
182 |
return Answer
|
183 |
|
184 |
-
|
185 |
-
def predict_semantic_search(self, message):
|
186 |
-
message = message.strip()
|
187 |
-
query_embedding = self.embedding_model.encode([message], convert_to_tensor=True)[0] # Fix here
|
188 |
-
query_embedding = query_embedding.to('cpu')
|
189 |
-
corpus_embeddings = self.embedding_model.encode(self.df['Question'].tolist(), convert_to_tensor=True) # Fix here
|
190 |
-
hits = util.semantic_search(query_embedding, corpus_embeddings, top_k=1)
|
191 |
-
hit = hits[0][0]
|
192 |
-
context = self.df['Context'][hit['corpus_id']]
|
193 |
-
score = "{:.4f})".format(hit['score'])
|
194 |
-
Answer = self.model_pipeline(message, context)
|
195 |
-
return Answer
|
196 |
-
|
197 |
def predict_without_faiss(self,message):
|
198 |
MostSimilarContext = ""
|
199 |
min_distance = 1000
|
|
|
75 |
def load_data(self, path: str = DATA_PATH):
|
76 |
self.df = pd.read_excel(path, sheet_name='Default')
|
77 |
self.df['Context'] = pd.read_excel(path, sheet_name='mdeberta')['Context']
|
78 |
+
# print('Load data done')
|
79 |
|
80 |
def load_model(self, model_name: str = DEFAULT_MODEL):
|
81 |
self.model = AutoModelForQuestionAnswering.from_pretrained(MODEL_DICT[model_name])
|
82 |
self.tokenizer = AutoTokenizer.from_pretrained(MODEL_DICT[model_name])
|
83 |
self.model_name = model_name
|
84 |
+
# print('Load model done')
|
85 |
|
86 |
def load_embedding_model(self, model_name: str = DEFAULT_SENTENCE_EMBEDDING_MODEL):
|
87 |
if torch.cuda.is_available(): # Check if GPU is available
|
88 |
self.embedding_model = SentenceTransformer(model_name, device='cpu')
|
89 |
else: self.embedding_model = SentenceTransformer(model_name)
|
90 |
+
# print('Load sentence embedding model done')
|
91 |
|
92 |
def set_vectors(self):
|
93 |
self.vectors = self.prepare_sentences_vector(self.load_embeddings(EMBEDDINGS_PATH))
|
|
|
149 |
similar_questions, similar_contexts, distances, indices = self.faiss_search(question_vector)
|
150 |
Answers = [self.df['Answer'][i] for i in indices[0]]
|
151 |
Answer = Answers[0]
|
152 |
+
|
153 |
return Answer
|
154 |
+
|
155 |
|
156 |
# Function to predict using BERT embedding
|
157 |
def predict_bert_embedding(self,message):
|
|
|
182 |
Answer = self.model_pipeline(message, context)
|
183 |
return Answer
|
184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
def predict_without_faiss(self,message):
|
186 |
MostSimilarContext = ""
|
187 |
min_distance = 1000
|