GraphQL expliqué simplement en 5 minutes

Logo de GraphQL

2012.

Les statistiques du web mobile commencent à exploser.

Les entreprises de la tech flairent le filon des applications web responsives design accessibles via les navigateurs web.

Parmi elles, Facebook.

Sa première web app pour iOS est créée la même année. Sauf que les experts de l’expérience utilisateur du réseau social remarquent vite un gros problème : l’interface-utilisateur n’est pas fluide.

Les ingénieurs de la firme se creusent les méninges… et décident de créer une application mobile native pour iOS.

Et là encore, nouveau problème, leurs APIs REST renvoient trop d’informations et ne sont pas adaptées aux spécifications du développement mobile.

Les APIs REST consomment beaucoup trop de bande passante. Ralentissent la version mobile du réseau social. Et surtout, surchargent les serveurs en back-office pour rien.

De là, vient l’idée à Lee Byron et à deux de ses collègues de créer un nouveau langage de requêtes : GraphQL.

Publié pour la première fois en 2012, il devient open-source en 2015, et depuis, il ne cesse de séduire les développeurs web et mobiles.

Et aujourd’hui, on va parler de GraphQL, quels avantages vous pouvez en tirer et comment il fonctionne.

Let’s go.

Qu’est-ce que GraphQL ?

Pour comprendre GraphQL, vous devez savoir ce qu’est une API (si si, c’est important). Une API, ou “Application Programming interface”, est un ensemble de protocoles qui permettent à deux composants logiciels de communiquer.

Elles sont énormément utilisées dans les architectures client-serveur pour permettre à l’utilisateur de récupérer des données depuis une base de données.

C’est au concepteur-développeur de l’application de choisir et de concevoir l’interface de programmation qui sera utilisée.

GraphQL, ou Graph Query Language, est un langage de requêtes et un environnement d’exécution côté serveur pour API.

Sa particularité ? C’est la requête du client qui définit la structure des données qu’il veut.

Particularité qui a déjà séduit plusieurs entreprises, dont :

  • PayPal ;
  • Coursera ;
  • Dailymotion ;
  • GitHub ;
  • Meta.

Vous en trouverez plus en vous rendant sur le site de la fondation GraphQL (voici une partie de la liste).

Entreprises utilisant les API GraphQL

Et cette nuance est importante. Car les autres APIs les plus utilisées sont les APIs REST (Representational State Transfer).

Et elles vous renvoient des informations prédéfinies par le développeur qui a conçu l’architecture serveur. Même si elles ne correspondent pas aux besoins de l’utilisateur.

Parfois, elles envoient trop de données, et côté client, on ne sélectionne que celles qui nous intéressent. On parle d’over-fetching.

Parfois, à l’inverse, elles n’envoient pas toutes les informations, ce qui oblige à faire plusieurs appels sur la base de données. On parle d’under-fetching.

Ces deux problèmes peuvent être évités grâce à une API GraphQL.

Comment fonctionne une API GraphQL ?

Au sein d’une API GraphQL, toutes les requêtes sont des requêtes POST avec, en attribut, une structure de données.

Et c’est la structure de données passée en paramètre qui contient les noms des attributs que l’on souhaite recevoir en retour.

À l’intérieur du code de l’API, vous trouverez deux catégories de données :

  • les données « Types » ;
  • les données « Champs ».

Et parmi les objets, vous trouverez 3 types d’objets différents :

  • les objets « Requêtes », qui contiennent toutes les requêtes acceptées par l’API et qui vérifient que les formats reçus sont autorisées ;
  • les objets « mutation » qui définissent toutes les actions possibles et qui permettent de faire des modifications sur les modèles définis ;
  • les objets « abonnement », qui définissent les modèles de la base de données.

Bon, ok, tout ça, c’est un peu théorique.

Alors voici un exemple de code-source.

On va définir, en GraphQL, une structure de données représentant un concessionnaire automobile (juste son nom et son emplacement). Ensuite, on va récupérer son emplacement.

Voici ce que ça donne.

type Concessionnaire {
 nom: String
 emplacement: String
 voitures: String
}

Définition du graphe de données.

Vous voyez à quel point c’est simple ? Let’s go pour un appel en javascript.

const { ApolloClient, InMemoryCache, gql } = require('@apollo/client');
// Remplacez l'URL par l'endpoint de votre serveur GraphQL

const graphqlEndpoint = 'https://votre-serveur-graphql.com/graphql';

// Initialisez le client Apollo

const client = new ApolloClient({
 uri: graphqlEndpoint,
 cache: new InMemoryCache(),
});

// Définissez votre requête GraphQL
const GET_EMPLACEMENTS = gql`
 query {
   concessionnaires {
     emplacement
   }
 }
`;
// Effectuez la requête

client.query({ query: GET_EMPLACEMENTS })
 .then(result => {
   const emplacements = result.data.concessionnaires.map(concessionnaire => concessionnaire.emplacement);
   console.log('Emplacements des concessionnaires (GraphQL) :', emplacements);
 })
 .catch(error => {
   console.error('Erreur lors de la récupération des données (GraphQL) :', error);
 });

Prêtez bien attention à la définition du schéma de requête.

const GET_EMPLACEMENTS = gql`
 query {
   concessionnaires {
     emplacement
   }
 }
`;

Clairement, on fait comprendre au serveur qu’on ne veut que l’emplacement et rien d’autre.

Ainsi, pas besoin de filtrer le résultat qu’il retourne.

Si on fait la même chose avec une API REST, voici ce que ça donne :

const axios = require('axios');

// Remplacez l'URL par l'endpoint de votre API REST
const restEndpoint = 'https://votre-api-rest.com/concessionnaires';

// Effectuez une requête GET pour récupérer les données
axios.get(restEndpoint)
.then(response => {
const concessionnaires = response.data;
const emplacements = concessionnaires.map(concessionnaire => concessionnaire.emplacement);
console.log('Emplacements des concessionnaires (REST) :', emplacements);
})
.catch(error => {
console.error('Erreur lors de la récupération des données (REST) :', error);
});

Vous voyez la nuance sur les lignes :

