{"id":38855,"date":"2023-07-24T11:46:41","date_gmt":"2023-07-24T15:46:41","guid":{"rendered":"https:\/\/www.canarie.ca\/?page_id=38855"},"modified":"2024-10-30T09:45:29","modified_gmt":"2024-10-30T13:45:29","slug":"classification-et-recherche-automatiques-de-documents","status":"publish","type":"page","link":"https:\/\/www.canarie.ca\/fr\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/","title":{"rendered":"Solution type : Classification et recherche automatiques de documents"},"content":{"rendered":"\n<section class=\"section section--banner simple-fade light-blue alignfull\">\n  <div class=\"grid-container text-center\">\n  \t\t  \t\t  \t  <div class=\"large\"><p><span class=\"TextRun SCXW20856404 BCX0\" lang=\"EN-CA\" xml:lang=\"EN-CA\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW20856404 BCX0\">Bien que le programme ATIR <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">n\u2019accepte<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> plus les <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">demandes<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> pour les <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">ressources<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">en<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">nuage<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\">, <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">vous<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">avez<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">toujours<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">acc\u00e8s<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> aux <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">Propulseurs<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> et \u00e0 <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">leur<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> documentation, qui <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">seront<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">pr\u00e9serv\u00e9s<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> et <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">b\u00e9n\u00e9ficieront<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> d\u2019un <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">soutien<\/span> <span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">jusqu\u2019au<\/span><strong><span class=\"NormalTextRun SCXW20856404 BCX0\"> 17 <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW20856404 BCX0\">janvier<\/span><span class=\"NormalTextRun SCXW20856404 BCX0\"> 2025.<\/span><\/strong><\/span><strong><span class=\"EOP SCXW20856404 BCX0\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/strong><\/p>\n<\/div>\n\t  \t  \t\t  <\/div>\n<\/section>\n\n\n\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Apr\u00e8s le 17 janvier 2025:\u00a0<\/h3>\n                    <ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les saisies d\u2019\u00e9cran devraient rester fid\u00e8les, mais au lieu de vous connecter \u00e0 votre compte ATIR dans AWS quand on vous le demande, vous devrez vous connecter \u00e0 un compte AWS personnel.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les liens vers les scripts CloudFormation d\u2019AWS permettant le d\u00e9ploiement automatique de l\u2019application type devraient rester les m\u00eames et \u00eatre fonctionnels.<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Les liens vers les d\u00e9p\u00f4ts GitHub permettant de t\u00e9l\u00e9charger le code source du Propulseur resteront valables puisque c\u2019est le cr\u00e9ateur du Propulseur (celui qui a \u00e9labor\u00e9 les applications de source ouverte servant d\u2019exemple) qui en est le propri\u00e9taire et en assure le maintien.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n\n<section class=\"section section--text-with-image  alignfull full-width grey \">\n    <div class=\"grid-container simple-fade\">\n    <div class=\"grid-x grid-padding-x align-middle\">\n      <div class=\"cell large-6 medium-order-2\">\n\t\t  \t\t\t  <div class=\"full-width-img\" style=\"background-image: url(https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/DAIR-BP-Flight-Plan-FormKiq-1.png); background-size: cover; background-position: center center;\"><\/div>\n\t\t\t  <div class=\"image-mask\"><\/div>\n\t\t        <\/div>\n      <div class=\"cell large-6 medium-order-1 text-left text-cell light\">\n  \t\t                          <div class=\"fade-in-delay text-cell-text\"><h1>Classification et recherche automatiques de documents<\/h1>\n<p>Voici ce que vous trouverez dans cet solution type :<\/p>\n<ul>\n<li><a href=\"#introduction\">Introduction<\/a><\/li>\n<li><a href=\"#samplesolution\">Solution type<\/a><\/li>\n<li><a href=\"#deploiement\">D\u00e9ploiement et configuration<\/a><\/li>\n<li><a href=\"#demonstration\">D\u00e9monstration de la technologie<\/a><\/li>\n<li><a href=\"#conclusion\">Conclusion<\/a><\/li>\n<li><a href=\"#considerations\">Consid\u00e9rations<\/a><\/li>\n<li><a href=\"#code\">Code de lancement<\/a><\/li>\n<li><a href=\"#glossaire\">Glossaire<\/a><\/li>\n<\/ul>\n<\/div>\n                      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n\n<div id=\"introduction\" class=\"anchor-link\"><\/div>\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Introduction<\/h3>\n                    <p>La Solution type du propulseur \u00ab Classification et recherche automatiques de documents \u00bb illustre comment FormKiQ utilise Micronaut, Apache Kafka, Tesseract (moteur de reconnaissance optique de caract\u00e8res), Elasticsearch et le traitement du langage naturel (TLN) pour cat\u00e9goriser et \u00e9tiqueter automatiquement des documents en fonction de leur contenu, et ainsi pouvoir les retrouver et les r\u00e9cup\u00e9rer rapidement.<\/p>\n<h3>\u00c9nonc\u00e9 du probl\u00e8me<\/h3>\n<p>Beaucoup d\u2019organisations trouveraient utile de r\u00e9cup\u00e9rer des documents pr\u00e9cis, conserv\u00e9s dans un d\u00e9p\u00f4t, tout en glanant plus d\u2019informations de mani\u00e8re \u00e0 pouvoir trouver et grouper certaines donn\u00e9es. \u00c0 l\u2019heure actuelle, on y parvient en effectuant une recherche manuelle ou en saisissant \u00e0 la main les m\u00e9tadonn\u00e9es du document, deux m\u00e9thodes on\u00e9reuses, inefficaces et laborieuses. C\u2019est pourquoi nous en avons con\u00e7u une meilleure!<\/p>\n<p>Classer et retrouver automatiquement des documents apporterait beaucoup \u00e0 certaines industries. Les cabinets d\u2019avocats et les services juridiques, par exemple, pourraient examiner les demandes de documents et y r\u00e9pondre, de m\u00eame qu\u2019accomplir d\u2019autres t\u00e2ches dans le m\u00eame domaine. Le temps manque souvent pour satisfaire pareilles requ\u00eates et les co\u00fbts que cela entra\u00eene sont parfois exorbitants. Pourraient aussi b\u00e9n\u00e9ficier de cette technologie les services professionnels dans certains domaines comme le g\u00e9nie et la construction, o\u00f9 chaque service doit imp\u00e9rativement suivre le cheminement de la documentation, et o\u00f9 une erreur humaine ou le moindre retard s\u2019av\u00e8re co\u00fbteux, en emp\u00eachant l\u2019organisation de remplir ses obligations contractuelles.<\/p>\n<p>Les co\u00fbts \u00e9lev\u00e9s et les d\u00e9lais n\u2019auront pas seulement un impact sur la vitalit\u00e9 financi\u00e8re de l\u2019organisation. Dans certains cas (dans l\u2019industrie m\u00e9dicale, par exemple), leurs r\u00e9percussions pourraient affecter la population elle-m\u00eame.<\/p>\n<p>Les solutions classiques reposent sur la normalisation des proc\u00e9dures op\u00e9rationnelles et des flux de t\u00e2ches comportant maintes \u00e9tapes manuelles. En plus d\u2019\u00eatre laborieux, les proc\u00e9d\u00e9s de ce genre consomment toutefois \u00e9norm\u00e9ment de ressources et leur pr\u00e9cision laisse \u00e0 d\u00e9sirer en raison des erreurs humaines et des incoh\u00e9rences dans la classification.<\/p>\n<p>En recourant \u00e0 la reconnaissance optique des caract\u00e8res (ROC), au traitement du langage naturel (TLN) et \u00e0 la recherche plein texte, la Solution type automatise la cr\u00e9ation de m\u00e9tadonn\u00e9es sur les documents, \u00e9conomise du temps, att\u00e9nue les risques d\u2019erreur et all\u00e8ge les co\u00fbts, de mani\u00e8re g\u00e9n\u00e9rale.<\/p>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<div id=\"samplesolution\" class=\"anchor-link\"><\/div>\n<section class=\"section section--text-columns no-background\">\n    <div class=\"grid-container\">\n      <div class=\"grid-x grid-padding-x\">\n        <div class=\"cell\">\n                  \t<h3>Classification et recherche automatiques de documents dans le Nuage de l\u2019ATIR \u2013 Solution type<\/h3>\n                                      <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<h3 class=\"wp-block-heading\">Diagramme de la Solution type<\/h3>\n\n\n\n<p>Le diagramme ci-dessous illustre la structure de la Solution type.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"380\" height=\"270\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01.png\" alt=\"\" class=\"wp-image-38862\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01.png 380w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01-300x213.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"409\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/Automated-Document-Classification-and-Discovery-diagram-2-FR.png\" alt=\"\" class=\"wp-image-38977\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/Automated-Document-Classification-and-Discovery-diagram-2-FR.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/Automated-Document-Classification-and-Discovery-diagram-2-FR-300x197.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Description des \u00e9l\u00e9ments<\/h3>\n\n\n\n<p>Voici un aper\u00e7u des principaux \u00e9l\u00e9ments qui composent la Solution type.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes no-search align-top\"><table><thead><tr><th><strong>\u00c9l\u00e9ment<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Application React UI<\/strong><\/td><td>Interface utilisateur web permettant d\u2019interagir avec l\u2019application<\/td><\/tr><tr><td><strong><strong>Kafka<\/strong><\/strong><\/td><td>Plateforme r\u00e9partie de diffusion en continu employ\u00e9e pour coordonner le traitement des documents tout au long des diff\u00e9rentes \u00e9tapes du flux de t\u00e2ches<\/td><\/tr><tr><td><strong>Micronaut Framework<\/strong><\/td><td>Cadriciel web fond\u00e9 sur une machine virtuelle Java qui traite les demandes de l\u2019API, re\u00e7oit les messages de Kafka et y donne suite, de m\u00eame que r\u00e9dige les documents pour le serveur Elasticsearch<\/td><\/tr><tr><td><strong><strong>Tesseract<\/strong><\/strong><\/td><td>Moteur de reconnaissance optique de caract\u00e8res (ROC) de source ouverte abondamment utilis\u00e9 pour identifier le texte dans les images num\u00e9riques<\/td><\/tr><tr><td><strong><strong>PyTorch<\/strong><\/strong><\/td><td>Cadriciel d\u2019apprentissage automatique de source ouverte principalement utilis\u00e9 pour cr\u00e9er et entra\u00eener les r\u00e9seaux de neurones profonds. Le but est d\u2019obtenir une plateforme assez souple et conviviale dont le d\u00e9veloppeur pourra se servir pour b\u00e2tir des mod\u00e8les complexes qui accompliront diverses t\u00e2ches comme la reconnaissance d\u2019images, le TLN et le reste<\/td><\/tr><tr><td><strong><strong>Elasticsearch<\/strong><\/strong><\/td><td>Moteur de recherche et d\u2019analyse de source ouverte con\u00e7u pour stocker, chercher et analyser en temps r\u00e9el des donn\u00e9es volumineuses, structur\u00e9es ou pas. Permet \u00e0 l\u2019utilisateur d\u2019effectuer ais\u00e9ment des recherches complexes et d\u2019analyser ses donn\u00e9es<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"deploiment\">D\u00e9ploiement et configuration<\/h3>\n\n\n\n<p>Pour d\u00e9ployer la Solution type, les participants de l\u2019ATIR n\u2019ont qu\u2019\u00e0 se rendre \u00e0 la partie \u00ab&nbsp;Classification et recherche automatiques de documents&nbsp;\u00bb sur la page du <a href=\"https:\/\/www.canarie.ca\/fr\/nuage\/propulseurs\/\">Catalogue des Propulseurs de l\u2019ATIR<\/a> et suivre les instructions afin d\u2019en cr\u00e9er une nouvelle instance.<\/p>\n\n\n\n<p>Avant de d\u00e9ployer l\u2019application, on pr\u00e9sume que vous aurez effectu\u00e9 ce qui suit&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cr\u00e9\u00e9 une r\u00e8gle pour les groupes de s\u00e9curit\u00e9 autorisant les sources ext\u00e9rieures (0.0.0.0\/0) \u00e0 se connecter aux machines virtuelles (MV) engendr\u00e9es dans l\u2019ATIR par les ports&nbsp;80 (HTTP) et 443 (HTTPS);<\/li>\n\n\n\n<li>cr\u00e9\u00e9 une r\u00e8gle pour les groupes de s\u00e9curit\u00e9 autorisant le r\u00e9seau VPC par d\u00e9faut (172.31.0.0\/16) \u00e0 se connecter au port&nbsp;9200 de l\u2019API Elasticsearch;<\/li>\n\n\n\n<li>cr\u00e9\u00e9 un groupe de s\u00e9curit\u00e9 vous autorisant \u00e0 vous connecter par SSH (port&nbsp;22) aux MV du Nuage de l\u2019ATIR \u00e9tablies \u00e0 partir de l\u2019adresse IP que vous utilisez;<\/li>\n\n\n\n<li>cr\u00e9\u00e9 votre cl\u00e9 SSH priv\u00e9e donnant acc\u00e8s aux MV du Propulseur de l\u2019ATIR;<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"287\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq10-1024x287.png\" alt=\"\" class=\"wp-image-39812\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq10-1024x287.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq10-300x84.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq10-768x215.png 768w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq10.png 1320w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link has-light-grey-color has-cyan-background-color has-text-color has-background wp-element-button\" href=\"https:\/\/docs.aws.amazon.com\/fr_fr\/vpc\/latest\/userguide\/security-group-rules.html#adding-security-group-rules\"><strong>Ajouter des r\u00e8gles entrantes \u00e0 un groupe de s\u00e9curit\u00e9 dans AWS<\/strong><\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\">D\u00e9ploiement de la Solution type \u00ab&nbsp;Classification et recherche automatiques de documents&nbsp;\u00bb dans le Nuage de l\u2019ATIR<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Pr\u00eat \u00e0 d\u00e9coller?<\/h4>\n\n\n\n<ol class=\"wp-block-list\" start=\"1\" style=\"list-style-type:1\">\n<li>Ouvrez une s\u00e9ance sur votre compte AWS de l\u2019ATIR en suivant les instructions que vous a fournies l\u2019\u00e9quipe de l\u2019ATIR.<\/li>\n\n\n\n<li>Cliquez <strong><a href=\"https:\/\/ca-central-1.console.aws.amazon.com\/cloudformation\/home?region=ca-central-1#\/stacks\/create?stackName=FORMKIQ-BOOSTERPACK&amp;templateURL=https:\/\/boosterpack-cloudformation-templates.s3.ca-central-1.amazonaws.com\/formkiq.json\" target=\"_blank\" rel=\"noreferrer noopener\">D\u00c9PLOYER <\/a><\/strong>pour lancer le Propulseur avec une pile de la console CloudFormation d\u2019AWS.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"276\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq11.png\" alt=\"\" class=\"wp-image-39814\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq11.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq11-300x133.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Remplissez le formulaire de configuration<\/h3>\n\n\n\n<p>Cliquez <strong>Suivant<\/strong> pour passer \u00e0 la deuxi\u00e8me \u00e9tape et remplissez le formulaire. Dans les champs <strong>AppName<\/strong> et <strong>DBName<\/strong>, donnez un nom unique \u00e0 l\u2019instance des serveurs de l\u2019application web et de la base de donn\u00e9es, respectivement.<\/p>\n\n\n\n<p>Configurez aussi le mot de passe et l\u2019identifiant de l\u2019application web en remplissant respectivement les champs <strong>WebPassword<\/strong> et <strong>WebUsername<\/strong>. Compl\u00e9tez le reste du formulaire avec les choix du menu d\u00e9roulant. Veuillez noter que certains param\u00e8tres (comme \u00ab&nbsp;ServerImage&nbsp;\u00bb, \u00ab&nbsp;AppInstanceType&nbsp;\u00bb ou \u00ab&nbsp;DBInstanceType&nbsp;\u00bb) sont pr\u00e9configur\u00e9s et ne peuvent \u00eatre modifi\u00e9s.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"295\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq12.png\" alt=\"\" class=\"wp-image-39816\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq12.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq12-300x142.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Remarque&nbsp;:<\/strong> Choisissez des param\u00e8tres s\u00fbrs pour WebUserName et WebPassword.<\/p>\n\n\n\n<p>Cliquez <strong>SUIVANT<\/strong> pour passer \u00e0 la troisi\u00e8me \u00e9tape de CloudFormation. Cette partie concerne la configuration d\u2019options avanc\u00e9es ou suppl\u00e9mentaires inutiles dans le cas qui nous int\u00e9resse. Cliquez simplement \u00ab&nbsp;Suivant&nbsp;\u00bb au bas de la page pour sauter cette \u00e9tape et passer \u00e0 la quatri\u00e8me et derni\u00e8re de CloudFormation.<\/p>\n\n\n\n<p>La derni\u00e8re partie vous permet de v\u00e9rifier la configuration actuelle du Propulseur et d\u2019y apporter des modifications avec le bouton \u00ab&nbsp;Modifier&nbsp;\u00bb, si vous le d\u00e9sirez. Une fois que la configuration vous convient, cliquez \u00ab&nbsp;Soumettre&nbsp;\u00bb, au bas de la page, pour d\u00e9ployer le Propulseur.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"463\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq13-1024x463.png\" alt=\"\" class=\"wp-image-39818\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq13-1024x463.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq13-300x136.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq13-768x347.png 768w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq13.png 1430w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Le d\u00e9ploiement commence par la cr\u00e9ation de deux (2) nouvelles instances (celles du serveur de l\u2019application web et celle du serveur de la base de donn\u00e9es). Le reste est automatique. Suivre le d\u00e9veloppement des instances AWS n\u2019est possible qu\u2019avec les onglets \u00ab&nbsp;\u00c9v\u00e9nements&nbsp;\u00bb et \u00ab&nbsp;Ressources&nbsp;\u00bb de la console CloudFormation. Pour v\u00e9rifier l\u2019avancement du d\u00e9ploiement, vous devrez donc vous connecter aux serveurs de l\u2019application web et de la base de donn\u00e9es.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"343\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq14.png\" alt=\"\" class=\"wp-image-39820\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq14.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq14-300x165.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:33px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Notez la valeur \u00ab&nbsp;<strong>Web Application Server IP<\/strong>&nbsp;\u00bb qui appara\u00eet sur l\u2019onglet \u00ab&nbsp;Sorties&nbsp;\u00bb de la page CloudFormation du Propulseur. Il s\u2019agit de l\u2019adresse IP externe (publique) du serveur de l\u2019application web cr\u00e9\u00e9 par le Propulseur. Vous en aurez besoin pour acc\u00e9der \u00e0 l\u2019interface web de l\u2019application ou vous connecter au serveur par le protocole SSH.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"210\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq15.png\" alt=\"\" class=\"wp-image-39822\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq15.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq15-300x101.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:29px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Connectez-vous au serveur de l\u2019application \u00e0 partir d\u2019une coquille ou d\u2019un terminal utilisant le protocole SSH avec la commande suivante&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh -i key_file.pem ec2-user@IP<\/code><\/pre>\n\n\n\n<p>Remplacez \u00ab&nbsp;key_file&nbsp;\u00bb par la cl\u00e9 priv\u00e9e de la bicl\u00e9 SSH choisie dans les param\u00e8tres de configuration de CloudFormation et remplacez \u00ab&nbsp;IP&nbsp;\u00bb par la valeur de l\u2019onglet Sorties not\u00e9e pr\u00e9c\u00e9demment.<\/p>\n\n\n\n<p>Une fois la connexion avec le serveur de l\u2019application \u00e9tablie, vous pourrez suivre le d\u00e9ploiement du script d\u2019automatisation avec les commandes que voici&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source \/etc\/profile.d\/boosterpack.sh<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f \/var\/log\/boosterpack.log<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"311\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq16.png\" alt=\"\" class=\"wp-image-39824\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq16.png 750w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq16-300x124.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n<\/div>\n\n\n<p>Reprenez les m\u00eames \u00e9tapes pour suivre le d\u00e9ploiement du serveur de la base de donn\u00e9es (habituellement il est plus rapide que celui du serveur de l\u2019application web).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"249\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq17-1024x249.png\" alt=\"\" class=\"wp-image-39826\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq17-1024x249.png 1024w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq17-300x73.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq17-768x187.png 768w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/08\/formkiq17.png 1211w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Le d\u00e9ploiement du Propulseur (application web et base de donn\u00e9es) dure jusqu\u2019\u00e0 quinze (15) minutes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration et lancement de l\u2019application<\/h3>\n\n\n\n<p>L\u2019application d\u00e9marre automatiquement apr\u00e8s l\u2019instanciation. Pour s\u2019assurer qu\u2019il y a ex\u00e9cution, utilisez la commande Docker ci-dessous dans l\u2019invite de commande.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker image ls<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"229\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-09.png\" alt=\"\" class=\"wp-image-38884\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-09.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-09-300x110.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<pre class=\"wp-block-code\"><code><code>sudo docker <span style=\"background-color: initial; font-family: inherit; font-size: inherit; color: initial;\">ps<\/span><\/code><\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"132\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-10.png\" alt=\"\" class=\"wp-image-38886\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-10.png 624w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-10-300x63.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n<\/div>\n\n\n<p>L\u2019interface utilisateur est accessible par le navigateur gr\u00e2ce \u00e0 un URL s\u00e9curis\u00e9 incluant l\u2019adresse IP du serveur de l\u2019application web (AppAddress), pr\u00e9c\u00e9demment extraite de l\u2019onglet Sorties de la console CloudFormation.<\/p>\n\n\n\n<p><strong>https:\/\/app.&lt;AppAddress&gt;.nip.io<\/strong><\/p>\n\n\n\n<p><strong>La page d\u2019accueil de l\u2019application (illustration ci-dessous) devrait s\u2019afficher \u00e0 l\u2019\u00e9cran quand vous saisissez l\u2019URL.<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"138\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-08.png\" alt=\"\" class=\"wp-image-38876\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-08.png 626w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-08-300x66.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"demonstration\">D\u00e9monstration de la technologie<\/h3>\n\n\n\n<p>Cette partie montre comment fonctionne le Propulseur \u00ab&nbsp;Classification et recherche automatiques de documents&nbsp;\u00bb.Son utilit\u00e9 r\u00e9side dans la cr\u00e9ation automatique de m\u00e9tadonn\u00e9es\/\u00e9tiquettes pour les documents. Il en am\u00e9liore donc la cat\u00e9gorisation et la r\u00e9cup\u00e9ration.<\/p>\n\n\n\n<p><strong>La d\u00e9monstration vous apprendra ce qui suit.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comment t\u00e9l\u00e9verser un nouveau document<\/li>\n\n\n\n<li>Comment le convertir en texte clair avec le moteur ROC Tesseract<\/li>\n\n\n\n<li>Comment analyser le texte clair avec les algorithmes d\u2019apprentissage automatique (AA) afin d\u2019en extraire les entit\u00e9s, les lieux, les personnes et le titre<\/li>\n\n\n\n<li>Comment stocker le document dans Elasticsearch<\/li>\n\n\n\n<li>Comment retrouver un document avec du texte ou des balises<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><a><\/a>Ouverture d\u2019une s\u00e9ance<\/h3>\n\n\n\n<p>L\u2019application est accessible par navigateur \u00e0 partir de l\u2019adresse IP externe qui lui a \u00e9t\u00e9 attribu\u00e9e (<strong>https:\/\/app.&lt;AppAddress&gt;.nip.io).<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"138\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-08.png\" alt=\"\" class=\"wp-image-38876\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-08.png 626w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-08-300x66.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cliquez <strong>Login<\/strong>, puis saisissez l\u2019identifiant (WebUsername) et le mot de passe (WebPassword) que vous avez choisis \u00e0 la configuration des param\u00e8tres de CloudFormation lors du d\u00e9ploiement du Propulseur.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"233\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-11.png\" alt=\"\" class=\"wp-image-38890\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-11.png 626w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-11-300x112.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:42px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Chercher un document<\/h3>\n\n\n\n<p>Une fois la connexion \u00e9tablie, la page \u00ab&nbsp;<em>Document Search<\/em>&nbsp;\u00bb (recherche de documents) vous permet de retrouver un document \u00e0 partir de texte ou de balises.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"314\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-12.png\" alt=\"\" class=\"wp-image-38892\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-12.png 626w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-12-300x150.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Ajouter un document<\/h3>\n\n\n\n<p>La page \u00ab&nbsp;Add Document&nbsp;\u00bb (ajout de documents) vous permet de t\u00e9l\u00e9verser un ou plusieurs documents. Le t\u00e9l\u00e9versement termin\u00e9, les documents seront convertis en texte clair par reconnaissance optique des caract\u00e8res, puis les algorithmes d\u2019apprentissage automatique produiront des balises pour les entit\u00e9s et donneront un titre au document.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"235\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-13.png\" alt=\"\" class=\"wp-image-38894\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-13.png 626w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-13-300x113.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"conclusion\">Conclusion<\/h3>\n\n\n\n<p>Supprimez l\u2019instance dans le Nuage de l\u2019ATIR pour arr\u00eater l\u2019application et lib\u00e9rer les ressources qu\u2019elle exploite. Pour cela, revenez \u00e0 la page Piles de la console CloudFormation et supprimez la pile qui correspond au Propulseur. <a href=\"https:\/\/docs.aws.amazon.com\/fr_fr\/AWSCloudFormation\/latest\/UserGuide\/cfn-console-delete-stack.html\" target=\"_blank\" rel=\"noreferrer noopener\">Plus sur la suppression d\u2019une pile dans Cloudformation.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"considerations\">Facteurs \u00e0 prendre en consid\u00e9ration<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">Autres possibilit\u00e9s de d\u00e9ploiement<\/h3>\n\n\n\n<p>Cette solution se d\u00e9ploie sur une instance install\u00e9e sur un seul n\u0153ud d\u2019Elasticsearch. Pour garantir la disponibilit\u00e9 des solutions plus importantes et rehausser leur performance, il se pourrait qu\u2019on doive installer plusieurs instances dans le Nuage de l\u2019ATIR et cr\u00e9er une grappe (<em>cluster<\/em>) dans Elasticsearch. G\u00e9rer une grappe avec des solutions aussi simples que celle de la Solution type ajouterait une complexit\u00e9 inutile \u00e0 la chose et engendrerait des frais superflus.<\/p>\n\n\n\n<p>La solution recourt aussi \u00e0 une seul instance Docker pour g\u00e9rer l\u2019interface utilisateur, l\u2019API Micronaut et l\u2019API d\u2019apprentissage automatique (AA). L\u2019API AA peut recourir \u00e0 plusieurs serveurs, selon le nombre de documents trait\u00e9s. L\u2019entreprise pourrait donc vouloir exploiter une deuxi\u00e8me instance de la solution et r\u00e9server la premi\u00e8re totalement \u00e0 l\u2019API AA. Dans un tel cas, on devra apporter des modifications mineures \u00e0 docker-compose-prod.yml afin de configurer le serveur API_AA.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Technologies de rechange<\/h3>\n\n\n\n<p>Les technologies et les outils employ\u00e9s par la Solution type viennent de sources ouvertes populaires et ont \u00e9t\u00e9 choisis parce qu\u2019ils s\u2019int\u00e8grent bien ensemble. N\u00e9anmoins, il pourrait \u00eatre remplac\u00e9s par d\u2019outres outils, exclusifs ou d\u2019utilisation libre, en fonction de la plateforme, des comp\u00e9tences et du soutien souhait\u00e9. En voici quelques exemples.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Outil<\/th><th>Exclusif<\/th><th>Utilisation libre<\/th><\/tr><\/thead><tbody><tr><td><strong>Tesseract OCR<\/strong><\/td><td>AWS Textract\/Google Vision OCR<\/td><td>doctr<\/td><\/tr><tr><td><strong>Docker<\/strong><\/td><td>AWS Fargate<\/td><td>Kubernetes<\/td><\/tr><tr><td><strong>Elasticsearch<\/strong><\/td><td>Algolia<\/td><td>Typesense<\/td><\/tr><tr><td><strong>Diffusion continue<\/strong> <strong>(solutions de rechange \u00e0 Kafka)<\/strong><\/td><td>Azure Event Hubs<\/td><td>RabbitMQ, Amazon MQ, Redis<\/td><\/tr><tr><td><strong>Couche de pr\u00e9sentation (solutions de rechange \u00e0 React)<\/strong><\/td><td>s\/o<\/td><td>Angular, Vue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture des donn\u00e9es<\/h3>\n\n\n\n<p>La Solution type stocke les fichiers dans le syst\u00e8me de fichiers du serveur et entrepose les m\u00e9tadonn\u00e9es dans Elasticsearch, ce qui illustre une ma\u00eetrise parfaite des principes. Toutefois, un environnement de production sera sans doute mieux servi par un stockage en nuage (comme Amazon S3). Bien qu\u2019Elasticsearch se pr\u00eate surtout \u00e0 la recherche plein texte (\u00e0 l\u2019instar d\u2019Algolia et de Typesense), il est possible qu\u2019une base de donn\u00e9es comme PostgreSQL, qui offre aussi une fonctionnalit\u00e9 de recherche plein texte, bien que restreinte, convienne davantage \u00e0 d\u2019autres applications.<\/p>\n\n\n\n<p>On a simplifi\u00e9 l\u2019acc\u00e8s aux donn\u00e9es en le limitant \u00e0 un seul. Pour les sc\u00e9narios dans lesquels de nombreux utilisateurs disposent d\u2019un acc\u00e8s de niveau variable aux donn\u00e9es, il serait pr\u00e9f\u00e9rable d\u2019exercer un contr\u00f4le par r\u00f4le ou par attributs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">S\u00e9curit\u00e9<em><\/em><\/h3>\n\n\n\n<p>La Solution type a \u00e9t\u00e9 con\u00e7ue aux fins de d\u00e9monstration. On pourra s\u2019en servir comme cadre de base afin de d\u00e9velopper plus rapidement la solution d\u00e9sir\u00e9e. La Solution type n\u2019a pas \u00e9t\u00e9 \u00e9labor\u00e9e pour servir dans un environnement de production. Diverses mesures de s\u00e9curit\u00e9 et am\u00e9liorations seront donc requises si on veut l\u2019utiliser dans un environnement de ce genre. Les points qui suivent indiquent ce qu\u2019il faudrait ajouter pour s\u00e9curiser la Solution type davantage.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Mot de passe.<\/strong> Nous avons \u00e9tabli un mot de passe par d\u00e9faut pour plusieurs outils et applications de la Solution type comme Elasticsearch et l\u2019interface utilisateur. Changez toujours ce mot de passe pour un plus s\u00fbr.<\/li>\n\n\n\n<li><strong>Pare-feu pour application web (WAF). <\/strong>L\u2019insertion d\u2019un WAF avant l\u2019interface utilisateur et l\u2019API pr\u00e9viendront l\u2019injection de SQL, l\u2019injection de code indirecte (XSS) et la falsification des demandes entre sites (CSRF).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Extensibilit\u00e9\/Disponibilit\u00e9<\/h3>\n\n\n\n<p>La Solution type repose sur une infrastructure de microservices. Pour agrandir une architecture de ce genre, on \u00e9largira chaque service et leur infrastructure en fonction de la demande.<\/p>\n\n\n\n<p>Il est possible d\u2019\u00e9largir Elasticsearch en cr\u00e9ant une grappe (<em>cluster<\/em>) qui permettra de traiter des donn\u00e9es et des demandes volumineuses. Les grappes peuvent \u00eatre \u00e9largies horizontalement comme on le d\u00e9sire par l\u2019addition de n\u0153uds. La grappe gagne en performance et en fiabilit\u00e9 en grossissant.<\/p>\n\n\n\n<p>Les API peuvent aussi \u00eatre \u00e9largies par la cr\u00e9ation d\u2019une grappe NGINX, con\u00e7ue pour prendre en charge un trafic important et pour rehausser la performance de l\u2019application web. La grappe de serveurs NGINX permettra de r\u00e9partir les demandes entre divers serveurs, d\u2019all\u00e9ger la charge qui s\u2019exerce sur chacun d\u2019eux et d\u2019am\u00e9liorer de mani\u00e8re g\u00e9n\u00e9rale la performance du syst\u00e8me.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">API<em><\/em><\/h3>\n\n\n\n<p>La Solution type comprend une API dont le point terminal est accessible publiquement. Par cons\u00e9quent, il est essentiel de proc\u00e9der \u00e0 une authentification quelconque. La Solution type utilise des jetons JWT pour cela, une fa\u00e7on s\u00fbre et normalis\u00e9e pour les deux parties d\u2019authentifier les demandes et d\u2019\u00e9changer de l\u2019information.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Co\u00fbt<\/h3>\n\n\n\n<p>Un avantage de la Solution type est que les outils et les technologies qu\u2019elle int\u00e8gre sont tous de source ouverte. Il n\u2019y a donc aucun droit de licence \u00e0 verser. Cependant, il se pourrait qu\u2019on ait besoin de serveurs plus importants, selon la quantit\u00e9 et la taille des documents \u00e0 traiter et \u00e0 stocker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Licence d\u2019exploitation<\/h3>\n\n\n\n<p>Les codes et les configurations de la Solutions type sont tous couverts par la licence<a href=\"https:\/\/www.apache.org\/licenses\/LICENSE-2.0\"> <strong>Apache 2.0<\/strong><\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\">Codes de lancement<\/h3>\n\n\n\n<p>Vous trouverez le code source de la Solution type et de la documentation d\u00e9taill\u00e9e, accessibles \u00e0 tous, dans le d\u00e9p\u00f4t <a href=\"https:\/\/github.com\/formkiq\/intelligent-document-classification\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/formkiq\/intelligent-document-classification<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\">Glossaire<\/h3>\n\n\n\n<p>Voici la d\u00e9finition des termes ou expressions qui apparaissent dans le document.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Expression<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>API<\/strong><\/td><td>Interface de programmation de l\u2019application<\/td><\/tr><tr><td><strong>ROC<\/strong><\/td><td>Reconnaissance optique des caract\u00e8res<\/td><\/tr><tr><td><strong>TLN<\/strong><\/td><td>Traitement du langage naturel<\/td><\/tr><tr><td><strong>MV<\/strong><\/td><td>Machine virtuelle<\/td><\/tr><tr><td><strong>UI<\/strong><\/td><td>Interface utilisateur<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Diagramme de la Solution type Le diagramme ci-dessous illustre la structure de la Solution type. Description des \u00e9l\u00e9ments Voici un [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"parent":38844,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-38855","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Solution type : Classification et recherche automatiques de documents - CANARIE<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Solution type : Classification et recherche automatiques de documents - CANARIE\" \/>\n<meta property=\"og:description\" content=\"Diagramme de la Solution type Le diagramme ci-dessous illustre la structure de la Solution type. Description des \u00e9l\u00e9ments Voici un [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/\" \/>\n<meta property=\"og:site_name\" content=\"CANARIE\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-30T13:45:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/\",\"name\":\"Solution type : Classification et recherche automatiques de documents - CANARIE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/SS-FormKiq-01.png\",\"datePublished\":\"2023-07-24T15:46:41+00:00\",\"dateModified\":\"2024-10-30T13:45:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/SS-FormKiq-01.png\",\"contentUrl\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/SS-FormKiq-01.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/classification-et-recherche-automatiques-de-documents\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le nuage de l&#8217;ATIR\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/?page_id=44361\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Catalogue des Propulseurs de l\u2019ATIR\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/?page_id=6557\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Plan de vol pour : Classification et recherche automatiques de documents\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/classification-et-recherche-automatiques-de-documents\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Solution type : Classification et recherche automatiques de documents\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/#website\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/\",\"name\":\"CANARIE\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.canarie.ca\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Solution type : Classification et recherche automatiques de documents - CANARIE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/","og_locale":"fr_FR","og_type":"article","og_title":"Solution type : Classification et recherche automatiques de documents - CANARIE","og_description":"Diagramme de la Solution type Le diagramme ci-dessous illustre la structure de la Solution type. Description des \u00e9l\u00e9ments Voici un [&hellip;]","og_url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/","og_site_name":"CANARIE","article_modified_time":"2024-10-30T13:45:29+00:00","og_image":[{"url":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/","url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/","name":"Solution type : Classification et recherche automatiques de documents - CANARIE","isPartOf":{"@id":"https:\/\/www.canarie.ca\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/#primaryimage"},"image":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/#primaryimage"},"thumbnailUrl":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01.png","datePublished":"2023-07-24T15:46:41+00:00","dateModified":"2024-10-30T13:45:29+00:00","breadcrumb":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/#primaryimage","url":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01.png","contentUrl":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2023\/07\/SS-FormKiq-01.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/classification-et-recherche-automatiques-de-documents\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.canarie.ca\/fr\/"},{"@type":"ListItem","position":2,"name":"Le nuage de l&#8217;ATIR","item":"https:\/\/www.canarie.ca\/fr\/?page_id=44361"},{"@type":"ListItem","position":3,"name":"Catalogue des Propulseurs de l\u2019ATIR","item":"https:\/\/www.canarie.ca\/fr\/?page_id=6557"},{"@type":"ListItem","position":4,"name":"Plan de vol pour : Classification et recherche automatiques de documents","item":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/classification-et-recherche-automatiques-de-documents\/"},{"@type":"ListItem","position":5,"name":"Solution type : Classification et recherche automatiques de documents"}]},{"@type":"WebSite","@id":"https:\/\/www.canarie.ca\/#website","url":"https:\/\/www.canarie.ca\/","name":"CANARIE","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.canarie.ca\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"_links":{"self":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/38855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/comments?post=38855"}],"version-history":[{"count":3,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/38855\/revisions"}],"predecessor-version":[{"id":44491,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/38855\/revisions\/44491"}],"up":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/38844"}],"wp:attachment":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/media?parent=38855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}