Pack
Un pack est un programme qui va executer une analyse sur une source de données. Les packs sont éxécutés par les agents en fonction de routines. Son but est de traiter la source et de récupérer des informations utiles à son sujet pour les renvoyer à la plateforme.
Comment faire un 'Pack' ?
Créer un pack
- Commande
- Résultat
qalita pack init --name my_pack
>>> qalita pack init --name my_pack
Created package folder: my_pack_pack
Created file: properties.yaml
Created file: pack_conf.json
Created file: main.py
Please update the main.py file with the required code
Created file: run.sh
Please update the run.sh file with the required commands
Created file: requirements.txt
Please update the requirements.txt file with the required packages depdencies
Created file: README.md
Please READ and update the README.md file with the description of your pack
Cela créer un dossier my_pack_pack
avec les fichiers suivants :
my_pack_pack
├── main.py
├── pack_conf.json
├── properties.yaml
├── README.md
├── requirements.txt
└── run.sh
Les fichiers les plus importants sont run.sh
et properties.yaml
qui sont indispensables, avant chaque publication de pack une vérification de l'existence de ces fichiers est systématiquement effectuée.
Fichier | Description | Exemples |
---|---|---|
main.py | Contient le code du pack | main.py |
pack_conf.json | Contient la configuration du pack | pack_conf.json |
properties.yaml | Contient les propriétés du pack | properties.yaml |
README.md | Contient la description du pack | README.md |
requirements.txt | Contient les dépendances du pack | requirements.txt |
run.sh | Est le point d'entrée du pack | run.sh |
Pour voir des modèles et exemples de packs, vous pouvez vous inspirer de ceux publiques répository github
Tester un pack
Vous pouvez tester votre pack en local avant de le publier sur la plateforme.
Pour cela vous devez utiliser la CLI Qalita :
qalita pack validate -n my_pack
qalita pack run -n my_pack
Si vous voulez utiliser le pack en local sur des données, veuillez créer un fichier temporaire source_conf.json
Exemple avec un dataset local :
{
"config": {
"path": "/home/aleopold/data/heart"
},
"description": "11 clinical features for predicting heart disease events.",
"id": 6,
"name": "Heart Failure Prediction Dataset",
"owner": "aleopold",
"owner_id": 2,
"reference": false,
"sensitive": false,
"type": "file",
"validate": "valid",
"visibility": "internal"
}
Attention à bien supprimer les fichiers de résultats, logs, fichier de configuration source et les fichiers de cache avant de publier votre pack.
Au moment de l'exécution
Le point d'entrée du pack est le fichier run.sh
qui est situé dans le chemin racine du dossier local temporaire créé par l'agent.
run.sh Exemple :
#/bin/bash
python -m pip install --quiet -r requirements.txt
python main.py
Le pack est alimenté par un fichier source_conf.json
et en plus target_conf.json
si le pack est de type compare.
Ces fichiers contiennent les données config:
de la source.
Ces fichier sont situés à côté du point d'entrée run.sh
.
source_conf.json Exemple :
{
"config" : {
"path" : "/home/lucas/desktop"
},
"description" : "Fichiers de bureau",
"id" : 1,
"name" : "local_data",
"owner" : "lucas",
"type" : "fichier",
"reference" : false,
"sensitive" : false,
"visibilité" : "private",
"validate" : "valid"
}
Le pack est responsable de gérer lui-même sa compatibilité de type de source en vérifiant le type de source dans le fichier source_conf.json
.
Après l'exécution
A la fin de l'exécution du pack, l'agent recherche :
logs.txt
: Fichier téléchargé pour donner les logs de feedback à la plateforme dans le frontend.
logs.txt Exemple :
2023-07-21 11:51:12,688 - qalita.commands.pack - INFO - ------------- Pack Run -------------
2023-07-21 11:51:15,087 - qalita.commands.pack - INFO - Fichiers CSV trouvés :
2023-07-21 11:51:15,222 - qalita.commands.pack - ERROR - Summarize dataset : 0%| | 0/5 [00:00` ?, ?it/s]
...
Visible sur la plateforme :
recommendations.json
Le fichier Recommendations contient les recommandations données par le pack à propos de la source.
recommendations.json Exemple :
{
[
{
"content": "Cholesterol has 172 (18.7%) zeros",
"type": "Zeros",
"scope": {
"perimeter": "column",
"value": "Cholesterol"
},
"level": "info"
},
{
...
}
...
]
}
Les recommendations sont ensuite matérialisées dans la vue du pack dans la page de la source.
Il existe plusieurs niveaux de recommandations level
:
info
: Informationwarning
: Avertissementhigh
: High
metrics.json
Le fichier de métriques contient les métriques données par le pack à propos de la source.
metrics.json Exemple :
{
[
{
"key": "types_numeric",
"value": "7",
"scope": {
"perimeter": "dataset",
"value": "Heart Failure Prediction Dataset"
}
},
{
"key": "is_unique",
"value": "0",
"scope": {
"perimeter": "column",
"value": "Age"
}
},
{
...
}
...
]
}
Les métriques sont ensuite matérialisées dans la vue du pack dans la page de la source.
Les mesures et les recommandations sont transmises à la plateforme et sont ensuite disponibles pour la vue d'exécution du pack de la source.
schemas.json
Le fichier de métriques contient les métriques données par le pack à propos de la source.
metrics.json Exemple :
[
{
"key": "dataset",
"value": "Heart Failure Prediction Dataset",
"scope": {
"perimeter": "dataset",
"value": "Heart Failure Prediction Dataset"
}
},
{
"key": "column",
"value": "Age",
"scope": {
"perimeter": "column",
"value": "Age"
}
},
{
"key": "column",
"value": "Sex",
"scope": {
"perimeter": "column",
"value": "Sex"
}
},
....
]
Les schémas sont ensuite matérialisées dans la vue du pack dans la page de la source.
Publier un pack
Les packs ont des auteurs, vous ne pouvez publier un pack que dont êtes l'auteur. Vous pouvez voir l'auteur d'un pack sur la page du pack :
Visualisation de l'auteur d'un pack
Lors de l'ajout de partenaires, les packs publiques de celui ci vous seront accéssibles dans un autre onglet dans la page des packs de l'application.
Il seront également listés en utilisant qalita pack list
vous pourrez les utiliser comme n'importe quel autre pack.
Cependant vous ne pourrez pas les modifier.
L'auteur de ces pack sera l'utilisateur "partenaire" créé lors de l'ajout du partenaire.
Pour publier un pack vous devez utiliser la CLI Qalita :
- Installer la CLI Qalita
pip install qalita
- Récupérer son jeton d'API dans sa page de profil
- Se connecter à la plateforme
agentName=admin
fileName="$HOME/.qalita/.env-$agentName"
mkdir -p $(dirname $fileName)
echo "QALITA_AGENT_NAME=$agentName" > $fileName
echo "QALITA_AGENT_MODE=worker" >> $fileName
echo "QALITA_AGENT_ENDPOINT=http://localhost:3080/api/v1" >> $fileName
echo "QALITA_AGENT_TOKEN=" >> $fileName
- Seplacer à la racine du dossier parent du pack
Exemple pour un pack nommé my-pack
:
/-- parent-folder <----- ici
|-- my-pack_pack
| |-- __init__.py
| |-- my-pack.py
- Publier le pack
- Commande
- Résultat
qalita pack push -n my_pack
>>> qalita pack push -n my_pack
------------- Pack Validation -------------
Pack [my_pack] validated.
------------- Pack Push -------------
Pack [my_pack] published
New pack version [1.0.0] detected. Pushing pack version
Pack [my_pack] updated successfully
Pack asset uploaded
Pack pushed !
Vous pouvez alors retrouver votre pack sur la plateforme :
Qalita Pack Assistant
Vous pouvez utiliser notre robot conversationnel Qalita Pack Assistant pour vous assistez dans la création de pack.
Notre robot bénéficie d'une base de connaissance spécifique au cas d'usage de création de pack Qalita. Il saura vous guider et optimiser votre productivité.
Pack publiques QALITA
Vous pouvez retrouver les packs publiques Qalita sur notre répository github. Ces packs sont maintenus par QALITA SAS et la communauté. Toutes les contributions sont appréciées.