Notre bot Slack intelligent grâce à OpenAI GPT-3

12/12/2022
Thomas Blondel
Baptiste Bouillot
Notre bot Slack intelligent grâce à OpenAI GPT-3
Julien Fournier - Tech Lead & Coordinateur d'agence

Notre bot Slack intelligent grâce à OpenAI GPT-3

Vous n'avez pas pu passer à côté, ou alors vous ne faites pas partie de cette planète (la tech j'entends).

Le sujet chaud du moment c'est ChatGPT, la nouvelle forme du moteur d'Intelligence Artificielle (AI) développé par OpenAI et propulsé par GPT-3.

Tweet sur ChatGPT

Vous pouvez tester directement le chat ici : https://chat.openai.com/chat

La grande force de OpenAI c'est leur moteur GPT-3, qui utilise un modèle avec 175 milliards de paramètres, sortes de réseaux de neurones qui s'interconnectent et qui rendent le moteur "intelligent". Entraîné avec 570Go de textes collectés notamment sur Wikipédia et CommonCrawl, OpenAI est capable de répondre à la plupart des questions que vous vous posez.

comparaison de résultat entre Google et ChatGPT
comparaison de résultats entre Google et ChatGPT

Cerise sur le gâteau, nous allons pouvoir jouer avec car OpenAI propose une API - trop beau pour être vrai - avec un nombre de token gratuit limité, mais quand bien même, l'occasion est trop alléchante. On peut toujours souscrire à un plan payant pour débloquer le nombre d'appel au moteur.

Comment fonctionne OpenAI ? 

Les doigts nous brûlent, allons-y ! Premièrement, nous allons créer une application Slack pour pouvoir répondre à la commande </tellme>

En allant ici vous pourrez créer votre application qui pourra interagir avec votre espace de discussion. Ensuite, dans la section Slash Command, on peut ajouter notre commande qui fera appel à notre script.

Edit Command Slack

Sur la Request URL, on place notre script qui transmettra la question à l'API d'OpenAI. Nous utilisons le framework Laravel avec le package de Spatie https://spatie.be/docs/laravel-slack-slash-command/ pour simplifier la gestion du routing et pour les méthodes de réponses. Pour OpenAI on utilise le package développé par Nuno Maduro : https://github.com/openai-php/client  :

Slash Command Handler OpenAI

On va ensuite répondre rapidement à Slack (le timeout de retour est très court) et lancer un job pour appeler OpenAI en tâche de fond. Sur ce point, Laravel offre un système de Queue/Job incroyablement simple : https://laravel.com/docs/9.x/queues  

Voilà le job en question :

OpenAI Job

Ici nous avons choisi d'utiliser le point d'api completion qui s'applique aussi bien à du texte qu'à du code. Ensuite, on choisit le model davinci qui est le modèle GPT-3 le plus puissant pour interpréter du langage naturel : https://beta.openai.com/docs/models/davinci

Pour limiter le coût d'exploitation de l'API, on limite les réponses à 250 tokens.  

Finalement la réponse apparait dans le channel Slack :

Question OpenAi dans channel slack
réponse OpenAI dans channel slack

Bien sûr, il est possible d'utiliser OpenAI pour plein d'autres cas :

  • Pour traduire du texte en requête SQL
  • Pour créer du contenu pour un blog
  • Pour faire de la classification de texte (émotion, etc...)
  • Pour faire un questionnaire d'embauche
  • Pour traduire du code d'un langage à un autre

On peut aussi demander à ChatGPT de nous donner des idées :

Comment améliorer le devex de l'équipe de développeur avec openAI

Il existe plusieurs manières dont OpenAI peut aider une équipe de développeurs à améliorer leur devex (développement logiciel).

Voici quelques exemples :

  1. OpenAI peut fournir des outils et des bibliothèques d'IA pour faciliter le développement d'applications intelligentes. Par exemple, OpenAI a développé GPT-3, un modèle de langage pré-entraîné qui peut être utilisé pour générer du texte en fonction d'un contexte donné. Cela peut être utile pour les développeurs qui souhaitent ajouter des fonctionnalités de génération de texte à leur application.
  2. OpenAI peut également offrir des formations pour aider les développeurs à mieux comprendre les technologies d'IA et à les utiliser efficacement dans leur travail. Par exemple, OpenAI peut proposer des ateliers ou des cours en ligne pour enseigner aux développeurs les différentes techniques d'IA et comment les utiliser dans leur projet de développement logiciel.
  3. Enfin, OpenAI peut également offrir des services d'assistance technique pour aider les développeurs à résoudre des problèmes rencontrés dans leur projet. Par exemple, OpenAI peut proposer des consultations pour aider les développeurs à optimiser leur code ou à résoudre des bugs.

En utilisant ces différents outils et services, OpenAI peut aider les équipes de développeurs à améliorer leur devex et à mieux utiliser les technologies d'IA dans leur travail.

Finalement le meilleur pour parler d'openAI, reste openAI lui-même :

Réponse OpenAI

Baptiste Bouillot

+ d’articles

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.