const concessionnaires = response.data;

    const emplacements = concessionnaires.map(concessionnaire => concessionnaire.emplacement);

Ici, on récupère toutes les informations des concessionnaires. Et après ça, on extrait le champ qui nous intéresse.

Imaginez un peu si on avait plus d’informations sur les concessionnaires :

  • Des images de plusieurs centaines de voitures au format .png ;
  • Des vidéos de présentations ;
  • Des dizaines d’informations textuelles supplémentaires, etc.

Devinez quoi ? On aurait dû tout transférer depuis les serveurs avec une API REST pour, au final, ne garder qu’une seule colonne.

Bon, c’est un peu exagéré, généralement, on définit une API spécifique qui ne renvoie que des données précises pour chaque cas. Mais vous voyez l’idée.

Pourquoi GraphQL est (parfois) un meilleur choix qu’une API REST ?

Quel API choisir pour concevoir vos logiciels ? À quels protocoles allez-vous faire confiance pour le transfert de vos données ?

Le cabinet Postman a posé la question à plusieurs développeurs dans le monde. Et voici les résultats qu’ils ont obtenus :

Statistiques sur les architectures des API, Postman Report 2023

source : 2023 State of API Report, Postman

Dans les faits, 89 % des devs utilisent des APIs Rest dans leur pile technique contre à peine 29 % pour les APIs GraphQL (ils pouvaient choisir plusieurs réponses).

Qu’est-ce qui explique ces choix ?

1ʳᵉ Réponse : vos besoins applicatifs (ceux que vous avez listés dans votre cahier des charges).

Et pour être sûr de tirer un maximum d’avantages de GraphQL, incluez-la comme critère lorsque vous composez votre équipe de développeurs.

 2ᵉ réponse : les avantages et les inconvénients de GraphQL.

Et justement, voyons-les tout de suite.

3+1 Avantages de GraphQL

GraphQL a 4 avantages majeurs comparé à REST.

1 – Vous évitez l’under-fetching

L’under-fetching se produit lorsqu’une requête ne retourne pas toutes les données dont le programmeur a besoin.

En conséquence, il doit encore faire un appel serveur et initier un autre transfert de données pour avoir toutes les informations qu’il veut. 

Vous sentez la dégradation des performances de votre app venir ?

Du moins, ça se passe comme ça dans une API Rest.

Dans une API GraphQL, vous n’avez pas ce problème. Vous demandez des données, et le serveur vous les retourne, un point c’est tout.

2 – Vous évitez l’over-fetching

L’over-fetching est l’autre face de l’under-fetching.

Il se produit lorsque vous avez besoin d’une information, mais que l’API vous retourne tout un tas d’autres données dont vous n’avez pas besoin.

Sur les APIs REST, c’est fréquent.

On fait un appel à la base de données via une API dont les champs retours sont déjà spécifiés. Ensuite, après avoir consommé la bande passante du serveur et du client, on jette tous les champs qui ne nous intéressent pas.

Du gaspillage pur.

Et ça empire si vous avez besoin de données sur le même serveur, mais accessibles via des API différentes.

Heureusement, avec GraphQL, ça ne se produit pas.

Le développeur précise clairement les champs qu’il attend et le back-end lui fournit uniquement ceux-là.

Vous vous souvenez de l’extrait de code qu’on vous a fourni plus haut avec le concessionnaire ? C’est exactement ce qui s’y passe.

const concessionnaires = response.data;

    const emplacements = concessionnaires.map(concessionnaire => concessionnaire.emplacement);

Avec l’API Rest, malgré le fait que l’on ne souhaite avoir que l’emplacement, on télécharge d’abord toutes les données renvoyées par le serveur.

L’over-fetching est particulièrement énervant pour les applications mobiles et web car elle les ralentit fortement.

3 – Gérer les versions n’a jamais été aussi simple

Vos applications évoluent. Les versions se succèdent et parfois ne se ressemblent pas.

Très souvent, vous ajouterez ou retirerez des fonctionnalités de l’app.

Problème : vos équipes de dev vont devoir modifier les champs retournés par l’API.

Si vous utilisez REST, apprêtez-vous à de longues journées à chercher exactement quelles fonctions dépendent de quelles APIs.

Essayez de retirer un champ dans une API alors qu’il est critique pour une fonction utilisant cette API… et une pluie de bugs informatiques et de crash vont vous tomber dessus.

À l’inverse, rajoutez trop de champs dans vos APIs pour faire tourner vos nouvelles fonctions, et vos systèmes informatiques vont ralentir. Sans compter les risques de vulnérabilité accrus aux cyberattaques.

(Si vous vous reconnaissez dans l’un de ces cas, notre chef de projet informatique peut vous aider à éviter que vos applications explosent. Faites-lui un message).

Bref, la gestion des versions d’un logiciel va vous obliger à aller toucher à vos APIs et aux requêtes serveurs qui les utilisent.

Sauf si vous utilisez GraphQL.

Alors non, les APIs GraphQL ne sont pas immuables. Mais elles ont une meilleure rétrocompatibilité, sont plus simples à faire évoluer et à adapter à vos nouveaux besoins.

4 – GraphQL vous facilitent l’accès aux données éparpillées dans plusieurs bases de données relationnelles

Voici ce à quoi ressemble l’architecture des bases de données typiques des grands groupes :

Architecture typique d'une base de données distribuée

Source : Oracle https://docs.oracle.com/cd/A58617_01/server.804/a58227/ch21.html

Les silos représentent ici des bases de données.

Vous voyez où je veux en venir ? Les informations peuvent être contenues dans différents serveurs situés à des emplacements géographiques différents.

Et c’est logique : si votre entreprise ouvre une branche à Paris, vous voudrez très probablement stocker les informations de vos clients de Paris à proximité de Paris. Question de simplifier l’accès aux données de vos collaborateurs qui gèrent ces clients.

Par contre, vous n’avez pas besoin de dupliquer les informations de votre département Ressources Humaines sur place. Vous les garderez donc près de votre siège.

Et si, comme tous les GAFAM, vous décidez d’installer votre siège européen à Dublin, devinez quoi ? Vous allez assurément y stocker les informations sur vos ventes, vos finances, etc.

