Authentifier les utilisateurs dans les actions GPT : Créer un assistant d'agenda personnel
Créez une expérience personnalisée pour vos utilisateurs directement dans votre GPT. Ce tutoriel vous montre comment utiliser OAuth pour créer un assistant d'agenda personnel GPT.
Les GPT sont excellents pour personnaliser profondément l'expérience ChatGPT pour des cas d'utilisation spécifiques. Encore mieux, cela vous permet d'interagir directement avec vos services en utilisant des actions.
Dans ce tutoriel, nous vous montrerons comment utiliser OAuth pour authentifier les utilisateurs dans vos actions GPT. Nous allons créer un assistant d'agenda personnel qui permet aux utilisateurs de gérer leurs événements directement dans le GPT.
Le GPT final ressemblera à ceci :
À gauche, c'est l'interaction de l'utilisateur avec le GPT ; à droite, c'est l'application web qui affiche l'agenda de l'utilisateur. Il y a plus de possibilités avec cette approche, telles que :
- Créer un assistant personnel qui aide les utilisateurs à digérer les e-mails et les nouvelles.
- Créer un GPT pour naviguer et réserver des vols sans quitter la conversation.
Les résultats et ressources de ce tutoriel :
- Le GPT final est disponible sur ChatGPT.
- L'application web de démonstration est disponible sur gpt-agenda.fordemo.app.
- Le code complet est disponible sur GitHub.
Prérequis
- À ce jour, les GPT ne sont disponibles que pour les utilisateurs de ChatGPT Plus et au-dessus.
- Un locataire Logto Cloud. Inscrivez-vous gratuitement si vous n'en avez pas.
- Un domaine que vous pouvez contrôler. Il sera utilisé à la fois pour le GPT et Logto Cloud.
- Une application web qui peut exposer des API REST. Dans ce tutoriel, nous utiliserons l'application d'agenda pré-construite.
Créer et configurer le GPT
Créer un GPT
- Ouvrez ChatGPT, sur la gauche, cliquez sur le bouton Explore GPTs, puis cliquez sur le bouton Create en haut à droite.
- Sur la nouvelle page GPT, entrez un nom et une description pour votre GPT. Par exemple, Assistant d'agenda et Gère votre agenda directement dans la conversation.
- Vous pouvez éventuellement télécharger un logo pour votre GPT, ou utiliser DALL-E pour en générer un en cliquant sur l'icône plus.
Créer une action
Cliquez sur le bouton Create new action en bas. Dans la nouvelle page, il y a trois sections :
- Authentication : Cette section vous permet de configurer la façon dont les utilisateurs s'authentifient avec votre action. Nous le laissons à None pour le moment.
- Schema : Le schéma OpenAPI au format YAML qui définit les API REST pour votre action. Plus le schéma est détaillé, mieux le GPT peut comprendre l'intention de l'utilisateur.
- Privacy policy : L'URL de la politique de confidentialité pour votre action.
Dans ce tutoriel, nous avons une application d'agenda pré-construite qui expose des API REST pour gérer l'agenda de l'utilisateur. Vous pouvez trouver le schéma OpenAPI dans le répertoire GitHub.
Une fois que vous collez le schéma, le GPT reconnaîtra automatiquement les points de terminaison et générera un tableau pour vous. Vous pouvez cliquer sur le bouton Test pour tester les points de terminaison.
Le GPT vous demandera votre autorisation pour effectuer l'appel API. Cliquez sur le bouton Allow ou Always Allow pour continuer.
Si votre point de terminaison nécessite une authentification, vous verrez un message d'erreur comme ci-dessus. Lorsque nous vérifions les journaux du serveur, nous pouvons voir que le GPT envoie la requête sans aucune information d'authentification.
Configurer un domaine personnalisé dans Logto Cloud
ChatGPT requiert que les actions et les points finaux d'authentification soient dans le même domaine racine. Par exemple, si votre point final d'actions est https://api.example.com/
, alors le point final d'authentification doit être quelque chose comme https://auth.example.com/
.
Pour se conformer à cette exigence, nous devons configurer un domaine personnalisé dans Logto Cloud. Après vous être connecté à Logto Cloud, cliquez sur l'onglet Settings sur la gauche, puis cliquez sur l'onglet Domains en haut.
Habituellement, cela ne prend que quelques minutes pour compléter la configuration. Une fois que c'est fait, vous verrez le domaine personnalisé devenir In use.
Créer une application dans Logto Cloud
Pour effectuer l'authentification OAuth, nous devons créer une application dans Logto Cloud. Après vous être connecté à Logto Cloud, cliquez sur l'onglet Applications sur la gauche, puis cliquez sur le bouton Create application en haut à droite.
Sur la nouvelle page, cliquez sur "Create app without framework" en bas. Choisissez "Traditional web" comme type d'application et entrez un nom pour votre application, par exemple, GPT Agenda Assistant. Puis cliquez sur "Create application" en bas.
Après la création de l'application, accédez à la carte ENDPOINTS & CREDENTIALS (vous devrez peut-être faire défiler un peu vers le bas). Cliquez sur Show endpoint details pour développer les informations.
Configurer l'action
Maintenant, revenez à la page d'action GPT, cliquez sur la section Authentication, puis choisissez OAuth. Les éléments du formulaire correspondent aux informations dans Logto Cloud comme suit :
- Client ID : L'App ID dans Logto Cloud.
- Client Secret : L'App secret dans Logto Cloud.
- Authorization URL : Le point final d'autorisation dans Logto Cloud.
- Token URL : Le point final de jeton dans Logto Cloud.
Pour le champ Scope, entrez openid offline_access
; pour le champ "Token Exchange Method", gardez la valeur par défaut (requête POST).
Enfin, cliquez sur le bouton Save en bas.
Mettre à jour la configuration de l'application Logto
Revenez à la page de configuration du GPT, vous pouvez maintenant voir un champ Callback URL sous la section Actions.
Copiez cette URL, puis revenez à la page de l'application Logto Cloud. Collez l'URL dans la section Redirect URIs.
Maintenant, faites défiler vers le bas, activez Always issue Refresh Token pour activer le support du jeton de rafraîchissement pour GPT. Cela peut aider vos utilisateurs à rester connectés plus longtemps dans le GPT.
Puis cliquez sur le bouton Save en bas.
Point de contrôle : Tester le flux OAuth
Maintenant que nous avons tout prêt, testons le flux OAuth pour nous assurer que tout fonctionne comme prévu. Revenez à la page de configuration du GPT, cliquez sur l'action que nous avons créée, puis cliquez sur le bouton Test pour le point final listItems (le premier).
La section de prévisualisation vous invitera à vous connecter. Cliquez sur le bouton Sign in with [your action name], puis terminez le flux OAuth.
Vous pouvez personnaliser l'expérience de connexion, comme le branding et les méthodes de connexion dans Logto Cloud. Pour plus d'informations, veuillez vous référer à 🎨 Personnaliser l'expérience de connexion.
Si tout fonctionne comme prévu, votre serveur backend devrait recevoir une demande avec le jeton d'accès dans l'en-tête Authorization
. Dans notre cas, le serveur backend est l'application d'agenda. Il renverra l'agenda de l'utilisateur dans le corps de la réponse :
Étonnamment, comme notre schéma OpenAPI est suffisamment détaillé, le GPT peut effectuer l'appel API sans aucune configuration supplémentaire. Par exemple, si vous cliquez sur le bouton Test pour le point final createItems, vous verrez que le GPT génère le corps de la requête pour vous (ou vous demande de fournir les informations manquantes, cela dépend de son humeur).
Valider le jeton d'accès
Avec le flux OAuth fonctionnant, nous pouvons maintenant valider le jeton d'accès dans les services backend pour nous assurer que la demande provient d'un utilisateur authentifié. Comme Logto est un fournisseur OIDC, nous pouvons utiliser le point final Userinfo pour valider le jeton d'accès. Le point final peut être trouvé dans la page de l'application Logto Cloud.
Envoyez simplement une requête GET au point final avec le jeton d'accès dans l'en-tête Authorization
. Si le jeton d'accès est valide, le point final renverra les informations de l'utilisateur dans le corps de la réponse. Voici un exemple en utilisant Node.js :
Vous pouvez trouver le code complet dans le répertoire GitHub.
Bonus : Synchronisation en temps réel avec l'application principale
Vous pouvez avoir votre propre application d'agenda, et avec l'authentification, vous pouvez synchroniser l'agenda de l'utilisateur en temps réel sans quitter la conversation. Pour voir la synchronisation en temps réel en action, vous pouvez vous rendre sur l'application web et vous connecter avec le même compte que vous avez utilisé dans le GPT de démonstration.
Conclusion
Les actions GPT peuvent être un outil puissant pour créer une expérience personnalisée pour vos utilisateurs. Si vous avez des questions ou des commentaires, n'hésitez pas à rejoindre notre serveur Discord pour en discuter.