Morgen Assist + OpenAI génèrent mon plan quotidien + l'envoient à mon Slack. Voici comment.

Luke
Developer @ Morgen
October 27, 2023
10 min de lecture
⚡️
En bref
⚡️
Conclusion

La version originale (incluant les extraits de code) a été publiée sur dev.to le 30 octobre.

Morgen a récemment lancé un nouveau produit – Morgen Assist – qui, selon nous, va vraiment booster l'automatisation des calendriers et permettre à des milliers de workflows et d'applications formidables d'arriver sur le marché, avec Morgen au cœur de tout cela.

Mais ne me croyez pas sur parole, suivez-moi et découvrez à quel point il est facile d'écrire, tester et déployer vos propres workflows de calendrier depuis votre propre environnement.

Et je suis désolé, mais mettre OpenAI dans le titre était le moyen le plus facile de vous faire cliquer, mais je vous promets que c'est nécessaire pour cette application de moins de 100 lignes qui résume intelligemment les événements du calendrier de tous vos calendriers*.

* Google et O365 sont actuellement supportés

« Que fais-je aujourd'hui ? »

Vous vous êtes peut-être posé cette question, une tasse de café à la main, en fixant le vide de votre bureau de travail à distance après vous être levé et être allé au salon ce matin.

Avec plus de 50 nouveaux messages Slack du chef de projet, de l'équipe design, du marketing et du canal support, vous risquez d'oublier de consulter votre calendrier, qui est actuellement perdu au milieu d'une mer d'onglets Firefox, de terminaux et bien… d'autres terminaux.

Et c'est là que le Morning Schedule Workflow intervient.

Un message Slack est livré chaque matin (ou soir) directement dans vos messages privés vous informant des réunions à venir, y compris les rétrospectives, les entretiens individuels, les autres réunions de sprint, les appels clients, le tout dans la langue et le ton de votre choix.

À titre de démonstration, j'ai soumis le texte suivant au modèle ChatGPT d'OpenAI :

Vous êtes le légendaire fondateur d'Apple, Steve Jobs, qui prononce une présentation importante

Veuillez résumer tous ces événements à venir listés d'une manière typique de votre style de présentation classique.

- Entretien individuel avec David

- Rétrospective du dernier sprint

- Appel client avec Apple

Et voici ce que j'ai reçu :

Mesdames et messieurs,

Aujourd'hui, je suis ici pour vous donner une brève mise à jour sur certains événements à venir qui sont d'une importance capitale pour notre entreprise.

En premier lieu, nous avons une session d'entretien individuel prévue avec David. C'est une occasion fantastique pour nous de nous connecter sur un plan personnel, d'échanger des idées et d'aligner notre vision. De telles interactions sont…

Et ça continue. La présentation complète est vraiment inspirante, mais vous devrez la découvrir par vous-même.

Nous avons donc la pièce centrale du puzzle, mais comment cela s'intègre-t-il dans un workflow Morgen Assist ?

Premiers pas avec Morgen Assist

Ensuite, vous allez avoir besoin d'un compte Morgen Assist. Vous n'aurez besoin que d'une adresse e-mail et d'un compte de calendrier fourni par Microsoft O365 ou Google.

Créer un workflow personnalisé

Nous devrons d'abord créer un workflow personnalisé sur la plateforme Morgen Assist, que vous pouvez trouver ici.

N'oubliez pas d'ajouter une intégration de calendrier à votre compte, vous en aurez besoin sous peu. Vous pouvez ignorer l'intégration Slack pour le moment - c'est pour un cas d'usage légèrement différent.

Ensuite, suivez ces étapes :

  • Définissez le type de déclencheur sur « programmé » à l'heure de la journée de votre choix (par exemple 18h)
  • Sélectionnez un calendrier pour récupérer les événements à résumer
  • Et enfin, insérez du code dans la section User Script selon les instructions ci-dessous

Notez que si vous voulez cette expérience de développeur hacker 10x, vous pouvez également écrire et déployer votre workflow via le SDK, qui dispose d'un client API TypeScript pour faire des requêtes à notre backend. Actuellement, votre code doit tenir entièrement dans la fonction run, que j'expliquerai ci-dessous. Une certaine interaction est toujours nécessaire dans l'application web, mais nous travaillons à l'amélioration de cela à l'avenir.

Écrire le script

Heureusement, une version de ce workflow a déjà été écrite et peut être consultée sous une forme compatible à la fois avec le SDK Morgen Assist et l'interface web Morgen Assist.

Vous pouvez la trouver ici : https://github.com/morgen-so/morgen-cw-sdk/blob/main/examples/openai-tomorrow-summary.ts

Je vais maintenant décomposer ce script.

D'abord, nous allons avoir besoin d'inclure quelques utilitaires pour faire des requêtes à Morgen et OpenAI. Collez le code dans votre script utilisateur.

Notez que vous aurez besoin d'un token OpenAI pour que tout fonctionne comme prévu. Une fois que vous créez un compte OpenAI, vous pouvez créer des tokens à partir de la plateforme OpenAI.