Pourquoi je vous parle de ça ?

Pour vous faire comprendre que vos données peuvent facilement être éparpillées dans des data centers aux 4 coins du monde.

Et il n’est pas rare que vous ayez besoin, dans une seule requête, d’informations situées dans plusieurs data centers différents.

Vos équipes de développement vont devoir faire appel à plusieurs APIs. Ensuite faire des JOIN/Merge en SQL entre les clés primaires et secondaires de leurs retours.

C’est fastidieux. Ça consomme énormément de ressources (électricité + bande passante). Enfin, ce flux de SELECT, JOIN et de MERGE diminuent la durée de vie de votre infrastructure informatique.

Pour au final ne récupérer que peu d’informations.

Avec une couche GraphQL, les performances de telles requêtes vont considérablement s’améliorer, car il s’appuie sur des technos web.

C’est ce qu’a fait Netflix lors de la création de son système de gestion des publicités Monet. En effet, ses pages devaient charger des informations éparpillées sur ses différents serveurs.

Grâce à l’ajout d’une couche de GraphQL, les pages qui chargeaient 10 MB de données n’avaient plus besoin que de 200 KB. Et les performances globales du système ont fait un boost de x8.

API REST vs API GraphQL

Les 4 inconvénients majeurs de GraphQL

Après tout ce qu’on a dit plus haut, on peut être tenté de se dire que GraphQL est la solution technique à tous vos problèmes.

Attendez.

Parce que les API GraphQL ont aussi leurs défauts.

1 – Pas de mise en cache côté serveur (ou trop complexe)

Avec une API Rest, vous savez exactement quelles informations le client va vous demander.

Et si le même client demande les mêmes informations plusieurs fois, vous pouvez les mettre en cache côté serveur pour gagner en vitesse.

C’est impossible ou très peu envisageable avec une API GraphQL.

La raison : la structure des données retours n’est pas définie côté serveur.

Une tactique utilisée par les développeurs GraphQL est de mettre les informations dans le cache du client. C’est moins efficace, mais ça marche.

2 – La courbe d’apprentissage du langage de requête peut être abrupte

REST est une norme d’échanges d’informations créée en 2000.

Ça fait 24 ans qu’elle est enseignée par défaut aux geeks et autres passionnés d’informatique par défaut.

Tous ceux qui s’intéressent aux codes informatiques et à la gestion des données doivent maîtriser par cœur la formule CRUD des API REST. (CRUD = CREATE READ UPDATE DELETE).

En conséquence, la transition du modèle CRUD vers les schémas, résolveurs, souscriptions et graphes de GraphQL peut s’avérer difficile.

3 – Il y a peu de développeurs spécialisés sur cette technologie (comparée aux API REST)

Si vous ne voulez pas, ou n’avez pas le temps de faire une montée en compétence, l’autre solution est d’embaucher un expert maîtrisant cette technologie.

Sauf que, vous vous en doutez, ils sont moins nombreux que ceux maîtrisant les interfaces de programmation d’applications REST.

En écrivant ces lignes, je suis allé faire un tour sur Fiverr, l’une des marketplace de freelance les plus populaires au monde.

J’ai fait une recherche sur le terme « Développeur API GraphQL » et ensuite, j’ai filtré les prestataires parlant français et/ou anglais.

Requête "Développeur GraphQL API" sur Fiverr

Bilan : 1.444 prestataires ( et à peine 75 qui parlent au moins le français)

À l’inverse, les développeurs d’API REST parlant français et/ou anglais sont  15.180 ! (et 656 quand je ne prend que ceux qui parlent français).

Requête "Développeur API REST" sur Fiverr

Je vous laisse faire les calculs vous-mêmes pour voir la différence de taille dans le vivier de talents disponible sur la technologie GraphQL. 

4 – Sécuriser les serveurs est plus compliqué

Sécuriser un serveur utilisant une API GraphQL présente des défis en termes de cybersécurité plus importants qu’avec une API REST.

La raison ? les réponses des points terminaux (les clients) ne sont pas statiques comme dans une API REST.

Bien sûr, il y a des moyens pour les sécuriser, sinon Facebook et tous les autres géants de la tech ne l’utiliseraient pas 😉

Et hop, transition parfaite pour le prochain point.

Comment sécuriser son API GraphQL ? (4 méthodes)

Logo de GraphQ

On est d’accord, GraphQL a ses avantages, si ça fait de votre système informatique une passoire pour hacker, hors de question de l’utiliser.

Heureusement, il existe une myriade de techniques pour transformer vos API GraphQL en coffres-forts anti-hackers.

1 – Restreindre les autorisations

Oui, GraphQL permet à l’utilisateur de demander les données qui l’intéressent.

Mais encore faut-il qu’il ait l’autorisation de lire tous les champs de données qu’il demande.

Raison pour laquelle, l’un des moyens les plus sûrs pour diminuer le risque d’attaque informatique est de limiter les autorisations.

Couplé à une politique d’authentification robuste et le chiffrement des données et vous êtes presque invulnérable.

Enfin, une autre technique consiste à surveiller les activités de l’API pour identifier et neutraliser les menaces. Ainsi, même si les identifiants d’un utilisateur sont compromis, vous pourrez rapidement repérer la source de l’attaque et la bloquer.

2 – La validation des requêtes de l’API

L’API peut être une source d’attaque.

Comment ? Il suffit que l’attaquant demande des informations sensibles ou injecte du code malveillant via un appel-serveur.

Évitez ça.

Pour cela, rien de plus simple : pensez à toujours vérifier les inputs/outputs de l’API et à les nettoyer au besoin.

Ça vous évitera notamment des attaques par injection.

3 – Gérez la complexité des requêtes avec soin

Vous vous souvenez de ce que l’on disait que GraphQL permet de limiter l’under-fetching en récupérant directement toutes les données ?

Ça aussi, ça peut être une source de vulnérabilités informatiques.

Si un individu malveillant parvient à faire une requête profonde, il peut récupérer un lot d’informations sensibles. Ou pire, il peut surcharger les serveurs qui hébergent vos données via une attaque par déni de service DDoS.

