Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -233,9 +233,9 @@ class MariannaBot:
|
|
| 233 |
if best_score < similarity_threshold:
|
| 234 |
# low confidence (< 0.35)
|
| 235 |
if best_score < 0.55:
|
| 236 |
-
return random.choice(["Mi dispiace, non ho informazioni su questo argomento. Puoi chiedermi di altro sulla città di Napoli.",
|
| 237 |
"Purtroppo non riesco a rammentare questo argomento, la mia memoria non è più quella di un tempo. Chiedimi qualcos'altro su Napoli e le sue bellezze!",
|
| 238 |
-
"Mi dispiace tantissimo, ma non riesco a ricordare. Vuoi chiedermi altro sulla città di Napoli?"])
|
| 239 |
|
| 240 |
# medium confidence(0.55 - 0.75)
|
| 241 |
else:
|
|
@@ -246,11 +246,11 @@ class MariannaBot:
|
|
| 246 |
partial_info = value.get('short_intro', value.get('intro', '').split('.')[0] + '.')
|
| 247 |
self.state = "query"
|
| 248 |
self.is_telling_stories = False
|
| 249 |
-
return random.choice([f"Potrei avere alcune informazioni su {best_title}, ma non sono completamente sicura sia ciò che stai cercando. I miei suggerimenti sono {suggestions}. \n\nCosa ti interessa?",
|
| 250 |
f"Credo che tu stia parlando de {best_title}, ma per essere sicura di ciò che vuoi sapere, potresti specificare se parli di {suggestions}?",
|
| 251 |
-
f"Per assicurarmi di aver capito bene, vuoi che ti parli di {suggestions}?"])
|
| 252 |
else:
|
| 253 |
-
return f"Ho trovato qualcosa su {best_title}, ma non sono completamente sicura. Vuoi saperne di più?"
|
| 254 |
|
| 255 |
# high confidence (above the threshold)
|
| 256 |
if best_title is not None:
|
|
@@ -266,17 +266,17 @@ class MariannaBot:
|
|
| 266 |
else:
|
| 267 |
self.current_further_info_values = [] # Se il valore non è un dizionario
|
| 268 |
self.current_index = 0
|
| 269 |
-
return f"{response}\n\nVuoi sapere altro su {self.main_k[-1]}?"
|
| 270 |
else:
|
| 271 |
-
return random.choice(["Mi dispiace, non ho informazioni su questo argomento. Puoi chiedermi di altro sulla città di Napoli.",
|
| 272 |
"Purtroppo non riesco a rammentare altro su questo argomento, la mia memoria non è più quella di un tempo. Chiedimi qualcos'altro su Napoli e le sue bellezze!",
|
| 273 |
-
"Mi dispiace tantissimo, ma non riesco a ricordare altro. Vuoi chiedermi altro sulla città di Napoli?"])
|
| 274 |
except Exception as e:
|
| 275 |
print(e)
|
| 276 |
self.state = "initial"
|
| 277 |
-
return random.choice(["Mi dispiace, c'è stato un errore. Puoi riprovare con un'altra domanda? ",
|
| 278 |
"Scusami, sto facendo confusione. Puoi farmi un'altra domanda?",
|
| 279 |
-
"Mi dispiace, non ho capito. Puoi essere più preciso?"])
|
| 280 |
|
| 281 |
|
| 282 |
def first_query(self, message):
|
|
@@ -395,7 +395,7 @@ class MariannaBot:
|
|
| 395 |
"Mi dispiace, non ho capito. Puoi essere più preciso?"]), is_idk)
|
| 396 |
|
| 397 |
|
| 398 |
-
def log_interaction_to_file(log_filename, user_name, question, answer, is_idk):
|
| 399 |
"""Aggiunge un'interazione al file di log JSONL della sessione corrente."""
|
| 400 |
log_entry = {
|
| 401 |
"timestamp": datetime.datetime.now(datetime.timezone.utc).isoformat(),
|
|
@@ -403,6 +403,8 @@ def log_interaction_to_file(log_filename, user_name, question, answer, is_idk):
|
|
| 403 |
"question": question,
|
| 404 |
"answer": answer,
|
| 405 |
"is_idk_response": is_idk
|
|
|
|
|
|
|
| 406 |
}
|
| 407 |
try:
|
| 408 |
with open(log_filename, "a", encoding="utf-8") as f:
|
|
@@ -470,10 +472,12 @@ def main():
|
|
| 470 |
if not message.strip():
|
| 471 |
return history, "", current_session_log_file
|
| 472 |
|
| 473 |
-
|
|
|
|
|
|
|
| 474 |
|
| 475 |
# Salva l'interazione nel file di log della sessione
|
| 476 |
-
log_interaction_to_file(current_session_log_file, current_user_name, message, response_text, is_idk)
|
| 477 |
|
| 478 |
new_history = history + [[message, response_text]]
|
| 479 |
return new_history, "", current_session_log_file # Restituisce il log_file per mantenerlo nello stato
|
|
|
|
| 233 |
if best_score < similarity_threshold:
|
| 234 |
# low confidence (< 0.35)
|
| 235 |
if best_score < 0.55:
|
| 236 |
+
return (random.choice(["Mi dispiace, non ho informazioni su questo argomento. Puoi chiedermi di altro sulla città di Napoli.",
|
| 237 |
"Purtroppo non riesco a rammentare questo argomento, la mia memoria non è più quella di un tempo. Chiedimi qualcos'altro su Napoli e le sue bellezze!",
|
| 238 |
+
"Mi dispiace tantissimo, ma non riesco a ricordare. Vuoi chiedermi altro sulla città di Napoli?"]),[best_score,best_title])
|
| 239 |
|
| 240 |
# medium confidence(0.55 - 0.75)
|
| 241 |
else:
|
|
|
|
| 246 |
partial_info = value.get('short_intro', value.get('intro', '').split('.')[0] + '.')
|
| 247 |
self.state = "query"
|
| 248 |
self.is_telling_stories = False
|
| 249 |
+
return (random.choice([f"Potrei avere alcune informazioni su {best_title}, ma non sono completamente sicura sia ciò che stai cercando. I miei suggerimenti sono {suggestions}. \n\nCosa ti interessa?",
|
| 250 |
f"Credo che tu stia parlando de {best_title}, ma per essere sicura di ciò che vuoi sapere, potresti specificare se parli di {suggestions}?",
|
| 251 |
+
f"Per assicurarmi di aver capito bene, vuoi che ti parli di {suggestions}?"]),[best_score,best_title])
|
| 252 |
else:
|
| 253 |
+
return (f"Ho trovato qualcosa su {best_title}, ma non sono completamente sicura. Vuoi saperne di più?",[best_score,best_title])
|
| 254 |
|
| 255 |
# high confidence (above the threshold)
|
| 256 |
if best_title is not None:
|
|
|
|
| 266 |
else:
|
| 267 |
self.current_further_info_values = [] # Se il valore non è un dizionario
|
| 268 |
self.current_index = 0
|
| 269 |
+
return (f"{response}\n\nVuoi sapere altro su {self.main_k[-1]}?",[best_score,best_title])
|
| 270 |
else:
|
| 271 |
+
return (random.choice(["Mi dispiace, non ho informazioni su questo argomento. Puoi chiedermi di altro sulla città di Napoli.",
|
| 272 |
"Purtroppo non riesco a rammentare altro su questo argomento, la mia memoria non è più quella di un tempo. Chiedimi qualcos'altro su Napoli e le sue bellezze!",
|
| 273 |
+
"Mi dispiace tantissimo, ma non riesco a ricordare altro. Vuoi chiedermi altro sulla città di Napoli?"]),[best_score,best_title])
|
| 274 |
except Exception as e:
|
| 275 |
print(e)
|
| 276 |
self.state = "initial"
|
| 277 |
+
return (random.choice(["Mi dispiace, c'è stato un errore. Puoi riprovare con un'altra domanda? ",
|
| 278 |
"Scusami, sto facendo confusione. Puoi farmi un'altra domanda?",
|
| 279 |
+
"Mi dispiace, non ho capito. Puoi essere più preciso?"]),[best_score,best_title])
|
| 280 |
|
| 281 |
|
| 282 |
def first_query(self, message):
|
|
|
|
| 395 |
"Mi dispiace, non ho capito. Puoi essere più preciso?"]), is_idk)
|
| 396 |
|
| 397 |
|
| 398 |
+
def log_interaction_to_file(log_filename, user_name, question, answer, is_idk,response):
|
| 399 |
"""Aggiunge un'interazione al file di log JSONL della sessione corrente."""
|
| 400 |
log_entry = {
|
| 401 |
"timestamp": datetime.datetime.now(datetime.timezone.utc).isoformat(),
|
|
|
|
| 403 |
"question": question,
|
| 404 |
"answer": answer,
|
| 405 |
"is_idk_response": is_idk
|
| 406 |
+
"Similarity Score":response[0]
|
| 407 |
+
"title":response[1]
|
| 408 |
}
|
| 409 |
try:
|
| 410 |
with open(log_filename, "a", encoding="utf-8") as f:
|
|
|
|
| 472 |
if not message.strip():
|
| 473 |
return history, "", current_session_log_file
|
| 474 |
|
| 475 |
+
response, is_idk = bot.respond(message, history, current_user_name)
|
| 476 |
+
response_text = response[0]
|
| 477 |
+
scores = response[1]
|
| 478 |
|
| 479 |
# Salva l'interazione nel file di log della sessione
|
| 480 |
+
log_interaction_to_file(current_session_log_file, current_user_name, message, response_text, is_idk, response[1])
|
| 481 |
|
| 482 |
new_history = history + [[message, response_text]]
|
| 483 |
return new_history, "", current_session_log_file # Restituisce il log_file per mantenerlo nello stato
|