Qu’est-ce qu’une API (interface applicative de programmation) ?
Si leur présence est de plus en plus prégnante dans les solutions informatiques d’entreprise, rares sont celles et ceux qui comprennent précisément de quoi il retourne. Les APIs sont pourtant au service de chacun. Au-delà de rendre la vie des développeurs plus facile, elles permettent avant tout d’offrir aux entreprises un accès à des technologies jusqu’alors hors de portée. Définition.
« Nous vivons déjà dans une économie de l’API », expliquait dès 2017 Paolo Malinverno, directeur de la recherche au sein du cabinet Garner. Il allait même à l’époque jusqu’à expliquer que les DSI devait désormais penser au-delà du développement de « simples » applications pour bâtir l’ensemble de l’architecture de leur SI grâce à elles. Mais d’abord, qu’entend-on par API ?
Qu’est-ce qu’une API ?
Commençons par la définition. Une API (Application Programming Interface) est une bibliothèque de fonctions prêtes à l’emploi mise à disposition par un logiciel. Concrètement, l’API fait l’interface entre deux systèmes, pour leur permettre de travailler l’un avec l’autre et d’échanger des données. Et pour cela, elle ne nécessite aucune programmation. Exemple : pour développer des logiciels qui intègrent de la reconnaissance d’images, il suffit de faire appel à l’API computer vision de Microsoft. Pas besoin de recruter un data scientist, qui passera des mois à développer et entraîner un algorithme de reconnaissance d’image. De très nombreux services web fonctionnent aujourd’hui de cette manière : les systèmes de paiements disponibles sur les sites e‑commerce sont généralement des APIs par exemple.
« Faire appel » signifie ici « écrire dans votre programme (quel que soit le langage utilisé) que l’ensemble des actions à réaliser sont instruites, détaillées et déjà programmées dans l’API de Microsoft ». Le développeur écrit donc un code « à trou », en python par exemple, et le blanc est complété par l’API. Les protocoles d’échanges entre les API sont standardisés ce qui facilite cette mécanique. Votre application va donc interagir directement avec l’application cognitive, sur les serveurs de Microsoft et échanger des données avec elle. De quoi proposer à ses clients des solutions ultra-performantes tout en réalisant un gain de temps et d’argent. Aujourd’hui, derrière un grand nombre d’idées ou de besoins, se trouve une API déjà prête à y répondre pour vous aider à parvenir à vos fins simplement.
« L’idée est de donner aux entreprises, aux grandes comme aux petites, des outils qu’elles n’auraient pas pu concevoir elles-mêmes, » explique Laurent Ellerbach, Principal Software Engineer Manager chez Microsoft. Des algorithmes d’intelligence artificielle, notamment. « C’est notamment le cas des APIs cognitives, précise-t-il. Prenons l’exemple d’une entreprise souhaitant analyser ses tickets de notes de frais et y reconnaître automatiquement tous les attributs qui la composent. Elle pourra utiliser une API de reconnaissance de formulaire déjà prévue à cet effet comme Microsoft form recognizer pour créer son application. Il en va de même pour tous les formats possibles d’informations, illustre Laurent Ellerbach. Les possibilités sont exponentielles par rapport à ce que nous avions il y a 20 ou 30 ans ! »
Pourquoi utiliser les APIs REST ?
Avec l’arrivée du cloud computing, l’informatique a entièrement basculé dans un univers d’interopérabilité. Des centaines de milliers d’APIs sont désormais disponibles et alimentent nos applications mobiles notamment. Microsoft propose des outils sécurisés pour les gérer de manière unifiée et également des outils pour en créer comme les Azure Functions. Le cloud a permis d’optimiser leur mise en œuvre et Microsoft en est un des acteurs majeurs. En effet, jusqu’à il y a quelques temps, il fallait installer ou charger l’intégralité de l’application programming interface (API) pour en utiliser parfois seulement une infime partie. Ce qui, dans le monde du web, peut vite se révéler contraignant. Grâce aux APIs REST (Representational State Transfer), il est possible de n’utiliser que les services nécessaires à la demande et à distance. Tout cela sans s’inquiéter pour la sécurité de ses données.
Imaginons une entreprise de logistique qui cherche à se doter d’un outil logiciel pour compter des cartons. Au lieu de développer un dispositif de reconnaissance d’image, étape compliquée et chère, elle s’appuiera sur des services déjà existants. Il lui suffira d’écrire un maximum 5 à 10 lignes de code. Le service cognitif de reconnaissance d’images analysera alors les données de l’entreprise, pour donner la réponse adéquate à l’utilisateur. « L’autre avantage est que ces fonctionnalités sont standardisées, soit par le W3C, soit par les industriels eux-mêmes et qu’il suffit d’en connaître le mécanisme pour être en mesure d’appeler n’importe quelle API REST », précise Laurent Ellerbach.
Des APIs capables d’apprentissage pour des traitement personnalisés
Aujourd’hui, un grand nombre d’algorithmes sont accessibles en open source sur GitHub, où la communauté fait évoluer les APIs. Reste que si notre entreprise de logistique cherche à vérifier l’intégrité de ses produits avant leur emballage, il lui faudra adapter l’API à son contexte particulier. On parle ici de l’API custom vision, qui permet de faire de la reconnaissance visuelle. Cette fois, on recourt au machine learning, voire au deep learning pour aider l’application à apprendre puis identifier les malfaçons.
« Une API de reconnaissance visuelle est déjà entraînée pour reconnaître des choses simples comme un avion, une maison, une fourchette, une voiture, etc. En revanche, si je veux qu’elle reconnaisse un modèle de véhicule en particulier, il va falloir que je le lui apprenne. Il faudra lui présenter des images de ce fameux modèle, en indiquant que c’est le bon, et des images d’autres modèles, en indiquant que ce ne sont pas les bons. Chez Microsoft nous proposons ces deux types de solutions pour la quasi-totalité de nos services. Un client peut soit opter pour un modèle déjà entraîné, soit décider de spécialiser un modèle sur son cas d’usage spécifique. Suivant les services, quelques dizaines d’éléments spécifiques seulement sont nécessaires pour avoir déjà un modèle suffisamment performant. Leur utilisation ne nécessite aucune notion d’intelligence artificielle, n’importe quel développeur peut s’en saisir en se plongeant dans la documentation ! », rappelle Laurent Ellerbach.
Quelques cas pratiques pour mieux comprendre
Dans le domaine bancaire, conformité oblige, les échanges des traders doivent être consignés dans des fichiers textes. Les développeurs dans ce secteur peuvent ici utiliser des APIs cognitives de reconnaissance vocale, voice-to-text, pour concevoir une offre de transcription automatique des conversations. Avec un module de speaker diarization, l’algorithme peut même séparer les intervenants. Grâce à des modèles personnalisés, il pourra même reconnaître les acronymes et autres termes spécifiques propres à la profession. Les analyses se font en temps réel et les outils sont renseignés de façon semi-automatique. L’humain reste toujours en bout de chaîne pour valider, mais l’expérience utilisateur est largement améliorée.
Dans le domaine de l’assurance, pour le traitement des accidents, les photos transmises sont soumises à une reconnaissance pour réaliser une première estimation des dégâts. Il est également possible de faire une pré-qualification des dossiers grâce au transfer learning, en apprenant à l’API à faire la différence entre une rayure et une porte enfoncée. Les dossiers peuvent ensuite être orientés vers les bonnes personnes. « Si une compagnie d’assurance ne détache pas un expert pour une rayure, il s’agit malgré tout de valider le fait que c’en est bien une ! », complète Laurent Ellerbach.
Lire aussi Zelros déploie son assistant intelligent à destination des assureurs
Dans le secteur de l’énergie cette fois, la recherche d’usure des isolateurs de caténaires se fait à l’aide de drones. Ces derniers suivent les lignes. Ici, les services, identiques à ceux utilisés dans notre exemple de Supply Chain, sont extraits de l’API et installés directement dans l’automate. On parle d’Intelligent Edge. Les collaborateurs en charge de la maintenance peuvent alors mener des actions ciblées pour réparer les matériaux abimés.
Lire aussi Êtes-vous entrés dans l’ère de l’Intelligent Edge ?
« Nous avons également mis en place des solutions d’aide au traitement des appels à projets pour accélérer la prise de décision, raconte Laurent Ellerbach. Avec l’API Analyse de Texte, nous séparons les paragraphes à caractère légaux de ceux à teneur technique pour préremplir derrière des documents permettant de savoir si l’entreprise répond ou non à l’appel d’offre. Dans ce cas de figure nous utilisons l’API cognitive de texte LUIS1 afin de faire notamment du reinforcement learning. À partir d’un certain nombre de phrases nous pouvons voir derrière une intention ainsi que les éléments qui vont avec. » Tout cela en REST API, à distance et avec des coûts très faibles. « Reconnaître des petits éléments pourrait prendre plusieurs mois ! On parle désormais d’une semaine et avec des performances supérieures et des conditions ultra-flexibles », conclut Laurent Ellerbach.
La clé pour bien utiliser les API ou même pour les construire ? Une bonne documentation, claire, concise et complète. C’est elle qui offrira aux développeurs qui veulent l’utiliser une expérience optimale. Ces éléments lui indiquent toutes les étapes et les règles pour exploiter tout le potentiel de l’API.