Pour parer à ça, une seule solution : limitez la profondeur et l’étendue des requêtes.

4 – Soyez vigilant sur les demandes d’introspection

L’introspection est une fonctionnalité de GraphQL qui permet au développeur de connaître le schéma de votre base de données. 

Elle révèle absolument tous les champs… ce qui peut vite devenir problématique si un individu malveillant utilise cette fonction.

Raison pour laquelle il est nécessaire de toujours restreindre et gérer soigneusement les données exposées via les points de terminaison.

Comment faire pour implémenter une API GraphQL ou une API REST sur votre projet ?

Ok.

À ce stade, vous savez ce qu’est GraphQL (et REST, vu que j’en ai beaucoup parlé). Et vous voulez savoir si ça peut booster les performances de votre application web/mobile ou de votre logiciel.

Alors comment faire ?

J’aimerais bien vous donner une réponse type faite A puis B puis C, seulement, votre projet est unique. Et les solutions techniques dont vous avez besoin le sont aussi.

Alors, j’ai une autre réponse à vous donner : venez en discuter avec notre chef de projet informatique.

En lui exposant votre projet, il pourra alors mieux vous conseiller et vous dire que faire.C’est par ici pour le rencontrer.

Comment intégrer l’API de ChatGPT ? Guide complet de A à Z

Robot analysant des données

ChatGPT…

À part si vous vivez en autarcie sur une île reculée, vous avez sans doute entendu parler de cette IA. Polyvalente, puissante et facile à utiliser, elle attise les intérêts des départements informatiques et innovation des entreprises.

Et justement, aujourd’hui, nous allons vous montrer comment utiliser l’API de CHatGPT pour l’intégrer à votre application ?

Allons-y.

Sommaire

5+1 étapes pour intégrer ChatGPT au sein de votre application web/mobile

Étape 1 : quel modèle GPT allez-vous choisir ?

GPT-4

Les avantages de GPT-4 face à GPT-3.5 turbo

Les inconvénients de GPT 4 comparé à GPT-3.5 turbo

GPT-3.5

GPT-3.5 Turbo

Les avantages de GPT-3.5 Turbo par rapport à Text-Davinci-003

Les inconvénients de GPT-3.5 par rapport à Text-Davinci-003

Text-Davinci-003

Les avantages de Text-Davinci-003 par rapport à GPT-3.5

Les inconvénients de Text-Davinci-003 comparé à GPT-3.5

Text-Davinci-003 vs GPT-3.5 : lequel choisir ?

Étape 2 : Obtenez votre clé API chez Open AI

Comment récupérer votre clé API chez OpenAI ?

Combien coûtent les différentes clés d’accès à l’API d’Open AI ?

3 – Installez le client de l’API sur votre serveur

4 – Authentifiez-vous grâce à votre clé API

5 – Dialoguez avec ChatGPT

Bonus : donnez une mémoire conversationnelle à votre ChatGPT maison

Pourquoi intégrer l’API de ChatGPT au sein de votre application mobile ou site web ?

