Les modules Workflow

1- Système

Etat

Rajouter des modules d'état permet:

  • De recevoir automatiquement un callback de changement d'état.

  • De filtrer / trier les jobs en fonction de leur état.

Fin

Indique au système une fin de branche avec un statut Success. Aucune transition n'est possible après un Etat de fin.

Erreur

Indique au système une fin de branche avec un statut Error. Aucune transition n'est possible après un Etat d'erreur.

Personnalisé

Les modules d'état personnalisé peuvent être ajoutés à n'importe quelle transition. Ils permettent de mettre à jour l'état général d'un job, et de notifier si une url de callback a été définie lors de la création du job.

Workflow (sous-workflow)

Il est possible d'imbriquer des workflows enfants dans un workflow parent. Cela présente plusieurs utilités:

  • Réutilisation des workflow enfants.

  • Dans le cas de création de sous-documents (module split-pdf) durant le workflow parent, pouvoir itérer sur l'ensemble de ces sous-documents. Un job 'enfant' sera crée par sous-documents.

  • Utiliser la récursivité. Un workflow peut s'appeler lui même. Attention cependant a bien vérifier les conditions d'arrêt.

ParamètreDescription

Nom

Le nom du module

Workflow

La sélection parmi les workflow existants

Expression d'entrée

Les informations auxquels aura accès le sous-workflow. Par exemple après un split-pdf, on peut avoir : zip(data['split-pdf']['files'], files['classified']) On prend les informations renvoyées par split-pdf, ainsi que l'ensemble des fichiers ajoutés dans la collection "classified" par split-pdf. A utiliser avec l'option "Iterate over input".

Workflow Expression

Permet de sélectionner dynamiquement un workflow en fonction d'une expression.

Output key

La clé de "data" dans lesquels seront stockées toutes les informations relatives à ce module.

Iterate over input

Activer l'option si l'entrée est une liste. Le module traitera les documents 1 à 1, et la sortie sera une liste de résultats.

2- Agent de Classification

Classification de documents

ParamètreDescription

Nom

Le nom du module

Modèle

La sélection parmi les modèles de classification de document existants

Per page

(SAM) Permet d'avoir une classification page à page. Il peut être couplé à un module split-pdf à la suite pour déliasser un document.

Use Google OCR

Utilisation de google OCR si activé. Sinon, utilisation d'un modèle OCR open-source.

Expression d'entrée

Le ou les fichiers à classifier. files["file"] par défaut.

Expression du modèle

Sélection dynamique du modèle d'extraction.

Output key

La clé de "data" dans lesquels seront stockées toutes les informations relatives à ce module.

Iterate over input

Activer l'option si l'entrée est une liste. Le module traitera les documents 1 à 1, et la sortie sera une liste de résultats.

Classification de mails

WIP

3- Agents d'Extraction

ParamètreDescription

Nom

Le nom du module

Agent d'extraction

La sélection parmi les agents d'extraction existant

Expression d'entrée

Le ou les fichiers à classifier. files["file"] par défaut.

Expression du modèle

Sélection dynamique du modèle d'extraction.

Output key

La clé de "data" dans lesquels seront stockées toutes les informations relatives à ce module.

Iterate over input

Activer l'option si l'entrée est une liste. Le module traitera les documents 1 à 1, et la sortie sera une liste de résultats.

4- Review

WIP

Actuellement les écrans de review sont liés à l'agent d'extraction et de classification. Des modules séparés vont être ajouté dans de prochaines mises à jours.

Review Classification

Review SAM (Split And Merge)

Review Extraction

5- Actions

Ingest Email

Ce module suppose qu'une boite mail a été configurée (voir lnputs).

ParamètreDescription

Nom

Le nom du module

Expression d'entrée

La collection d'email à traiter. files["email"] par défaut.

Output key

La clé de "data" dans lesquels seront stockées toutes les informations relatives à ce module.

Output collection

La collection dans laquelle seront envoyées les pièces jointes. "attachments" par défaut.

Iterate over input

Activer l'option si l'entrée est une liste. Le module traitera les documents 1 à 1, et la sortie sera une liste de résultats.

Split PDF

Ce module permet de séparer un PDF en sous-document. Très utile par exemple pour Déliasser un document après une classification page par page.

ParamètreDescription

Nom

Le nom du module

Expression d'entrée

La collection d'email à traiter. files["email"] par défaut.

Output key

La clé de "data" dans lesquels seront stockées toutes les informations relatives à ce module.

Output collection

La collection dans laquelle seront envoyées les pièces jointes. "splits" par défaut.

Iterate over input

Activer l'option si l'entrée est une liste. Le module traitera les documents 1 à 1, et la sortie sera une liste de résultats.

Webhook

Permet de renvoyer les résultats en cours (ou une partie) vers une adresse donnée.

ParamètreDescription

Nom

Le nom du module

URL

L'url de callback

Ignorer les erreurs

Boolean. Si l'option est activée, les flux ne sera pas interrompu, même si le code de réponse est une erreur.

Expression d'entrée

Les données à renvoyer. "data" par défaut.

Output key

La clé de "data" dans lesquels seront stockées toutes les informations relatives à ce module.

Iterate over input

Activer l'option si l'entrée est une liste. Le module traitera les documents 1 à 1, et la sortie sera une liste de résultats.

6- Code Personnalisé

Le module de code personnalisé permet de faire tout ce qui n'a pas encore été préconçu par d'autre module.

Le paramètre d'entrée job contient toutes les informations utiles dans job.data.

Il est également possible de rajouter de nouvelles informations avec le return.

def execute_action(job):
    # Do smth here
    return StepActionType.done, {
        # Add data here          
    }

Pour plus de détails sur le fonctionnement du module de code personnalisé, et sur le workflow de manière générale, veuillez contacter l'équipe Projet.

Dernière mise à jour