Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -51,41 +51,8 @@ def get_id_by_name(student_name):
|
|
| 51 |
if len(data['records']) > 0:
|
| 52 |
record = data['records'][0] # On prend le premier enregistrement correspondant
|
| 53 |
student_id = record['fields'].get('ID_Etu', 'Aucun id trouvé')
|
| 54 |
-
return student_id
|
| 55 |
-
else:
|
| 56 |
-
return None
|
| 57 |
-
else:
|
| 58 |
-
logger.error(f"Erreur lors de la récupération des informations : {response.status_code} - {response.text}")
|
| 59 |
-
return None
|
| 60 |
-
|
| 61 |
-
except Exception as e:
|
| 62 |
-
logger.error(f"Erreur lors de la récupération des informations : {str(e)}")
|
| 63 |
-
return None
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
def get_user_info_by_id(student_id):
|
| 67 |
-
url = f"https://api.airtable.com/v0/{AIRTABLE_BASE_ID}/Inscription_Etudiants"
|
| 68 |
-
headers = {
|
| 69 |
-
"Authorization": f"Bearer {AIRTABLE_API_KEY}",
|
| 70 |
-
"Content-Type": "application/json"
|
| 71 |
-
}
|
| 72 |
-
|
| 73 |
-
# Filtrer les enregistrements par ID_Etu
|
| 74 |
-
params = {
|
| 75 |
-
"filterByFormula": f"{{ID_Etu}} = '{student_id}'"
|
| 76 |
-
}
|
| 77 |
-
|
| 78 |
-
try:
|
| 79 |
-
response = requests.get(url, headers=headers, params=params)
|
| 80 |
-
|
| 81 |
-
if response.status_code == 200:
|
| 82 |
-
data = response.json()
|
| 83 |
-
|
| 84 |
-
if len(data['records']) > 0:
|
| 85 |
-
record = data['records'][0] # On prend le premier enregistrement correspondant
|
| 86 |
-
user_name = record['fields'].get('Nom', 'Aucun nom trouvé')
|
| 87 |
user_email = record['fields'].get('Email', 'Aucun email trouvé')
|
| 88 |
-
return
|
| 89 |
else:
|
| 90 |
return None, None
|
| 91 |
else:
|
|
@@ -95,6 +62,7 @@ def get_user_info_by_id(student_id):
|
|
| 95 |
except Exception as e:
|
| 96 |
logger.error(f"Erreur lors de la récupération des informations : {str(e)}")
|
| 97 |
return None, None
|
|
|
|
| 98 |
|
| 99 |
|
| 100 |
def get_student_description(student_id):
|
|
@@ -333,15 +301,14 @@ def delete_compatibility_records(student_id):
|
|
| 333 |
|
| 334 |
def start_conversation(request: gr.Request):
|
| 335 |
student_name = getParams(None, request)
|
| 336 |
-
student_id = get_id_by_name(student_name)
|
| 337 |
description = get_student_description(student_id)
|
| 338 |
initial_message = f"Bienvenue ! Voici vos compétences :\n{description}\n\nQue souhaitez-vous modifier ou améliorer dans vos compétences ?"
|
| 339 |
return [[None, initial_message]], description
|
| 340 |
|
| 341 |
def chatbot_conversation(message, history, request: gr.Request):
|
| 342 |
student_name = getParams(None, request)
|
| 343 |
-
student_id = get_id_by_name(student_name)
|
| 344 |
-
student_name, student_mail = get_user_info_by_id(student_id)
|
| 345 |
current_skills = get_student_description(student_id)
|
| 346 |
|
| 347 |
# Analyse la réponse et obtient les compétences mises à jour
|
|
@@ -365,11 +332,10 @@ def chatbot_conversation(message, history, request: gr.Request):
|
|
| 365 |
|
| 366 |
def validate_update(updated_skills, request: gr.Request):
|
| 367 |
student_name = getParams(None, request)
|
| 368 |
-
student_id = get_id_by_name(student_name)
|
| 369 |
response = update_student_description(student_id, updated_skills)
|
| 370 |
return response
|
| 371 |
|
| 372 |
-
# Création de l'interface
|
| 373 |
with gr.Blocks() as demo:
|
| 374 |
gr.HTML("""
|
| 375 |
<style>
|
|
|
|
| 51 |
if len(data['records']) > 0:
|
| 52 |
record = data['records'][0] # On prend le premier enregistrement correspondant
|
| 53 |
student_id = record['fields'].get('ID_Etu', 'Aucun id trouvé')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
user_email = record['fields'].get('Email', 'Aucun email trouvé')
|
| 55 |
+
return student_id, user_email
|
| 56 |
else:
|
| 57 |
return None, None
|
| 58 |
else:
|
|
|
|
| 62 |
except Exception as e:
|
| 63 |
logger.error(f"Erreur lors de la récupération des informations : {str(e)}")
|
| 64 |
return None, None
|
| 65 |
+
|
| 66 |
|
| 67 |
|
| 68 |
def get_student_description(student_id):
|
|
|
|
| 301 |
|
| 302 |
def start_conversation(request: gr.Request):
|
| 303 |
student_name = getParams(None, request)
|
| 304 |
+
student_id, student_mail = get_id_by_name(student_name)
|
| 305 |
description = get_student_description(student_id)
|
| 306 |
initial_message = f"Bienvenue ! Voici vos compétences :\n{description}\n\nQue souhaitez-vous modifier ou améliorer dans vos compétences ?"
|
| 307 |
return [[None, initial_message]], description
|
| 308 |
|
| 309 |
def chatbot_conversation(message, history, request: gr.Request):
|
| 310 |
student_name = getParams(None, request)
|
| 311 |
+
student_id, student_mail = get_id_by_name(student_name)
|
|
|
|
| 312 |
current_skills = get_student_description(student_id)
|
| 313 |
|
| 314 |
# Analyse la réponse et obtient les compétences mises à jour
|
|
|
|
| 332 |
|
| 333 |
def validate_update(updated_skills, request: gr.Request):
|
| 334 |
student_name = getParams(None, request)
|
| 335 |
+
student_id, student_mail = get_id_by_name(student_name)
|
| 336 |
response = update_student_description(student_id, updated_skills)
|
| 337 |
return response
|
| 338 |
|
|
|
|
| 339 |
with gr.Blocks() as demo:
|
| 340 |
gr.HTML("""
|
| 341 |
<style>
|