Excepté pour l’excellent coup de communication que cela ferait à votre entreprise, intégrer ChatGPT à plusieurs avantages. Notamment :

  • l’amélioration de la qualité de l’expérience utilisateur de votre plateforme ;
  • l’augmentation de vos ventes (et donc de votre CA (émoji sourire) ;
  • l’amélioration de votre service client.

Bien sûr, on pourrait allonger la liste à l’infini, mais nous avons mieux à vous proposer : deux articles qui vous montrent comment augmenter la performance et la rentabilité de votre entreprise grâce à ChatGPT.

Cela vous intéresse ? Alors c’est par ici si vous souhaitez augmenter les ventes de votre marketplace grâce à l’intelligence artificielle. Et pour booster votre expérience-utilisateur, cliquez ici.

Maintenant que vous connaissez les avantages que vous pouvez tirer de l’algorithme phare d’OpenAI, entrons dans le vif du sujet.

5+1 étapes pour intégrer ChatGPT au sein de votre application web/mobile

Robot sortant d'un téléphone portable
Robot sortant d’un téléphone portable

Pour résumer, voici le parcours que vous devez suivre :

  1. choisir le modèle GPT qui conviendra le mieux à vos besoin ;
  2. récupérer votre clé API sur le site web de OpenAI ;
  3. installer votre client ChatGPT sur votre serveur ;
  4. vous authentifier grâce à votre clé API ;
  5. dialoguer avec ChatGPT via des lignes de codes.

Rassurez-vous, même si vous n’êtes pas un développeur d’application ou un génie de l’informatique, ces manipulations sont faciles.

C’est parti !

Étape 1 : quel modèle GPT allez-vous choisir ?

Derrière le nom ChatGPT, saviez-vous que se cachent plusieurs modèles de traitement de langage naturels ?

Vous trouverez ces modèles regroupés en « familles de modèles », et il y en a deux qui nous intéressent :

  • la famille « GPT 4 », qui correspond, vous l’aurez compris, à ChatGPT-4 ;
  • la famille « GPT-3.5 » dont le nom est suffisamment explicite.

Avant de vous présenter les différentes IA génératives d’OpenAI, sachez que nous n’avons sélectionné que celles qui bénéficieront de mises à jour régulières sur le long-terme. Pour découvrir tous les modèles GPT, rendez-vous sur la page officielle d’OpenAI.

GPT-4

GPT-4 regroupe les dernières itérations faites sur le modèle GPT. De plus, c’est aussi la seule de toutes ces IA qui soit capable de prendre des images en entrée.

Par conséquent, si vous comptez utiliser votre Chatbot carburant à l’IA sur des photos, optez pour cette IA.

Parmi la famille de modèles GPT-4, voici les deux entre lesquels vous devrez choisir :

  • GPT-4, qui est le modèle par défaut ;
  • GPT-4-32K, qui est identique au précédent, à l’exception qu’il gère un contexte 4 fois plus grand (32768 tokens vs 8192 tokens pour la version de base).

Finalement, la seule différence entre les deux modèles proposés dans cette famille réside dans la taille du contexte.

Ainsi, si vous prévoyez d’utiliser l’IA pour gérer de (très) longues conversations, optez pour l’API de GPT-4-32K.

Attention toutefois : les jetons de GPT-4-32k vous coûteront trois fois plus cher que ceux de GPT-4.

Les avantages de GPT-4 face à GPT-3.5 turbo
Les inconvénients de GPT 4 comparé à GPT-3.5 turbo
  • il est 10 à 30 fois plus cher que GPT-3.5 turbo ;
  • vous devez vous inscrire sur une liste d’attente donnant un accès prioritaire aux développeurs d’applications contribuant à l’amélioration de l’IA.

Maintenant, passons en revue l’autre alternative qui s’offre à vous : GPT-3.5

GPT-3.5

GPT-3.5 est la version à cheval entre ChatGPT 3 et ChatGPT 4. Elle est donc un bon équilibre entre performance, disponibilité et prix.

Cependant, ne vous laissez pas avoir par son nom : cette famille de modèles ne comporte pas du tout les mêmes que ChatGPT-3.

Ainsi, Ada, Curie et Babbage ne sont plus de la partie. Seul le modèle Instruct Davinci est encore présent.

Et justement, voici les modèles de langages disponibles dans la famille ChatGPT-3.5 :

  • GPT-3.5  Turbo ;
  • Text-Davinci-003.

À noter que contrairement à GPT-4, la taille de leurs contextes est de 4096 tokens tous deux.

GPT-3.5 Turbo

GPT-3.5 Turbo est le modèle par défaut de cette famille de modèle.

Honnêtement, vous pouvez tout faire avec, y compris les tâches prises en compte par le modèle Text-Davinci-003.

Mais alors pourquoi nous vous demandons de choisir entre les deux ? Pour des questions de performances.

Pas de panique, nous vous avons préparé un résumé des avantages et des inconvénients de ce modèle par rapport à son jumeau.

Les avantages de GPT-3.5 Turbo par rapport à Text-Davinci-003
  • il obtient de bien meilleures performances sur les tâches de classification zero-shot (la capacité du modèle à identifier et à traiter des catégories de données qu’il n’a jamais rencontrées) ;
  • corollaire du premier point, GPT-3.5 obtient de meilleurs scores sur les tâches d’analyse de sentiments ;
  • ses capacités de résolution des problèmes mathématiques sont supérieures à celles de Text-Davinci-003.
Les inconvénients de GPT-3.5 par rapport à Text-Davinci-003
  • il a tendance à produire des réponses trop longues lorsqu’un utilisateur lui pose une question -et vous ne voulez pas noyer vos clients sous une masse de texte et réduire à néant vos efforts d’optimisation du parcours client. N’est-ce pas 😉? ;
  • lorsque vous devrez faire une classification non-supervisée entre plusieurs classes, il va utiliser vos ressources de manière inefficace.

Après ce rapide aperçu de GPT-3.5, passons maintenant à Text-Davinci-003.

Text-Davinci-003

Leonard De Vinci regardant un écran d'ordinateur, image créé par Dalle-Bing
Leonard De Vinci regardant un écran d’ordinateur, image créé par Dalle-Bing

Si vous êtes en quête d’un algorithme d’IA ayant de très bonnes performances sur les tâches de traitement du langage naturel, alors il est fait pour vous.

Plus exactement, Text-Davinci-003 devance GPT-3.5 sur une tâche bien particulière : l’apprentissage non-supervisé K-Shot.

C’est la capacité du modèle à découvrir des relations entre les éléments à partir d’un jeu de données. Et contrairement à GPT-3.5 qui nécessite des jeux d’entraînements extrêmement étoffés, ce modèle n’a besoin que de quelques exemples.

Pour résumer.

Les avantages de Text-Davinci-003 par rapport à GPT-3.5
  • il est bien plus performant que GPT-3.5 lorsqu’il s’agit de trouver des relations entre les éléments d’une petite database ;
  • ses réponses aux prompts sont beaucoup plus courtes que celles fournies par GPT-3.5 turbo.
Les inconvénients de Text-Davinci-003 comparé à GPT-3.5
  • il est moins performant lorsqu’il s’agit d’analyser les sentiments de son interlocuteurs ;
  • ses réponses sont légèrement moins précises ;
  • il n’excelle pas sur les tâches nécessitant un raisonnement mathématiques.
Text-Davinci-003 vs GPT-3.5 : lequel choisir ?

Leonard De Vinci affrontant un robot
Leonard De Vinci affrontant un robot

Face à ces différences hautement techniques, vous vous demandez lequel des deux choisir ? Voici un petit guide :

  • Choisissez GPT-3.5 Turbo si vous voulez utiliser ChatGPT pour la création de contenu, la recherche scientifique ou la gestion de votre SAV et vos médias sociaux ;
  • Choisissez Text-Davinci-003 si vous comptez faire de la vision par ordinateur, de la conception de produit ou si vous êtes un professionnel de la cybersécurité.

Vous ne vous retrouvez pas dans l’une de ces catégories ? Nous pouvons vous aider à choisir le meilleur modèle GPT pour votre entreprise.

Une fois que vous aurez fait votre choix, place à l’étape suivante : obtenir l’accès à l’API d’OpenAI.

Étape 2 : Obtenez votre clé API chez Open AI

Une API, ou Application Programming Interface, est une interface de programmation qui vous permet d’utiliser un service tiers.

En une seule requête, vous avez accès à toutes les fonctionnalités de ChatGPT. Mais sachez que si vous souhaitez intégrer d’autres IA signées OpenAI – Whisper, DALL.E et Moderation -, vous pourrez utiliser la même clé.

Et si vous souhaitez personnaliser votre ChatGPT maison, vous avez deux options : faire du fine-tuning et/ou demander à votre chef de projet informatique de ré-entraîner le modèle sur des données spécifiques à votre entreprise.

Maintenant que tout est dit, entrons dans le vif du sujet.

Comment récupérer votre clé API chez OpenAI ?

D’emblée, sachez qu’Open AI vous donne jusqu’à 25 clés d’accès, ce qui vous permet d’intégrer des versions de ChatGPT customisées.

Pour obtenir une clé, suivez les étapes suivantes :

  • allez sur le site web de OpenAI ;
  • créez un compte ou connectez-vous ;
  • accédez à l’onglet « View API Keys » ;
  • sur cette page, faites un clic sur le bouton « Create new secret key » ;
  • une fenêtre ou un pop-up va s’ouvrir devant vous, recopiez le code fourni.

Félicitations, vous venez de créer votre clé pour accéder aux services d’OpenAI !

Grâce à elle, vous allez prouver aux serveurs d’OpenAI que vos demandes de connexions sont légitimes. Et aussi que vous n’êtes pas un pirate informatique.

Une fois votre clé obtenue, vous devrez vous plier à quelques mesures de sécurité pour éviter de voir votre compte piraté. Notamment :

  • ne la partagez jamais avec qui que ce soit ;
  • ne la recopiez pas sur un fichier texte que vous laisserez traîner sur le bureau de votre PC ;
  • créez une clé pour chaque projet – ainsi, vous pourrez ajuster votre modèle.

Avant de passer à la prochaine étape, nous devons répondre à une question qui hante le comptable qui sommeil en vous : combien coûtent les accès à l’API d’OpenAI.

Combien coûtent les différentes clés d’accès à l’API d’Open AI ?

Vous vous souvenez des différents modèles vus plus haut ? Voici leurs coûts respectifs :

  • GPT-4 simple : 0.03$ pour 1000 jetons en mode « Rapide » et 0.06$ pour 1000 jetons en mode « Achèvement » ;
  • GPT-4-32k : 0.06$ pour 1000 jetons en mode « Rapide » et 0.12 $ pour 1000 jetons en mode « Achèvement » ;
  • GPT 3.5 Turbo et Text-Davinci-003 : 0.002$ pour 1000 jetons (et oui, nous avons bien compté les 0).

Sachant qu’un token, ou jeton, équivaut à environ quatre caractères. Soit approximativement 750 mots pour 1000 jetons, cela vous donne une idée de votre budget final.

Mais pas de panique, vous n’avez pas besoin de sortir votre carte bancaire pour intégrer ChatGPT sur votre plateforme. Et pour cause, OpenAI vous offre 5$ de crédit gratuit lors de l’ouverture d’un nouveau compte.

Votre API en main, il est temps de vous en servir.

3 – Installez le client de l’API sur votre serveur

Pour pouvoir utiliser votre API, vous devez installer ce que l’on appelle un « client » sur votre serveur. La manipulation est assez simple.

La voici :

  • connectez-vous à votre serveur, avec les accès administrateurs de préférence ;
  • créez un répertoire facile d’accès, voire à la racine de votre arborescence ;
  • ensuite créez un fichier texte.

L’extension du fichier va dépendre du langage de programmation favori de vos équipes de développeurs :

  • .py pour les passionnés de python ;
  • .js si vous êtes plus Node.js/JavaScript ;
  • .rb si vos développeurs web utilisent le langage Ruby.

Même si l’API fonctionne avec tous les langages de programmation – y compris via des requêtes HTTPS avec le langage cURL- il est recommandé d’utiliser les bibliothèques développées par OpenAI.

Il en existe deux : une rédigée avec le framework node.js (JavaScript) et une autre en python. Nous utiliserons celle en python pour la suite

Ouvrez votre IDE -environnement de développement intégré, si vous n’en avez pas, téléchargez notepad++ ou vs code. Ensuite, selon le langage de programmation que vous avez choisi, recopiez l’instruction suivante dans votre terminal :

!pip install openai

Félicitations, vous venez d’installer le client d’OpenAI sur votre serveur.

4 – Authentifiez-vous grâce à votre clé API

Maintenant que vous pouvez chuchoter du code informatique dans les oreilles d’OpenAI, vous devez lui prouver que vous êtes légitime.

Vous devez authentifier vos requêtes.

Pour y parvenir, rien de plus simple : remplacez la valeur de la variable d’environnement « OPENAI_API_KEY ». Et voici comment procéder :

import openai
import openai_secret_manager  

secrets = openai_secret_manager.get_secret("openai")
api_key = secrets["api_key"]  
openai.api_key = api_key

À partir de maintenant, vous pouvez poser vos questions à ChatGPT.

5 – Dialoguez avec ChatGPT

Après de si longues minutes à suivre ce tutoriel, vous brûlez d’envie d’envoyer vos prompts à ChatGPT. N’est-ce pas ?

Voici comment procéder :

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",  
  messages=
    {"role": "system", "content": "Tu es un expert du développement web."}
)