Préparons également le token Slack :

  • Créez une nouvelle application ici : https://api.slack.com/apps
  • (c'est ainsi que le bot de résumé accédera à Slack et y apparaîtra)
  • Définissez l'apparence et les permissions de votre application
  • Allez à « OAuth & Permissions », trouvez la section « Bot Token Scopes »
  • Ajoutez la permission « chat:write »
  • Faites défiler jusqu'à la section « Oauth Tokens for Your Workspace » et cliquez sur « Install to Workspace », cliquez sur « Allow » sur la page de confirmation
  • Trouvez le token xorb-... sous « OAuth & Permissions »

Bon, écrivons maintenant une fonction run basique. Cette fonction sera appelée quand le workflow est déclenché.

Enfin, regardons la logique réelle de ce workflow.

Récupérer les événements de demain

Pour ce faire, nous devons faire un appel API à l'API Morgen avec une plage de début/fin qui capture minuit demain jusqu'à minuit le jour suivant.

Si vous exécutez cela, à condition qu'il y ait des événements dans votre calendrier sélectionné pour demain, vous devriez les voir listés sous l'éditeur après avoir cliqué sur « Run & Save ».

Notez que cela peut prendre un certain temps avant que quelque chose ne se passe, nous travaillons à l'amélioration de cette partie de la fonctionnalité des workflows personnalisés.

Vous devriez voir un blob JSON enregistré qui correspond à une liste d'événements dans votre calendrier demain.

Ensuite, nous allons envoyer les titres de ces événements à OpenAI pour voir ce qu'il peut proposer.

ChatGPT, à toi de jouer

Prenons nos événements et demandons à ChatGPT de les résumer dans un format simple en utilisant ce code.

Maintenant que nous avons ce résumé, vous pouvez essayer d'exécuter cela pour voir qu'il enregistre correctement un beau résumé à puces des événements de demain.

Bien sûr, vous pouvez modifier cela pour être à peu près n'importe quoi, par exemple vous pourriez vouloir l' édition bande-annonce de film.

Et la réponse est hilarante comme prévu :

Dans un monde rempli de défis et d'opportunités, une équipe se réunit pour conquérir la journée. Préparez-vous pour un voyage épique dans le monde de l'effort corporatif.

À la lumière du matin, l'équipe se rassemble pour leur « Morning Standup » captivant. Témoignez de la camaraderie et de la détermination alors qu'ils partagent leurs progrès, alignent leurs objectifs et se préparent pour les batailles à venir. Avec chaque membre mettant en avant ses compétences et son expertise, c'est un spectacle qui vous inspirera.

Mais la victoire n'est pas sans réflexion. Alors que le soleil se couche et les ombres s'approfondissent, nos héros se trouvent au milieu d'une « Rétrospective » impressionnante. Ensemble, ils se plongent dans le passé, analysant leurs triomphes et leurs défis pour émerger plus forts que jamais…

Ou peut-être un poème ?

À la lumière dorée du matin, nous nous réunissons,
Une équipe unie dans son objectif, il semble,
Le standup chuchote des contes de tâches nouvelles,
Partageant les progrès, les défis et les percées.

Le cœur rempli d'espoir et les yeux grands ouverts,
Nous marchons vers nos objectifs, pas de temps à perdre.
Une symphonie de voix, les idées coulent,
Alors que le standup du matin allume notre lueur partagée.

Mais quand les ombres s'allongent et que le jour prend son péage,
Nous nous réunissons une fois de plus, pour réfléchir ensemble…

Brillant. Il y a quelque chose pour tout le monde ici avec ces résumés d'événements. Et bien sûr, cela reflétera toujours les événements du jour.

Je vous laisse comme exercice d'essayer ces modifications :

  • Ignorer les événements récurrents
  • Écrire un prompt pour gérer le cas où aucun événement n'est programmé
  • Ajouter une description des tâches qui doivent être complétées aujourd'hui et cette semaine

Mais comment envoyer cela à Slack ?

Tant que vous avez configuré votre application Slack, comme décrit dans la section précédente, vous devriez être capable de commencer à envoyer des messages au nom d'un utilisateur bot qui peut être contrôlé avec le token que vous avez copié.

Pour ce faire, récupérez le code ici.

Notez que j'ai envoyé le message au canal « @Luke », c'est ainsi qu'on envoie un message direct en utilisant l'API Slack. Vous devrez changer cela en votre nom d'utilisateur dans l'espace de travail où votre application est installée.

Et avec cela, le workflow est complet. Vous pouvez essayer de l'exécuter, et vous attendre à ce qu'il s'exécute à l'heure configurée dans la section « Trigger ».

Conclusion

Merci d'avoir lu jusqu'au bout de mon blog, j'en suis vraiment reconnaissant et si vous êtes intéressé par en savoir plus sur Morgen Assist, voici quelques liens pour vous aider à démarrer :

  • Consultez notre SDK en pré-alpha pour déployer des Custom Workflows depuis votre propre environnement sur GitHub
  • Venez rejoindre la discussion sur Discord
About the author
Luke
Developer @ Morgen
Luke Barnard est un ancien développeur logiciel chez Morgen, passionné par la création d'outils qui simplifient la façon dont les gens travaillent et collaborent. Diplômé de l'Université de Bath et attaché à un code épuré et centré sur l'utilisateur, Luke travaille sur les fonctionnalités principales et les intégrations qui améliorent la productivité des utilisateurs du monde entier.