Skip to content

Commit

Permalink
Presentation done
Browse files Browse the repository at this point in the history
  • Loading branch information
Seb-IX committed May 3, 2022
1 parent 261c8c6 commit c304c11
Show file tree
Hide file tree
Showing 9 changed files with 24 additions and 24 deletions.
Binary file added Présentation/P10_presentation.pdf
Binary file not shown.
Binary file modified Présentation/P10_presentation.pptx
Binary file not shown.
Binary file added Ressource/schema_architecture.afdesign
Binary file not shown.
Binary file added Ressource/schema_architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 9 additions & 9 deletions Solution/luis_solution/P10_analyse_exploratoire.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Voici les propriété des colonnes : \n",
"Voici les propriétés des colonnes : \n",
"\n",
"<table>\n",
" <tr>\n",
Expand All @@ -171,7 +171,7 @@
" <tr>\n",
" <td>Désigne un identifiant unique pour l'utilisateur participant au dialogue.</td>\n",
" <td>L'auteur du message dans un dialogue, c'est-à-dire \"utilisateur\" ou \"assistant\".</td>\n",
" <td>La phrase que l'auteur a prononcée. C'est le texte exact que l'auteur d'un dialogue a dit. Par exemple, \"texte\" : \"Considérez que c'est fait. Bon voyage !\".</td>\n",
" <td>La phrase que l'auteur a prononcé. C'est le texte exact que l'auteur d'un dialogue a dit. Par exemple, \"texte\" : \"Considérez que c'est fait. Bon voyage !\".</td>\n",
" <td>Objet JSON qui possède trois clés : <br> <br> active_frame, acts, et acts_without_refs. <br> <br> La clé active_frame est l'identifiant de l'image actuellement active. Les actes sont les actes de dialogue pour l'énoncé actuel <br> <br> Chaque acte a un nom et des arguments args. <br> Le nom est le nom de l'acte de dialogue, par exemple, offrir, ou informer. <br> Les arguments contiennent les types de slot (key) et les valeurs de slot (val), par exemple budget=2000$. Les valeurs des slots sont facultatives. <br> <br> Un acte contient une balise ref chaque fois qu'un utilisateur ou un assistant fait référence à une image passée.<br><br> Les actes_without_refs sont similaires aux actes, sauf qu'ils n'ont pas ces balises ref. <br> <br> Nous définissons la tâche de suivi de <br> trame comme la tâche qui prend en entrée les acts_without_refs et produit les actes.\n",
" </td>\n",
" <td>Horodatage Unix indiquant l'heure à laquelle le tour actuel s'est produit.</td>\n",
Expand Down Expand Up @@ -292,7 +292,7 @@
}
],
"source": [
"print(\"Il y a un total de\", df[df[\"wizardSurveyTaskSuccessful\"] == False].shape[0], \"dialogues qui n'ont pas aboutie à une réponse convenable de l'assistant.\")"
"print(\"Il y a un total de\", df[df[\"wizardSurveyTaskSuccessful\"] == False].shape[0], \"dialogues qui n'ont pas abouti à une réponse convenable de l'assistant.\")"
]
},
{
Expand Down Expand Up @@ -386,7 +386,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ensuite même chose pour la colonne turns qui contients les information sur les échanges bot/utilisateurs"
"Ensuite même chose pour la colonne turns qui contient les informations sur les échanges bot/utilisateurs"
]
},
{
Expand Down Expand Up @@ -703,7 +703,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"On remarque que les clés 'ref' on une couche supplémentaire (pour rappel les 'refs' sont les référence au message ultérieur).\n",
"On remarque que les clés 'ref' ont une couche supplémentaire (pour rappel les 'refs' sont les références au message ultérieur).\n",
"\n",
"Il convient donc d'appliquer des modifications pour mieux interpréter ce pattern"
]
Expand Down Expand Up @@ -787,7 +787,7 @@
}
],
"source": [
"print(\"Clé et valeur intéressante pour notre contexte :\")\n",
"print(\"Clés et valeurs intéressantes pour notre contexte :\")\n",
"print(\" - ville d'arrivé (dst_city):\",all_value[\"dst_city\"][:5])\n",
"\n",
"print(\" - ville de départ (or_city):\",all_value[\"or_city\"][:5])\n",
Expand All @@ -809,7 +809,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"On peut retenir comme liste de clé utile pour notre bot les clé suivante : \n",
"On peut retenir comme liste de clés utiles pour notre bot les clés suivantes : \n",
"- 'dst_city'\n",
"- 'or_city'\n",
"- 'str_date'\n",
Expand Down Expand Up @@ -870,15 +870,15 @@
"outputs": [],
"source": [
"def get_key_value(arg):\n",
" '''On recupére la clé et valeur de l\\'argument fournie pour les clé suivante : \"dst_city\",\"or_city\",\"str_date\",\"end_date\",\"n_adult\",\"n_children\",\"budget\",\"seat\"\n",
" '''On recupère la clé et valeur de l\\'argument fourni pour les clés suivantes : \"dst_city\",\"or_city\",\"str_date\",\"end_date\",\"n_adult\",\"n_children\",\"budget\",\"seat\"\n",
"\n",
" Parameters :\n",
" arg (tuple) : argument de l\\'intention utilisateur au format tuple.\n",
" \n",
" Returns:\n",
" key_value (tuple) : retourne la clé/valeur de l\\'argument au format tuple si il correspond à la liste de clé.\n",
" OR\n",
" None : si la valeur n'est pas formater correctement ou que la clé n\\'est pas dans la liste cité précédemment\n",
" None : si la valeur n'est pas formaté correctement ou que la clé n\\'est pas dans la liste citée précédemment\n",
" '''\n",
" list_key = ['dst_city','or_city','str_date','end_date','n_adult','n_children','budget','seat']\n",
" if \"key\" in arg and \"val\" in arg:\n",
Expand Down
10 changes: 5 additions & 5 deletions Solution/luis_solution/luis_module/get_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ def _format_data_luis(self,intent, text, labels):
'''Cette fonction permet le formatage des dialogues au format de données LUIS
Parameters:
intent (str) : intention utilisateur, qui correspond au nommage LUIS pour l\'apprentissage, (définis le domaine d\'intention)
intent (str) : intention utilisateur, qui correspond au nommage LUIS pour l\'apprentissage, (définit le domaine d\'intention)
text (str) : texte formulé par l\'utilisateur
labels (list/tuple => tuple) : liste des labels récupérer du texte utilisateur avec la clé correspondante
labels (list/tuple => tuple) : liste des labels récupérés du texte utilisateur avec la clé correspondante
Returns:
format_data (dict) : retourne un format de donnée utilisable par LUIS =>
format_data (dict) : retourne un format de données utilisable par LUIS =>
{
\'texte\':\'le texte de l'utilisateur.\',
\'intent_name\'=\'Exemple\',
Expand Down Expand Up @@ -131,15 +131,15 @@ def transform_data(self,reload=False):
return self.data_luis

def _get_key_value(self,arg):
'''On recupére la clé et valeur de l\'argument fournie pour les clé suivante : "dst_city","or_city","str_date","end_date","n_adult","n_children","budget","seat"
'''On recupère la clé et valeur de l\'argument fournit pour les clés suivantes : "dst_city","or_city","str_date","end_date","n_adult","n_children","budget","seat"
Parameters :
arg (tuple) : argument de l\'intention utilisateur au format tuple.
Returns:
key_value (tuple) : retourne la clé/valeur de l\'argument au format tuple si il correspond à la liste de clé.
OR
None : si la valeur n'est pas formater correctement ou que la clé n\'est pas dans la liste cité précédemment
None : si la valeur n'est pas formatée correctement ou que la clé n\'est pas dans la liste citée précédemment
'''
list_key = ['dst_city','or_city','str_date','end_date','n_adult','n_children','budget','seat']
if "key" in arg and "val" in arg:
Expand Down
20 changes: 10 additions & 10 deletions Solution/luis_solution/luis_module/luis_utility.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def __init__(self,authoring_endpoint_luis,authoring_key_luis,
list_entities=['dst_city','or_city','str_date','end_date','n_adult','n_children','budget','seat'],
list_intents=['BookFlight'],
runtime_endpoint_luis = None, runtime_key_luis = None):
'''Permet de facilité les manipulation des application LUIS, il est bien sur nécessaire en amont de
'''Permet de faciliter les manipulations des applications LUIS, il est bien sûr nécessaire en amont de
créer une application LUIS sur Microsoft Azure à l'adresse suivante :
https://portal.azure.com/#create/Microsoft.CognitiveServicesLUISAllInOne
Expand Down Expand Up @@ -93,18 +93,18 @@ def _add_entities(self,printing=False):
for entity in self.list_entities:
id_entity = self.client.model.add_entity(self.app_id, self.app_version, name=entity)
if printing:
print("L\'entité {} à était ajouté avec l\'ID : {} .".format(entity,id_entity))
print("L\'entité {} a été ajouté avec l\'ID : {} .".format(entity,id_entity))
else:
raise Exception("L\'application LUIS n'a pas était créé/récupérée, veuillez créer/récupérer l\'application avant toutes manipulation")
raise Exception("L\'application LUIS n'a pas été créée/récupérée, veuillez créer/récupérer l\'application avant toutes manipulations")

def _add_intents(self,printing=False):
if self.app_created:
for entity in self.list_intents:
id_entity = self.client.model.add_intent(self.app_id, self.app_version, name=entity)
if printing:
print("L\'intents {} à était ajouté avec l\'ID : {} .".format(entity,id_entity))
print("L\'intents {} à été ajouté avec l\'ID : {} .".format(entity,id_entity))
else:
raise Exception("L\'application LUIS n'a pas était créé/récupérée, veuillez créer/récupérer l\'application avant toutes manipulation")
raise Exception("L\'application LUIS n'a pas été créée/récupérée, veuillez créer/récupérer l\'application avant toutes manipulations")

def _add_train_data(self,train_data):
if self.app_created:
Expand All @@ -118,7 +118,7 @@ def _add_train_data(self,train_data):
else:
self.client.examples.add(self.app_id,self.app_version,train_data)
else:
raise Exception("L\'application LUIS n'a pas était créé/récupérée, veuillez créer/récupérer l\'application avant toutes manipulation")
raise Exception("L\'application LUIS n'a pas été créée/récupérée, veuillez créer/récupérer l\'application avant toutes manipulations")

def train(self,train_data=None):
'''
Expand All @@ -141,7 +141,7 @@ def train(self,train_data=None):
waiting = False
self.app_trained = True
else:
raise Exception("L\'application LUIS n'a pas était créé/récupérée, veuillez créer/récupérer l\'application avant toutes manipulation")
raise Exception("L\'application LUIS n'a pas été créée/récupérée, veuillez créer/récupérer l\'application avant toutes manipulations")

def publish(self,is_staging=False,is_public = True,print_final_endpoint=False):
'''
Expand Down Expand Up @@ -192,7 +192,7 @@ def evaluate(self,test_data):
mean_score = sum(all_score) / len(all_score)
return all_score, mean_score
else:
raise Exception("L\'applicaiton n\'est pas disponnible, vérifier ça création ou sont déploiement.")
raise Exception("L\'applicaiton n\'est pas disponnible, vérifier sa création ou son déploiement.")

def _format_y_true(self,y_true_data):
y_true = {}
Expand All @@ -214,7 +214,7 @@ def _calcul_score_accuracy(self,y_pred,y_true):
return accuracy_score

def _evaluate_value(self,data_true,data_pred):
# Peu être améliorer en utilisant par exemple la méthode de levenshtein
# Peu être amélioré en utilisant par exemple la méthode de levenshtein
# ou une autre méthode de simmilitude
if data_true == data_pred:
return 1
Expand Down Expand Up @@ -243,7 +243,7 @@ def predict(self,query,get_intent = False, timeout_seconde = 10):
response = None
start = time.time()
duration = 0
# On boucle tant qu'on a pas une response mais un time out si pas de réponse valide
# On boucle tant qu'on n'a pas une response mais un time out si pas de réponse valide
while response == None and duration <= timeout_seconde:
time.sleep(0.5)
response = requests.get(self.endpoint + query)
Expand Down

0 comments on commit c304c11

Please sign in to comment.