Et pour récupérer sa réponse, rien de plus simple : accéder à la variable choices.message.content.

completion.choices[0].message.content

Félicitations ! Vous venez d’intégrer l’API de ChatGPT au sein de votre plateforme.

Libre à vous de modifier les prompts et de vous amuser avec les résultats. Souhaitez-vous découvrir tous les paramètres des fonctions de l’API ? Voici le lien de la documentation de l’API ChatGPT.

Toutefois, en testant votre chatbot, une anomalie va rapidement vous sauter aux yeux : il oublie absolument toute votre conversation à chaque prompt.

Impossible pour lui de fournir des réponses contextualisées. Ce qui, il faut l’avouer, retire un peu l’intérêt d’utiliser ChatGPT.

Heureusement, ce problème se corrige assez facilement.

Bonus : donnez une mémoire conversationnelle à votre ChatGPT maison

Robot entrain d'acquérir une mémoire
Robot entrain d’acquérir une mémoire

Pour que votre instance de ChatGPT n’ait plus une mémoire de poisson rouge, vous devez comprendre la structure de cette instruction :

completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "ROLE_AUTEUR_MESSAGE", "content": "VOTRE_PROMPT"}
  ]
)

Détaillons la.

Comment utiliser les paramètres de la fonction openai.ChatCompletion.create pour conserver l’historique de conversation

  • « role » : ce paramètre détermine le comportement de l’IA lors de votre conversation ;
  • « content » : il s’agit de votre prompt.

