Soutenance de PFE

Theodo

Une boîte de service

Le modèle d'équipe

2 devs

1 archi

1 coach agile

1 Product Owner

Des cycles rapides

Le Kaizen

Ubble

Une startup qui monte

Ubble c'est  quoi ?

Pourquoi avoir demandé une équipe Theodo ?

Les différents points vérifiés

  • La pièce est-elle un faux ? (score d'OVE)
  • Les informations sur la carte sont elles valides ?(date d'expiration, matching avec la MRZ)
  • La personne est elle une vrai personne ? (liveness)
  • La personne présente est-elle la même que sur le document ? (face_match)

L'architecture

Comment ça se passe ?

La pipeline quésaco?

Des noeuds

G.add_node(
        "final_checks",
        element_type="final_checks",
        status="not_started",
        task={
            "type": "celery",
            "config": {
                "name": "pipeline.final_checks",
                "queue": settings.REALTIME_QUEUE,
            },
            "endpoints": [
                {
                    "path": "^/api/templates/[0-9]+/features/",
                    "method": "GET",
                    "target": "api",
                },
                {"path": "^/api/review-tasks/", "method": "POST", "target": "api"},
            ],
        },
        metanodes=[{"id": "final_checks_", "blueprint": "final_checks"}],
        outputs={
            "list_of_objects": {
                "done": False,
                "value": None,
                "schema": "#list_of_objects",
            },
            "manual_review": {"done": False, "value": None, "schema": "#manual_review"},
            "retry": {"done": False, "value": None, "schema": "#retry"},
            # TODO Delete this output once it not longer get patched by send_review_task_response
            "should_retry": {"done": False, "value": None, "schema": "#should_retry"},
        },
    )

La pipeline quésaco?

Des edges

G.add_edge(
        "final_checks",
        "final_checks",
        output="retry",
        input="retry",
        on_action={"type": "set", "name": "final_checks", "degree": 1},
        stickiness={"source": True, "metanode": "final_checks"},
        upward=True,
    )

La mission Theodo

La MR App

Document Checks et Manual Review

La MR App

Le front et l'assignation

Demo time !

Le Kaizen CI

La perf

Le Kaizen CI

Une pièce

Le Kaizen CI

Les problèmes

  • Builds long :
    • Installation récurrente de dépendances fixes
    • Installation systématique des librairies mouvantes sans cache
  • Test longs

Le Kaizen CI

Les apprentisages

  • Builds long :
    • Création d'images de base
    • Utilisation du cache de Circle CI
  • Test longs :
    • Réduction au minimum des entités créées durant un test
    • Ne plus lancer les migrations ?
    • Squasher les migrations ?

L'authentification

Le refresh token

Amazon Mturk

Merci de votre attention

Soutenance de PFE

By Léo Anesi

Soutenance de PFE

  • 190