{"id":44674,"date":"2024-12-17T10:22:59","date_gmt":"2024-12-17T15:22:59","guid":{"rendered":"https:\/\/www.canarie.ca\/?page_id=44674"},"modified":"2024-12-17T10:25:30","modified_gmt":"2024-12-17T15:25:30","slug":"solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel","status":"publish","type":"page","link":"https:\/\/www.canarie.ca\/fr\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/","title":{"rendered":"Solution type : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel"},"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\/2024\/12\/DAIR-BP-Flight-Plan-1280-Labs-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><strong>D\u00e9tection des anomalies dans les donn\u00e9es chronologique par l\u2019IA<\/strong><\/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 que voici montre comment 1280 Labs a recouru aux grands mod\u00e8les de langage (GML) les plus r\u00e9cents pour cr\u00e9er une application de d\u00e9part pouvant servir \u00e0 des projets aliment\u00e9s par l\u2019intelligence artificielle (IA).<\/p>\n<h3>Probl\u00e9matique<\/h3>\n<p>Depuis un an, le monde des jeunes pousses canadiennes sp\u00e9cialis\u00e9es en IA conna\u00eet un essor incroyable gr\u00e2ce aux progr\u00e8s notables enregistr\u00e9s dans les domaines de l\u2019intelligence artificielle (IA) et de l\u2019apprentissage automatique (AA). Ces petites entreprises sont particuli\u00e8rement pris\u00e9es dans les rondes de financement et font la manchette des journaux, car elles s\u2019attaquent \u00e0 une gamme de probl\u00e8mes sp\u00e9cifiques \u00e0 l\u2019industrie en proposant des produits qui misent sur l\u2019IA.<\/p>\n<p>Bien qu\u2019elles mettent au point des solutions novatrices pour r\u00e9soudre des probl\u00e8mes pr\u00e9cis, la majorit\u00e9 de ces entreprises s\u2019appuient sur des technologies de base communes. Actuellement, les \u00e9quipes qui s\u2019efforcent de d\u00e9velopper une application aliment\u00e9e par l\u2019IA se heurtent \u00e0 la m\u00eame difficult\u00e9\u00a0: r\u00e9unir un personnel comp\u00e9tent qui conna\u00eet assez les technologies frontales et dorsales pour concevoir une plateforme compl\u00e8te, s\u00e9curis\u00e9e, et qui ma\u00eetrise suffisamment l\u2019IA pour lui donner les fonctionnalit\u00e9s qui rendront le produit de l\u2019entreprise unique.<\/p>\n<p>Habituellement, l\u2019entreprise est contrainte d\u2019embaucher des d\u00e9veloppeurs sp\u00e9cialis\u00e9s dans les technologies frontales et dorsales, de consacrer deux \u00e0 six semaines pour \u00e9tablir les fonctionnalit\u00e9s de base de la plateforme web, puis d\u2019y int\u00e9grer les fonctionnalit\u00e9s de l\u2019IA. Notre Propulseur rationalise ce processus en rempla\u00e7ant la phase de d\u00e9veloppement initiale par une plateforme enti\u00e8rement fonctionnelle permettant l\u2019inscription, l\u2019authentification et la gestion des utilisateurs. Elle met donc fin \u00e0 la n\u00e9cessit\u00e9 d\u2019engager des d\u00e9veloppeurs suppl\u00e9mentaires, les \u00e9l\u00e9ments frontaux et l\u2019architecture de l\u2019API \u00e9tant \u00e9tablis d\u2019avance. L\u2019\u00e9quipe peut alors se concentrer sur l\u2019\u00e9laboration d\u2019une plateforme web de premier plan pourvue d\u2019une API dorsale s\u00fbre, dans un environnement pr\u00e9configur\u00e9.<\/p>\n<p>Avant de passer au d\u00e9veloppement du produit, sachez que ce Propulseur vous permettra de r\u00e9aliser des \u00e9conomies par le recours \u00e0 un minimum de d\u00e9veloppeurs sp\u00e9cialis\u00e9s en applications web. Gr\u00e2ce \u00e0 cette approche, une \u00e9quipe plus modeste mais adroite en accomplira davantage. Parce que le Propulseur peut \u00eatre lanc\u00e9 avec ou sans fonctionnalit\u00e9s IA, l\u2019\u00e9quipe sera en mesure de b\u00e2tir n\u2019importe quelle plateforme web et de d\u00e9velopper son produit plus rapidement.<\/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>AI Starter App dans le nuage de l\u2019ATIR &#8211; Solution type<\/h3>\n                    <h4>Aper\u00e7u<\/h4>\n<p class=\"Body\">Le diagramme que voici illustre comment la Solution type est structur\u00e9e.<\/p>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"452\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image.png\" alt=\"\" class=\"wp-image-44675\" style=\"width:586px;height:auto\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-300x139.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-768x356.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><figcaption class=\"wp-element-caption\">En d\u00e9ployant le Propulseur, vous utiliserez CloudFormation pour reproduire l\u2019infrastructure du projet sur la plateforme AWS. Les ressources d\u2019AWS sont rassembl\u00e9es dans un groupe de s\u00e9curit\u00e9 afin de contr\u00f4ler l\u2019acc\u00e8s au r\u00e9seau. Les d\u00e9p\u00f4ts frontaux et dorsaux se trouvent dans des conteneurs Docker, sur une instance EC2. Les GML sont h\u00e9berg\u00e9s \u00e0 l\u2019externe par Huggingface, OpenAI, Anthropic, et Mistral.<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:28px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Composants<\/h3>\n\n\n\n<p>Le tableau ci-dessous pr\u00e9sente de fa\u00e7on succincte les principaux \u00e9l\u00e9ments dont la Solution type est constitu\u00e9e.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes no-search align-top\"><table><thead><tr><th>Composant<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong><strong><strong>Environnement AWS<\/strong><\/strong><\/strong><\/td><td>S\u00e9rie compl\u00e8te de services et de ressources en nuage configur\u00e9e pour faciliter l\u2019exploitation d\u2019applications et de services sur Amazon Web Services (AWS). Gr\u00e2ce \u00e0 l\u2019ATIR, chaque utilisateur a acc\u00e8s \u00e0 son propre environnement AWS.<\/td><\/tr><tr><td><strong><strong><strong>D\u00e9ploiement sur CloudFormation<\/strong><\/strong><\/strong><\/td><td>Service d\u2019AWS. CloudFormation est un service qui d\u00e9finit et g\u00e8re l\u2019infrastructure AWS comme un code, donc provisionne et actualise automatiquement les ressources. On s\u2019en sert pour d\u00e9ployer AI Starter App sur l\u2019environnement AWS.<\/td><\/tr><tr><td><strong><strong><strong>D\u00e9p\u00f4t public Github<\/strong><\/strong><\/strong><\/td><td>Github est un service d\u2019h\u00e9bergement de d\u00e9p\u00f4ts de code. Les d\u00e9p\u00f4ts frontaux et dorsaux du Propulseur sont h\u00e9berg\u00e9s dans un d\u00e9p\u00f4t public Github.<\/td><\/tr><tr><td><strong><strong><strong><strong>Groupe de s\u00e9curit\u00e9<\/strong><\/strong><\/strong><\/strong><\/td><td>Service d\u2019AWS. Sert de pare-feu virtuel aux instances EC2 pour contr\u00f4ler le trafic entrant et sortant selon des r\u00e8gles pr\u00e9cises.<\/td><\/tr><tr><td><strong><strong><strong>EC2<\/strong><\/strong><\/strong><\/td><td>Service d\u2019AWS. Capacit\u00e9 de calcul \u00e9volutive dans le nuage AWS permettant \u00e0 l\u2019utilisateur d\u2019exploiter des serveurs virtuels et de g\u00e9rer des ressources informatiques.<\/td><\/tr><tr><td><strong>Conteneur Docker<\/strong><\/td><td>Paquet autonome peu volumineux et ex\u00e9cutable regroupant tout ce qu\u2019il faut pour qu\u2019un logiciel fonctionne (code, instant d\u2019ex\u00e9cution, outils syst\u00e8me, biblioth\u00e8ques, param\u00e8tres)<\/td><\/tr><tr><td><strong><strong><strong>Nginx<\/strong><\/strong><\/strong><\/td><td>Paquet autonome peu volumineux et ex\u00e9cutable regroupant tout ce qu\u2019il faut pour qu\u2019un logiciel fonctionne (code, instant d\u2019ex\u00e9cution, outils syst\u00e8me, biblioth\u00e8ques, param\u00e8tres)<\/td><\/tr><tr><td><strong><strong><strong>Gunicorn<\/strong><\/strong><\/strong><\/td><td>Serveur http WSGI Python pour UNIX. Sert les applications web Python en g\u00e9rant une foule de processus de travail pour r\u00e9pondre aux demandes<\/td><\/tr><tr><td><strong><strong>Appli React Web<\/strong><\/strong><\/td><td>Biblioth\u00e8que populaire de source ouverte en JavaScript employ\u00e9e pour cr\u00e9er des interfaces utilisateur \u00e0 partir d\u2019une architecture constitu\u00e9e de composants.<\/td><\/tr><tr><td><strong><strong>Serveur dorsal Django<\/strong><\/strong><\/td><td>Cadriciel web Python de haut niveau incorporant des fonctions pour la gestion de bases de donn\u00e9es, l\u2019authentification des utilisateurs et plus<\/td><\/tr><tr><td><strong><strong>PostgresSQL<\/strong><\/strong><\/td><td>Syst\u00e8me de base de donn\u00e9es relationnelles r\u00e9put\u00e9 pour sa robustesse, son extensibilit\u00e9 et son adh\u00e9rence aux normes<\/td><\/tr><tr><td><strong><strong>GML<\/strong><\/strong><\/td><td>Les grands mod\u00e8les de langage (GML) sont des syst\u00e8mes d\u2019IA avanc\u00e9s, entra\u00een\u00e9s avec de volumineuses donn\u00e9es textuelles de fa\u00e7on \u00e0 comprendre, \u00e0 produire et \u00e0 manipuler efficacement le langage naturel.<\/td><\/tr><tr><td><strong>Simple Email Service (SES)<\/strong><\/td><td>Service d\u2019AWS. Service de messagerie \u00e9lectronique en nuage con\u00e7u pour envoyer massivement des courriels de fa\u00e7on fiable<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"deployandconfigure\">D\u00e9ploiement et configuration<\/h3>\n\n\n\n<p>Si vous \u00eates inscrit \u00e0 l\u2019ATIR, parcourez le catalogue jusqu\u2019au Propulseur et suivez les instructions en vue de d\u00e9ployer une nouvelle instance de la Solution type.<\/p>\n\n\n\n<p><strong>Pr\u00e9requis<\/strong> <strong>:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cr\u00e9er un groupe de s\u00e9curit\u00e9 pour que le trafic HTTP (tous les clients 0.0.0.0\/0) ait acc\u00e8s au serveur (par le port 80) qui sera mis en place par la suite. Vous pouvez aussi autoriser l\u2019acc\u00e8s au serveur par SSH (port 22) \u00e0 partir de notre adresse IP.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"548\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-1.png\" alt=\"\" class=\"wp-image-44677\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-1.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-1-300x169.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-1-768x432.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Une autre possibilit\u00e9 serait de cr\u00e9er une cl\u00e9 SSH priv\u00e9e pour acc\u00e9der \u00e0 l\u2019instance EC2 que nous engendrerons plus loin:<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"858\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-2.png\" alt=\"\" class=\"wp-image-44679\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-2.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-2-300x264.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-2-768x676.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Cliquez <a href=\"https:\/\/console.aws.amazon.com\/cloudformation\/home#\/stacks\/create\/review?templateURL=https:\/\/1280labs-boosterpack.s3.ca-central-1.amazonaws.com\/ai-starter\/cloudformation.json&amp;stackName=ai-starter\" target=\"_blank\" rel=\"noreferrer noopener\">ce lien pour d\u00e9ployer l\u2019instance sur la plateforme AWS<\/a>.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"463\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-3.png\" alt=\"\" class=\"wp-image-44681\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-3.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-3-300x142.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-3-768x365.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>Avant d\u2019utiliser la fonction clavardage, vous devrez configurer les cl\u00e9s de l\u2019API en fonction du GML d\u00e9sir\u00e9. Pour cela, saisissez un num\u00e9ro de carte de cr\u00e9dit ou choisissez une autre m\u00e9thode de paiement selon le compte d\u00e9tenu par l\u2019organisation pour l\u2019outil concern\u00e9. Ces d\u00e9tails pour Claude, Huggingface, Mistral et OpenAI peuvent \u00eatre fournis ou omis.<\/p>\n\n\n\n<p>Suivre les liens ci-dessous pour cr\u00e9er un compte sur la plateforme correspondante.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/console.anthropic.com\/login\" target=\"_blank\" rel=\"noreferrer noopener\">Anthropic Claude<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/platform.openai.com\/signup\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI GPT<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/huggingface.co\/join\" target=\"_blank\" rel=\"noreferrer noopener\">Huggingface (Llama)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/auth.mistral.ai\/ui\/registration\" target=\"_blank\" rel=\"noreferrer noopener\">Mistral<\/a><\/li>\n<\/ul>\n\n\n\n<p>Pour voir les cl\u00e9s de l\u2019API, ex\u00e9cutez la commande ci-dessous dans l\u2019instance EC2. Elle affichera toutes les variables de l\u2019environnement.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker exec &lt;container-id&gt; env<\/code><\/pre>\n\n\n\n<p>On peut aussi r\u00e9gler \u00ab&nbsp;\u201cNoReplySenderAddress&nbsp;\u00bb si, par exemple, un utilisateur demande la modification de son mot de passe au moyen de l\u2019application. Veuillez noter que vous devrez <a href=\"https:\/\/docs.aws.amazon.com\/ses\/latest\/dg\/verify-addresses-and-domains.html\" target=\"_blank\" rel=\"noreferrer noopener\">v\u00e9rifier si cette adresse vous appartient<\/a> avant que le service SES d\u2019Amazon exp\u00e9die le courriel aux utilisateurs. Il pourrait simplement s\u2019agir d\u2019un compte Gmail auquel vous avez acc\u00e8s.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"463\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-4.png\" alt=\"\" class=\"wp-image-44683\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-4.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-4-300x142.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-4-768x365.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"285\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-5.png\" alt=\"\" class=\"wp-image-44685\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-5.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-5-300x88.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-5-768x224.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"463\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-6.png\" alt=\"\" class=\"wp-image-44687\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-6.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-6-300x142.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-6-768x365.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>L\u2019application commencera \u00e0 se d\u00e9ployer, ce qui peut prendre quelques minutes. Le d\u00e9ploiement termin\u00e9, vous pourrez parcourir l\u2019application en utilisant l\u2019adresse IP indiqu\u00e9e sous \u00ab&nbsp;AppAddress&nbsp;\u00bb, sur l\u2019onglet \u00ab&nbsp;Outputs&nbsp;\u00bb.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"460\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-7.png\" alt=\"\" class=\"wp-image-44689\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-7.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-7-300x142.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-7-768x362.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>Pour acc\u00e9der \u00e0 l\u2019instance EC2 qui vient d\u2019\u00eatre cr\u00e9\u00e9e par SSH, utilisez la m\u00eame adresse IP. Sur l\u2019interpr\u00e9teur ou le terminal utilisant SSH, ex\u00e9cutez la commande que voici&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>La commande qui suit affichera les journaux de l\u2019installation&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f \/var\/log\/cloud-init-output.log<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"871\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-8.png\" alt=\"\" class=\"wp-image-44691\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-8.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-8-300x268.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-8-768x686.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<p>Lorsque l\u2019installation est compl\u00e8te, il est possible de consulter les journaux de l\u2019application web dorsale avec la commande que voici :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker logs -f $(sudo docker ps -qf ancestor=ai-starter-ai-backend-starter)<\/code><\/pre>\n\n\n\n<p>Ensuite, ouvrez l\u2019application avec l\u2019adresse IP indiqu\u00e9e \u00e0 \u00ab AppAddress \u00bb.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"550\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-9.png\" alt=\"\" class=\"wp-image-44693\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-9.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-9-300x169.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-9-768x433.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-70872cc5982afa83b773f26699ed7a6a\">D\u00e9monstration de la technologie<\/h3>\n\n\n\n<p>Cette partie vous montre comment fonctionne l\u2019AI Web Starter. Cette technologie s\u2019av\u00e8re particuli\u00e8rement int\u00e9ressante parce qu\u2019elle sert de point de d\u00e9part au d\u00e9veloppement d\u2019applications web int\u00e9grant d\u00e9j\u00e0 les principales fonctionnalit\u00e9s. L\u2019utilisateur peut donc consacrer plus de temps \u00e0 y ajouter les fonctionnalit\u00e9s caract\u00e9ristiques \u00e0 son entreprise.<\/p>\n\n\n\n<p>La d\u00e9monstration illustra les fonctionnalit\u00e9s offertes dans AI Web Starter.<\/p>\n\n\n\n<p><strong>Connexion et inscription<\/strong><\/p>\n\n\n\n<p>L\u2019utilisateur peut s\u2019inscrire et se connecter \u00e0 la plateforme. Il est \u00e9galement possible de modifier le mot de passe. Dans ce cas, l\u2019utilisateur recevra un courriel qui l\u2019am\u00e8nera \u00e0 la page \u00ab Forgot Password \u00bb (mot de passe oubli\u00e9), sur laquelle il pourra en choisir un nouveau.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"641\" height=\"576\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-10.png\" alt=\"\" class=\"wp-image-44695\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-10.png 641w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-10-300x270.png 300w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Tableau \u00ab clavardage et conversations \u00bb<\/strong><\/p>\n\n\n\n<p>L\u2019utilisateur pourra communiquer avec divers GML de source ouverte ou priv\u00e9s par Huggingface et OpenAI. Le mode \u00ab requ\u00eate simple \u00bb (Single Prompt) permet de comparer les diff\u00e9rents mod\u00e8les en posant une question et en obtenant une r\u00e9ponse. Le mode conversationnel compare les conversations \u00e9chang\u00e9es avec les diff\u00e9rents mod\u00e8les qui les conservent et avec ceux qui consultent les messages les plus r\u00e9cents (le nombre de messages conserv\u00e9s dans la m\u00e9moire du GML est d\u00e9termin\u00e9 dans le programme principal et l\u2019augmenter co\u00fbtera plus cher, puisque chaque message suppl\u00e9mentaire enregistr\u00e9 sera trait\u00e9 chaque fois qu\u2019on pose une question) pour formuler la r\u00e9ponse. L\u2019usage de cette fonctionnalit\u00e9 exige la saisie des cl\u00e9s de l\u2019API dans le fichier .env du programme dorsal.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"979\" height=\"686\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-11.png\" alt=\"\" class=\"wp-image-44697\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-11.png 979w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-11-300x210.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-11-768x538.png 768w\" sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Param\u00e9trage<\/strong><\/p>\n\n\n\n<p>Cette page permet \u00e0 l\u2019utilisateur de modifier ses donn\u00e9es personnelles et son mot de passe.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"979\" height=\"484\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-12.png\" alt=\"\" class=\"wp-image-44699\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-12.png 979w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-12-300x148.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-12-768x380.png 768w\" sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Biblioth\u00e8que de composants<\/strong><\/p>\n\n\n\n<p>Sur cette page figure une partie des \u00e9l\u00e9ments r\u00e9utilisables dans le d\u00e9p\u00f4t frontal. Elle s\u2019av\u00e8rera particuli\u00e8rement utile pour ceux qui clonent le Propulseur afin d\u2019acc\u00e9l\u00e9rer le d\u00e9veloppement de leur propre application et souhaiteraient se servir de leurs propres composants. Pour voir \u00e0 quoi ressemble une solide biblioth\u00e8que rassemblant de nombreux de composants React tr\u00e8s fonctionnels, visitez les biblioth\u00e8ques d\u2019\u00e9l\u00e9ments d\u2019interface utilisateur comme Mantine ou Shadcn.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"979\" height=\"669\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-13.png\" alt=\"\" class=\"wp-image-44701\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-13.png 979w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-13-300x205.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-13-768x525.png 768w\" sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-9b5f7d33aacebcb08e0fbb3a6b66166b\">Conclusion<\/h3>\n\n\n\n<p>Puisque toutes les ressources ont \u00e9t\u00e9 cr\u00e9\u00e9es avec CloudFormation, les lib\u00e9rer est un jeu d\u2019enfant. Vous n\u2019aurez qu\u2019\u00e0 s\u00e9lectionner Delete (supprimer) dans la pile CloudFormation. L\u2019op\u00e9ration demandera quelques minutes.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"465\" src=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-14.png\" alt=\"\" class=\"wp-image-44703\" srcset=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-14.png 975w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-14-300x143.png 300w, https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image-14-768x366.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Facteurs \u00e0 prendre en consid\u00e9ration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-c4b163c73fd3ec745a2b669b2b19a698\">Autres possibilit\u00e9s de d\u00e9ploiement<\/h3>\n\n\n\n<p>Le code de l\u2019application mod\u00e8le est disponible dans le d\u00e9p\u00f4t public Github accessible quand on clique le lien ci-dessous. Nous vous encourageons \u00e0 cloner ce d\u00e9p\u00f4t et \u00e0 vous en servir comme point de d\u00e9part pour vos projets, avec la m\u00e9thode de d\u00e9ploiement que vous privil\u00e9giez. Apr\u00e8s clonage, l\u2019utilisateur pourra cr\u00e9er un ou plusieurs d\u00e9p\u00f4ts Github publics ou priv\u00e9s (selon l\u2019architecture monorepo choisie) et y ins\u00e9rer le code de l\u2019application.<br><br><a href=\"https:\/\/github.com\/anthonyfierrosoftware\/ai-starter\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/anthonyfierrosoftware\/ai-starter<\/a><\/p>\n\n\n\n<p>L\u2019utilisateur qui aimerait acc\u00e9l\u00e9rer le d\u00e9veloppement d\u2019une application web compl\u00e8te sans IA pourra \u00e9galement se servir d\u2019AI Web Starter, mais sans la fonctionnalit\u00e9 du GML. Une fois l\u2019application clon\u00e9e, on suivra les \u00e9tapes d\u00e9crites dans la documentation de Django pour retrancher l\u2019appli REST aiModule du cadriciel frontal Django.<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.djangoproject.com\/en\/5.0\/howto\/delete-app\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.djangoproject.com\/en\/5.0\/howto\/delete-app<\/a><\/p>\n\n\n\n<p>Du c\u00f4t\u00e9 frontal, il suffira de supprimer les composants du r\u00e9pertoire \u00ab components\/LLMs \u00bb et de remplacer la page d\u2019accueil actuelle par une autre. Dans le dossier \u00ab state \u00bb (\u00e9tat), retranchez modelsConfig.js et dans routes.js, supprimez les fonctions fetchConversations et sendChat.<\/p>\n\n\n\n<p>Pour red\u00e9ployer le d\u00e9p\u00f4t qui vient d\u2019\u00eatre clon\u00e9 avec CloudFormation, proc\u00e9dez comme suit :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>remplacez les URL de Github dans le fichier install.sh file et le fichier cloudformation.json par l\u2019URL du nouveau d\u00e9p\u00f4t;<\/li>\n\n\n\n<li>t\u00e9l\u00e9versez le nouveau fichier CloudFormation sur S3 pour appliquer le nouveau mod\u00e8le CloudFormation.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-9cfd658cebfa4374629230ee7c2a3853\">Technologies de rechange<\/h3>\n\n\n\n<p>AI Web Starter a \u00e9t\u00e9 con\u00e7u afin d\u2019\u00eatre facile \u00e0 adapter. L\u2019utilisateur pourra donc se servir du GML, du cadriciel frontal, du cadriciel dorsal, de la base de donn\u00e9es ou du fournisseur d\u2019h\u00e9bergement de son choix en vue d\u2019un projet pr\u00e9cis.<\/p>\n\n\n\n<p>Ce sont les contraintes du projet qui d\u00e9termineront les cadriciels, les outils et les services qui conviendront le mieux.<\/p>\n\n\n\n<p><strong>Solutions de remplacement frontales<\/strong><\/p>\n\n\n\n<p>AI Web Starter a pour application frontale une application client. NextJS ou d\u2019autres cadriciels pourront prendre en charge les activit\u00e9s du c\u00f4t\u00e9 serveur. L\u2019application frontale d\u2019AI Web Starter est r\u00e9dig\u00e9e en JavaScript. Cependant, on pourra aussi recourir \u00e0 Typescript, un surensemble de JavaScript, pour le projet.<\/p>\n\n\n\n<p>Ceux qui aimeraient approfondir la diff\u00e9rence entre le rendu serveur et le rendu client ou d\u2019autres pratiques exemplaires relatives au d\u00e9veloppement d\u2019applications web sont convi\u00e9s \u00e0 lire notre blogue \u00ab&nbsp;<em>Getting Started with Web Technologies<\/em>&nbsp;\u00bb (l\u2019ABC des technologies web) ici&nbsp;: <a href=\"https:\/\/www.1280labs.ca\/blog\/how-to-build-a-tech-product\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.1280labs.ca\/blog\/how-to-build-a-tech-product<\/a>.<\/p>\n\n\n\n<p>Sinon, on pourra recourir \u00e0 une autre application web frontale, voire \u00e0 un cadriciel mobile pour communiquer avec l\u2019API dorsale. \u00c9tant modulaires, les diff\u00e9rents \u00e9l\u00e9ments du Propulseur se configurent ais\u00e9ment pour fonctionner avec d\u2019autres technologies.<\/p>\n\n\n\n<p><strong><strong>Solutions de remplacement dorsales<\/strong><\/strong><\/p>\n\n\n\n<p>Le cadriciel REST Django se pr\u00eate bien au prototypage, car il est accompagn\u00e9 d\u2019un syst\u00e8me s\u00e9curis\u00e9 de gestion des utilisateurs et d\u2019une console admin pr\u00eate \u00e0 l\u2019emploi. Ses autres fonctionnalit\u00e9s qui, normalement, devraient s\u2019ajouter au fil du d\u00e9veloppement de l\u2019application web, conviendront \u00e0 de nombreux projets. On encourage l\u2019utilisateur \u00e0 choisir le cadriciel dorsal avec lequel il se sent le plus \u00e0 l\u2019aise.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Usages recommand\u00e9s du cadriciel REST Django<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u00c9laboration rapide d\u2019une API<\/strong><br>&#8211; <strong>Situation&nbsp;:<\/strong> vous devez cr\u00e9er des API RESTful vite et efficacement.<br>&#8211; <strong>Raison&nbsp;:<\/strong> le cadriciel propose une puissante trousse \u00e0 outils, assez souple pour engendrer des API avec le plus petit code passe-partout possible. Le d\u00e9veloppeur pourra donc se concentrer sur la d\u00e9finition des points terminaux et la logique des activit\u00e9s au lieu de perdre du temps sur les d\u00e9tails \u00e0 la base.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n\n\n\n<li><strong>Importante s\u00e9rialisation et validation<\/strong><br>&#8211; <strong>Situation&nbsp;:<\/strong> votre API doit s\u00e9rialiser et valider beaucoup de donn\u00e9es.<br>&#8211; <strong>Raison&nbsp;:<\/strong> Django comprend de puissants s\u00e9rialiseurs et validateurs qui simplifieront la conversion des diff\u00e9rents types de donn\u00e9es (p.&nbsp;ex., mod\u00e8les Django) en format JSON ou dans un autre format, ce qui en garantira l\u2019int\u00e9grit\u00e9 et l\u2019uniformit\u00e9.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n\n\n\n<li><strong>Authentification et autorisations<\/strong><br>&#8211; <strong>Situation&nbsp;:<\/strong> l\u2019API doit comprendre des moyens d\u2019authentification et d\u2019autorisation.<br>&#8211; <strong>Raison&nbsp;:<\/strong> le cadriciel supporte diverses m\u00e9thodes d\u2019authentification (p.&nbsp;ex., avec jetons, OAuth) et politiques d\u2019autorisation granulaires, ce qui permet de s\u00e9curiser plus facilement les points terminaux.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n\n\n\n<li><strong>API explorable<\/strong><br>&#8211; <strong>Situation&nbsp;:<\/strong> vous souhaitez cr\u00e9er une interface conviviale qui permettra au d\u00e9veloppeur d\u2019explorer l\u2019API et d\u2019interagir avec elle.<br>&#8211; <strong>Raison&nbsp;:<\/strong> Django comprend une fonctionnalit\u00e9 \u00ab&nbsp;API explorable&nbsp;\u00bb qui cr\u00e9e une interface HTML navigable en fonction des points terminaux. Le d\u00e9veloppeur pourra donc tester ais\u00e9ment l\u2019API, la d\u00e9boguer et en d\u00e9couvrir les capacit\u00e9s.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Envisagez un autre cadriciel dans les cas que voici.<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Architecture de microservices<\/strong><br>&#8211; <strong>Situation\u00a0:<\/strong> vous b\u00e2tissez un syst\u00e8me r\u00e9parti compos\u00e9 de microservices et avez besoin d\u2019un cadriciel l\u00e9ger et extensible pour votre API.<br>&#8211; <strong>Solution\u00a0:<\/strong> songez \u00e0 un cadriciel peu encombrant comme FastAPI ou Node.js avec Express.js. Ils vous donneront la souplesse et la performance qu\u2019exige une architecture reposant sur des microservices.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n\n\n\n<li><strong>API en temps r\u00e9el<\/strong><br>&#8211; <strong>Situation\u00a0:<\/strong> vous devez cr\u00e9er des API qui op\u00e8rent en temps r\u00e9el avec des fonctionnalit\u00e9s comme WebSockets ou des \u00e9v\u00e9nements engendr\u00e9s par serveur.<br>&#8211; <strong>Solution\u00a0:<\/strong> songez \u00e0 un cadriciel sp\u00e9cialement con\u00e7u pour les communications en temps r\u00e9el comme Django Channels, Socket.IO (avec Node.js) ou FastAPI, pour le traitement asynchrone des requ\u00eates.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n\n\n\n<li><strong>API en GraphQL<\/strong><br>&#8211; <strong>Situation\u00a0:<\/strong> vous pr\u00e9f\u00e9reriez b\u00e2tir l\u2019API avec GraphQL plut\u00f4t qu\u2019avec des points terminaux RESTful.<br>&#8211; <strong>Solution\u00a0:<\/strong> recourez \u00e0 un cadriciel adapt\u00e9 \u00e0 GraphQL et \u00e0 des biblioth\u00e8ques comme celle des serveurs Apollo (Node.js), Graphene (Python) ou Ariadne (Python), qui proposent des outils permettant de d\u00e9finir et de consulter les API en GraphQL.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n\n\n\n<li><strong>Performance et extensibilit\u00e9<\/strong><br>&#8211; <strong>Situation\u00a0:<\/strong> vous pr\u00e9voyez un trafic important ou aimeriez appliquer des exigences de performance tr\u00e8s rigoureuses \u00e0 votre API.<br>&#8211; <strong>Solution\u00a0:<\/strong> pr\u00e9f\u00e9rez les cadriciels asynchrones comme FastAPI (Python), Tornado (Python) ou Node.js dot\u00e9s de biblioth\u00e8ques asynchrones offrant une meilleure performance et une plus grande extensibilit\u00e9 que le mod\u00e8le demande-r\u00e9ponse asynchrones de Django.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n\n\n\n<li><strong>Adaptation et contr\u00f4le<\/strong><br>&#8211; <strong>Situation\u00a0:<\/strong> vous devez contr\u00f4ler \u00e9troitement l\u2019architecture et le fonctionnement de l\u2019API.<br>&#8211; <strong>Solution\u00a0:<\/strong> envisagez un cadriciel minimaliste comme Flask (Python) ou une solution sur mesure, adapt\u00e9e \u00e0 vos exigences. Il vous donnera une plus grande marge de man\u0153uvre et un meilleur contr\u00f4le, m\u00eame si le d\u00e9veloppement vous demande plus de temps.\n<ol class=\"wp-block-list\"><\/ol>\n<\/li>\n<\/ol>\n\n\n\n<p><strong><strong>Bases de donn\u00e9es de remplacement<\/strong><\/strong><\/p>\n\n\n\n<p>AI Web Starter utilise une base de donn\u00e9es PostgresSQL, soit celle recommand\u00e9e avec le cadriciel REST Django. N\u00e9anmoins, l\u2019utilisateur est encourag\u00e9 \u00e0 choisir la base de donn\u00e9es la plus facile pour lui. Une base de donn\u00e9es vectorielle comme Pinecone laissera le GML exploiter ais\u00e9ment les informations contenues dans l\u2019identifiant des utilisateurs tout en traitant les requ\u00eates. On recourt habituellement aux bases de donn\u00e9es vectorielles avec une base de donn\u00e9es ordinaire pour ne conserver que les donn\u00e9es tri\u00e9es par le robot conversationnel.<\/p>\n\n\n\n<p>On pourrait aussi envisager une base de donn\u00e9es actionn\u00e9e par SQL plut\u00f4t qu\u2019une n\u2019y recourant pas tel MongoDB.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-ef557835f575f5905a62285043709b76\">S\u00e9curit\u00e9<\/h3>\n\n\n\n<p>Quand on d\u00e9ploie une application web, il est capital d\u2019instaurer plusieurs couches de protection. Les recommandations qui suivent ne sont toutefois que des suggestions et pourraient ne pas convenir \u00e0 votre projet.<\/p>\n\n\n\n<p>Sur AWS, assurez-vous d\u2019utiliser les r\u00f4les et les politiques de gestion des identit\u00e9s et des acc\u00e8s (IAM) afin de restreindre les permissions, de permettre l\u2019authentification multifactorielle (MFA) et de changer r\u00e9guli\u00e8rement les cl\u00e9s d\u2019acc\u00e8s. Servez-vous des groupes de s\u00e9curit\u00e9 et des listes de contr\u00f4le d\u2019acc\u00e8s du r\u00e9seau pour r\u00e9guler le trafic entrant et sortant, ainsi que du bouclier AWS et du pare-feu des applications web (WAF) pour bloquer les attaques DDoS et l\u2019exploitation des applications web. Chiffrez les donn\u00e9es inactives avec le service de gestion des cl\u00e9s (KMS) d\u2019AWS et celles en transit avec SSL\/TLS.<\/p>\n\n\n\n<p>Pour en savoir plus sur la configuration d\u2019un pare-feu WAF sur AWS, on lira ce qui suit&nbsp;:<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.aws.amazon.com\/waf\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.aws.amazon.com\/waf<\/a><\/p>\n\n\n\n<p>En ce qui concerne le cadriciel dorsal Django, priorisez les param\u00e8tres de s\u00e9curit\u00e9 comme l\u2019application de variables environnementales aux informations sensibles, le param\u00e9trage DEBUG=False pendant la production et une configuration ad\u00e9quate des journaux. Recourez aux fonctions de s\u00e9curit\u00e9 int\u00e9gr\u00e9es \u00e0 Django comme les mesures de protection contre la falsification des requ\u00eates intersites (CSRF), l\u2019injection de code indirecte (XSS) et l\u2019injection de code SQL quand vous ajoutez du code au cadriciel dorsal. Pour la partie frontale React, s\u00e9curisez les demandes de l\u2019API avec des jetons d\u2019authentification, utilisez HTTPS pour toutes les communications et \u00e9purez les entr\u00e9es de l\u2019utilisateur pour pr\u00e9venir les attaques XSS. Mettez r\u00e9guli\u00e8rement \u00e0 jour les d\u00e9pendances des tiers et auscultez-les afin de rep\u00e9rer les vuln\u00e9rabilit\u00e9s.<\/p>\n\n\n\n<p>Lisez la documentation d\u2019AWS sur la s\u00e9curit\u00e9, les guides Django et OWASP Top Ten pour conna\u00eetre les principaux risques li\u00e9s \u00e0 une application web.<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.aws.amazon.com\/security\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.aws.amazon.com\/security<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.djangoproject.com\/en\/5.0\/topics\/security\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.djangoproject.com\/en\/5.0\/topics\/security<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/owasp.org\/www-project-top-ten\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/owasp.org\/www-project-top-ten<\/a><a href=\"https:\/\/owasp.org\/www-project-top-ten\">https:\/\/owasp.org\/www-project-top-ten<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-9243d3369a1331af0ce1208d3d408ce2\">Interface utilisateur (IU)<\/h3>\n\n\n\n<p>La partie frontale d\u2019AI Web Starter ne permet pas l\u2019application de paquets cosm\u00e9tiques, car elle est r\u00e9dig\u00e9e en vanilla JS\/React. L\u2019id\u00e9e \u00e9tait de la simplifier au maximum afin que l\u2019utilisateur puisse y int\u00e9grer l\u2019IU d\u2019autres parties ou d\u2019autres biblioth\u00e8ques frontales comme Tailwind, Bootstrap ou Material UI en vue d\u2019acc\u00e9l\u00e9rer le d\u00e9veloppement.<\/p>\n\n\n\n<p>On encourage aussi l\u2019utilisateur \u00e0 explorer la conversion \u00e9ventuelle des fichiers JavaScript en Typescript.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-c199955edc0af000b79c1eae524a7c29\">API<\/h3>\n\n\n\n<p>\u00c9largir l\u2019API dorsale est un jeu d\u2019enfant. Le projet REST Django consiste en applications qui g\u00e8rent leurs propres routes, mod\u00e8les et s\u00e9rialiseurs pour en cr\u00e9er de nouveaux ou modifier les applications existantes qui multiplieront les fonctionnalit\u00e9s dorsales. Pour en savoir plus sur le d\u00e9veloppement avec le cadriciel REST Django, on lira ce qui suit&nbsp;:<br><br><a href=\"https:\/\/www.django-rest-framework.org\/tutorial\/quickstart\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.django-rest-framework.org\/tutorial\/quickstart\/<\/a><\/p>\n\n\n\n<p>Le projet a \u00e9t\u00e9 con\u00e7u pour \u00eatre modulaire et l\u2019utilisateur est invit\u00e9 \u00e0 remplacer l\u2019application dorsale par le cadriciel de son choix ou par les outils qui r\u00e9pondront le mieux aux exigences du projet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-3cd2d37187d096b6c337e094dddcc1c6\">Co\u00fbt et extensibilit\u00e9<\/h3>\n\n\n\n<p>Si on recourt \u00e0 CloudFormation pour d\u00e9ployer la Solution type, le co\u00fbt variera avec les ressources d\u2019AWS employ\u00e9es. Pour conna\u00eetre le prix le plus r\u00e9cent des services AWS, on prendra connaissance de ce qui suit.<\/p>\n\n\n\n<p>SES: <a href=\"https:\/\/aws.amazon.com\/ses\/pricing\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/aws.amazon.com\/ses\/pricing\/<\/a><\/p>\n\n\n\n<p>EC2: <a href=\"https:\/\/aws.amazon.com\/ec2\/pricing\/on-demand\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/aws.amazon.com\/ec2\/pricing\/on-demand\/<\/a><\/p>\n\n\n\n<p>La Solution type permet d\u2019essayer AI Starter App ou un autre GML. Si vous la clonez pour qu\u2019elle devienne la base de votre projet, chaque \u00e9l\u00e9ment de son architecture pourra \u00eatre d\u00e9ploy\u00e9 sur le service de votre choix. Chaque service, qu\u2019il vienne d\u2019AWS ou d\u2019un fournisseur ind\u00e9pendant, pr\u00e9sentera ses propres avantages et inconv\u00e9nients dont il faudra tenir compte selon la nature de l\u2019application en train d\u2019\u00eatre b\u00e2tie et la mani\u00e8re dont les ressources devront \u00eatre r\u00e9parties. <\/p>\n\n\n\n<p>Chaque GML suppose aussi des co\u00fbts en fonction du nombre de jetons entrants et sortants utilis\u00e9s. Les jetons entrants reposent sur la quantit\u00e9 de contenu inject\u00e9e dans le GML avec la requ\u00eate. Les jetons sortants reposent sur la quantit\u00e9 de contenu fournie dans la r\u00e9ponse. Pour conna\u00eetre les prix les plus r\u00e9cents sur les GML employ\u00e9s dans AI Starter App, on consultera ce qui suit&nbsp;:<\/p>\n\n\n\n<p><a href=\"https:\/\/openai.com\/api\/pricing\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/openai.com\/api\/pricing<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/mistral.ai\/technology\/#pricing\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/mistral.ai\/technology\/#pricing<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.anthropic.com\/api\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.anthropic.com\/api<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-92ac9c1d01e0b6b418eb848f65297778\">Licence d\u2019exploitation<\/h3>\n\n\n\n<p>Ce projet et les paquets utilis\u00e9s sont de source ouverte. N\u2019importe qui peut s\u2019en servir en vertu de la licence du MIT.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color has-link-color wp-elements-4686f7e503234d87cad5766e63e47b10\">Codes de lancement<\/h3>\n\n\n\n<p>N\u2019importe quelle organisation qui souhaiterait cloner AI Starter App pour d\u00e9velopper une application en trouvera le code dans le d\u00e9p\u00f4t Github indiqu\u00e9 ci-dessous.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/anthonyfierrosoftware\/ai-starter\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/anthonyfierrosoftware\/ai-starter<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-cyan-color has-text-color\" id=\"glossary\">Glossaire<\/h3>\n\n\n\n<p>Voici la d\u00e9finition des termes ou expressions qu\u2019on retrouve dans le document.<\/p>\n\n\n\n<p><em><em>Actualisez ou remplacez la liste ci-dessous en fonction du sujet couvert par la Solution type.<\/em><\/em><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong><strong>Terme ou expression<\/strong><\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td><strong>API<\/strong><\/td><td>Interface de programmation d\u2019application<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Composants Le tableau ci-dessous pr\u00e9sente de fa\u00e7on succincte les principaux \u00e9l\u00e9ments dont la Solution type est constitu\u00e9e. Composant Description Environnement [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"parent":44022,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-44674","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 : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel - 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\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Solution type : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel - CANARIE\" \/>\n<meta property=\"og:description\" content=\"Composants Le tableau ci-dessous pr\u00e9sente de fa\u00e7on succincte les principaux \u00e9l\u00e9ments dont la Solution type est constitu\u00e9e. Composant Description Environnement [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/\" \/>\n<meta property=\"og:site_name\" content=\"CANARIE\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-17T15:25:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image.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\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/\",\"name\":\"Solution type : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel - CANARIE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/image.png\",\"datePublished\":\"2024-12-17T15:22:59+00:00\",\"dateModified\":\"2024-12-17T15:25:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/image.png\",\"contentUrl\":\"https:\\\/\\\/www.canarie.ca\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/image.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\\\/#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 : D\u00e9tection des anomalies dans les s\u00e9ries chronologiques par l\u2019IA\",\"item\":\"https:\\\/\\\/www.canarie.ca\\\/fr\\\/nuage\\\/catalogue\\\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Solution type : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel\"}]},{\"@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 : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel - 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\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/","og_locale":"fr_FR","og_type":"article","og_title":"Solution type : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel - CANARIE","og_description":"Composants Le tableau ci-dessous pr\u00e9sente de fa\u00e7on succincte les principaux \u00e9l\u00e9ments dont la Solution type est constitu\u00e9e. Composant Description Environnement [&hellip;]","og_url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/","og_site_name":"CANARIE","article_modified_time":"2024-12-17T15:25:30+00:00","og_image":[{"url":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image.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\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/","url":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/","name":"Solution type : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel - CANARIE","isPartOf":{"@id":"https:\/\/www.canarie.ca\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/#primaryimage"},"image":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/#primaryimage"},"thumbnailUrl":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image.png","datePublished":"2024-12-17T15:22:59+00:00","dateModified":"2024-12-17T15:25:30+00:00","breadcrumb":{"@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/#primaryimage","url":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image.png","contentUrl":"https:\/\/www.canarie.ca\/wp-content\/uploads\/2024\/12\/image.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/solution-type-ai-starter-app-plateforme-web-de-demarrage-alimentee-par-robot-conversationnel\/#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 : D\u00e9tection des anomalies dans les s\u00e9ries chronologiques par l\u2019IA","item":"https:\/\/www.canarie.ca\/fr\/nuage\/catalogue\/plan-de-vol-pour-detection-des-anomalies-dans-les-series-chronologiques-par-lia\/"},{"@type":"ListItem","position":5,"name":"Solution type : AI\u00a0Starter App, plateforme web de d\u00e9marrage aliment\u00e9e par robot conversationnel"}]},{"@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\/44674","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=44674"}],"version-history":[{"count":6,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/44674\/revisions"}],"predecessor-version":[{"id":44726,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/44674\/revisions\/44726"}],"up":[{"embeddable":true,"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/pages\/44022"}],"wp:attachment":[{"href":"https:\/\/www.canarie.ca\/fr\/wp-json\/wp\/v2\/media?parent=44674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}