Pour que votre ChatBot dopé à ChatGPT puisse retenir votre conversation, vous devez modifier le paramètre « role ». Vous pouvez lui donner 3 valeurs :

  • « system », elle vous permet de « dire » au modèle quel comportement il doit adopter. Ainsi, vous pouvez lui demander d’agir comme un expert dans un domaine précis ;
  • « user », signifie que la commande que l’IA doit traiter la commande de ce message comme s’il s’agissait d’une entrée fournit par votre client final ;
  • « assistant », cette valeur permet de dire au modèle que le contenu du message provient de lui. C’est grâce à cette valeur que vous pourrez sauvegarder votre conversation dans la mémoire du modèle.

Plutôt que de longues explications, nous allons prendre un cas concret.

Comment créer un chatbot avec une mémoire : code + explications

Supposons que vous voulez utiliser l’API de ChatGPT, vous voulez que ChatGPT se comporte comme un professionnel du développement web.

Supposons aussi que vous ayez une idée précise sur quelle est la meilleure agence de développement web parisienne.

Enfin, supposons que l’internaute qui discute avec votre ChatBot souhaite contacter la meilleure agence de développement web de Paris.

Voici ce que cela va donner.

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",  
  messages=[
    {"role": "system", "content": "Tu es un expert du développement web."},
    {"role": "user", "content": "Quelle est la meilleure agence de développement web Parisienne à qui confier mes projets ?"},
    {"role": "assistant", "content": "Poyesis !"},
    {"role": "user", "content": "Comment est-ce que je peux les contacter ?"}
  ]
)

Vous n’avez plus qu’à adapter les contenus de cette commande selon vos objectifs.

Ça y est !

Vous venez d’incorporer avec succès ChatGPT au sein de votre application.

Si vous êtes à la recherche d’une agence de développement informatique pour vous aider à profiter de toute la puissance de ChatGPT, contactez-nous.

ChatGPT : 5 façons de l’utiliser pour améliorer l’expérience utilisateur de votre app web/mobile

Sorti des laboratoires d’OpenAI, le modèle de traitement de langage naturel ChatGPT, Chat-Based Generative Pre-trained Transformer, chamboule le web.

Rédaction d’articles de blog, de poèmes et même de sermon religieux, ChatGPT et ses concurrents dont Google Bard vous offrent d’innombrables possibilités.

Mais aujourd’hui, vous et nous allons aller plus loin que ces usages connus. Nous allons voir ensemble 5 manières d’utiliser le chatbot pour créer une expérience client inédite au sein de votre plateforme.

Mais avant, faisons un rapide tour sur les avantages d’intégrer ChatGPT dans votre application web/mobile.

3 bénéfices de l’intégration de ChatGPT dans votre site web ou application mobile

Cher Lecteur,

Vous l’avez sans doute remarqué, ajouter le mot « IA » sur un produit a tendance à lui offrir une cure de jouvence. Avec ce mot dans le titre de votre application, vous envoyez un message aux mobinautes : vous êtes au fait des dernières technologies.

Rien que cet argument marketing peut vous pousser à saupoudrer un peu de ChatGPT dans vos services numériques.

Mais ce n’est pas le seul bénéfice que vous pouvez tirer de l’intégration de ChatGPT dans votre application web/mobile. En voici d’autres (qui eux améliorent vraiment votre produit digital).

1- L’augmentation de la satisfaction de vos utilisateurs

En naviguant sur votre plateforme, vos visiteurs peuvent être confrontés à un bug ou ne pas savoir quoi faire.

Généralement, c’est là qu’interviennent vos chargés de clientèle : ils les guident dans leur parcours utilisateur.

Sauf que… cela peut prendre beaucoup de temps. Surtout si vous croulez sous des hordes d’acheteurs comme le sont les sites d’e-commerce durant les périodes de rush.

Sans surprise, vos équipes seront débordées et ne pourront pas répondre à toutes les sollicitations. À part si vous faites appel à ChatGPT.

Grâce à sa capacité de compréhension avancée des textes, le chatbot guidera vos utilisateurs en leur fournissant des réponses personnalisées.

Spoiler : en personnalisant leurs parcours client, vous ferez pousser des sourires sur les visages de vos clients (et ils seront plus enclins à vous confier leurs CB).

2 – La réduction de vos charges salariales et d’externalisation

Cher Lecteur,

Avez-vous déjà prêté attention aux requêtes traitées par votre SAV ?

Si oui, vous avez sans doute remarqué que certains de vos clients les sollicitent pour des problèmes basiques. Des problèmes qui peuvent être facilement résolus, mais qui sont chronophages à traiter.

Si seulement vous disposiez d’un assistant technique ou d’un chargé de clientèle capable de les traiter 24/24 et 7/7…

Vous l’aurez compris : il s’agit de ChatGPT.

En prenant en charge les requêtes à faibles valeurs ajoutées, le chatbot allège la charge de travail de vos équipes. Ce qui vous fera payer moins d’heures de travail.

Et si vous êtes un habitué de l’externalisation : souriez, vous n’aurez plus à faire (autant) appel à ces sociétés.

3 – Une expérience utilisateur plus personnalisée

Saviez-vous que pour 87% des consommateurs, les contenus personnalisés sont déterminants pour se faire une idée de votre marque ?

Pour vos consommateurs, une expérience personnalisée est le signe que vous vous souciez d’eux. Et ils adorent cela.

En intégrant ChatGPT dans votre application, vous aurez accès à des possibilités de personnalisation inédites.

Sceptique ? Voici quelques fonctionnalités que seules les intelligences artificielles génératives vous offrent :

  • l’analyse en temps réel du parcours de navigation de l’internaute ;
  • la création de contenus interactifs spécifiques aux habitudes de chaque consommateur ;
  • l’affichage dynamique dudit contenu à un moment clé du parcours d’achat.

Bien évidemment, il ne s’agit que de quelques usages possibles. Vous voulez découvrir ceux qui conviennent le plus à votre plateforme ? Contactez-nous et nous vous les montrerons.

Maintenant, rentrons dans le vif du sujet.

5 façons d’utiliser ChatGPT dans son application web ou mobile

Les voici.

1 – Créer un service client grâce à ChatGPT

Cher Lecteur,

Imaginez un instant…

Une équipe de chargés de clientèle disponible 7/7, multilingues, rapides et peu coûteuses.

Honnêtement, quel chef d’entreprise n’en rêverait pas ?

Bonne nouvelle : vous n’avez plus besoin d’en rêver. Vous pouvez créer cette équipe en confiant une partie de votre SAV à ChatGPT.

Sous vos instructions, ou plutôt prompts, le modèle GPT est capable de fournir des réponses pertinentes à chaque client.

Bonus : l’intelligence artificielle d’OpenAI est capable d’analyser les sentiments de son interlocuteur en temps réel. Ainsi, face à un internaute mécontent, vous pouvez configurer l’API de ChatGPT pour qu’il passe le relais à un humain.

2 – Créer un assistant personnel de shopping avec ChatGPT

Si vous êtes à la tête d’un site d’e-commerce, vous savez à quel point un système de recommandation efficace est vital.

Bien conçu, il mettra en avant les produits que l’utilisateur est susceptible d’acheter d’apprécier. À l’inverse, s’il est inefficace, vous perdrez des ventes (et agacerez vos prospects).

Et c’est là qu’intervient une fois de plus ChatGPT : vos usagers n’auront plus qu’à décrire l’article qu’il recherche de manière conversationnelle, et l’intelligence artificielle les cherchera pour eux.

Par exemple, si l’une de vos clientes demande aux moteurs de recherche de votre boutique Shopify : « Robe de mariage discrète, mais élégante », il lui retournera uniquement des fiches produits contenant ces mots-clés.

A contrario, si vous avez intégré dans votre marketplace la possibilité de faire une recherche conversationnelle, le résultat sera différent. ChatGPT redirigera l’internaute non pas vers les produits contenant ces mots-clés, mais vers les produits correspondant à sa description.

Et ce petit détail fera bondir vos ventes.

3 – Créer un assistant technique basé sur ChatGPT

Adresse e-mail introuvable, compte bloqué, options manquantes, problème de paiement, problème de navigation, bug… la liste des problèmes que peuvent rencontrer vos utilisateurs est très longue.

Pour empêcher qu’ils ne quittent votre plateforme, vous devez leur fournir une assistance technique. Et rapidement.

Là aussi, ChatGPT fera des merveilles : le chatbot peut analyser des données complexes sous forme de PDF, de graphes et d’images. Mieux encore, il peut proposer des solutions complexes et les envoyer par mail personnalisé à votre utilisateur infortuné.

Bonus : l’intelligence artificielle peut aussi analyser le contexte pour travailler les appels à l’action présents dans vos messages de solution.

4- Gamifier l’expérience de vos utilisateurs avec les contenus interactifs de ChatGPT

Cher Lecteur,

Connaissez-vous la gamification ?

Selon le site definitions-marketing.com : « Le terme de gamification est un néologisme de langue anglaise qui désigne le fait de reprendre des mécaniques et signaux propres aux jeux, et notamment aux jeux vidéos, pour des actions ou applications qui ne sont pas à l’origine des jeux. »

Autrement dit, il s’agit pour vous d’incorporer des mécaniques de gameplay dans le parcours utilisateur de votre plateforme. Et cette démarche vous apportera plusieurs avantages :

  • l’augmentation de l’engagement de vos utilisateurs ;
  • l’augmentation de votre taux de rétention et la baisse des taux de résiliation de vos services ;
  • l’amélioration de la fidélisation de vos clients.

Bien évidemment, pour profiter de la gamification, votre UX designer et vous, devrez vous assurer que vos éléments de jeux soient ludiques. Sans pour autant transformer votre site web ou votre application en un jeu vidéo.

Pour cela, vous pouvez (encore) compter sur ChatGPT. Voici comment tirer parti du chatbot d’OpenAI :

  • créer des textes créatifs basés sur les catégories de produit les plus appréciés par chaque consommateur ;
  • générer automatiquement des devinettes en analysant les insights de chacun de vos utilisateurs en temps réel ;
  • créer des quiz interactifs qui offriront diverses récompenses ou promotions à vos utilisateurs.

Il ne s’agit ici que de quelques moyens d’utiliser l’API de ChatGPT sur votre site web. Si vous souhaitez avoir des propositions propres à votre site ou plateforme, venez en discuter avec nous.

5 – Créer un modérateur automatique alimenté par ChatGPT

Cher Lecteur,

Si vous avez un réseau social ou ne serait-ce qu’un espace commentaire dans votre application, vous le savez : les propos haineux ne sont jamais loin.

Même si vous n’en êtes pas l’auteur, ils dénigrent votre image de marque auprès de vos personas. Et à part si l’icône de votre plateforme est un oiseau bleu, vous devez vous en débarrasser.

Vous devez modérer les commentaires et les avis laissés par les utilisateurs.

Là aussi, ChatGPT fait des merveilles : l’intelligence artificielle est capable d’analyser automatiquement tous les contenus postés par vos utilisateurs. Ensuite, s’ils sont haineux ou discriminatoires, vous pouvez la configurer pour qu’elle les supprime immédiatement.

Comment intégrer ChatGPT dans votre application ?

Vous souhaitez intégrer ChatGPT dans votre application ?

Avant de vous ruer sur l’API, vous devrez vous poser plusieurs questions :

  • quel est l’objectif derrière l’intégration de ChatGPT dans votre application ?
  • de quelle manière souhaitez-vous qu’elle s’adresse à vos utilisateurs ?
  • quels sont les différents scénarios auxquels elle devra faire face ? Comment va-t-elle les gérer ?
  • quel sera son périmètre d’action ?
  • sous quelle forme allez-vous intégrer ChatGPT dans votre application web/mobile ? Sous la forme d’un chatbot ? d’une fonctionnalité ?, etc.

Vous l’avez compris, intégrer ChatGPT dans votre écosystème est un véritable projet informatique à part entière.

Bonne nouvelle : nous pouvons vous aider à le faire. Venez discuter avec l’un de nos chefs de projets informatiques, et ensemble améliorons votre application web/mobile en la boostant à ChatGPT.