Authentifiziere Benutzer in GPT-Aktionen: Baue einen persönlichen Agenda-Assistenten
Erstelle ein personalisiertes Erlebnis für deine Benutzer direkt in deinem GPT. Dieses Tutorial zeigt dir, wie du OAuth verwendest, um einen persönlichen Agenda-Assistenten GPT zu erstellen.
GPTs sind ideal, um das ChatGPT-Erlebnis für spezifische Anwendungsfälle tiefgreifend anzupassen. Noch besser, sie ermöglichen es dir, direkt mit deinen Diensten über Aktionen zu interagieren.
In diesem Tutorial zeigen wir dir, wie du OAuth verwendest, um Benutzer in deinen GPT-Aktionen zu authentifizieren. Wir werden einen persönlichen Agenda-Assistenten erstellen, der es den Benutzern ermöglicht, ihre Veranstaltungen direkt im GPT zu verwalten.
Der finale GPT wird so aussehen:
Die linke Seite ist die Interaktion des Benutzers mit dem GPT; die rechte Seite ist die Web-App, die die Agenda des Benutzers zeigt. Mit diesem Ansatz gibt es weitere Möglichkeiten, wie zum Beispiel:
- Erstelle einen persönlichen Assistenten, der Benutzern hilft, E-Mails und Nachrichten zu verarbeiten.
- Erstelle einen GPT zum Durchsuchen und Buchen von Flügen, ohne das Gespräch zu verlassen.
Die Ergebnisse und Ressourcen dieses Tutorials:
- Der finale GPT ist verfügbar auf ChatGPT.
- Die Demo-Web-App ist verfügbar auf gpt-agenda.fordemo.app.
- Der vollständige Code ist verfügbar auf GitHub.
Voraussetzungen
- Zum Zeitpunkt des Schreibens sind GPTs nur für ChatGPT Plus und höhere Benutzer verfügbar.
- Ein Logto Cloud-Mandant. Melde dich kostenlos an, wenn du noch keinen hast.
- Eine Domain, die du kontrollieren kannst. Sie wird sowohl für das GPT als auch für Logto Cloud verwendet.
- Eine Web-App, die REST-APIs bereitstellen kann. In diesem Tutorial verwenden wir die vorgefertigte Agenda-App.
Erstelle und konfiguriere das GPT
Erstelle ein GPT
- Öffne ChatGPT, klicke auf der linken Seite auf den Erkunde GPTs Button und dann auf den Erstellen Button in der oberen rechten Ecke.
- Gib auf der neuen GPT-Seite einen Namen und eine Beschreibung für dein GPT ein. Zum Beispiel, Agenda-Assistent und Verwaltet deine Agenda direkt im Gespräch.
- Du kannst optional ein Logo für dein GPT hochladen oder DALL-E verwenden, um eines für dich zu erstellen, indem du auf das Plus-Symbol klickst.
Erstelle eine Aktion
Klicke auf den Neue Aktion erstellen Button unten. Auf der neuen Seite gibt es drei Abschnitte:
- Authentifizierung: In diesem Abschnitt kannst du konfigurieren, wie Benutzer sich mit deiner Aktion authentifizieren. Wir belassen es zunächst auf Keine.
- Schema: Das OpenAPI Schema im YAML-Format, das die REST-APIs für deine Aktion definiert. Je detaillierter das Schema ist, desto besser kann das GPT die Absicht des Benutzers verstehen.
- Datenschutzrichtlinie: Die URL der Datenschutzrichtlinie für deine Aktion.
In diesem Tutorial haben wir eine vorgefertigte Agenda-App, die REST-APIs zum Verwalten der Agenda des Benutzers bereitstellt. Das OpenAPI-Schema findest du im GitHub-Repository.
Sobald du das Schema eingibst, erkennt das GPT automatisch die Endpunkte und generiert eine Tabelle für dich. Du kannst auf den Testen Button klicken, um die Endpunkte zu testen.
Das GPT wird dich um Erlaubnis bitten, den API-Aufruf durchzuführen. Klicke auf den Erlauben oder Immer erlauben Button, um fortzufahren.
Wenn dein Endpunkt eine Authentifizierung erfordert, siehst du eine Fehlermeldung wie die oben. Wenn wir die Serverprotokolle überprüfen, können wir sehen, dass das GPT die Anfrage ohne jegliche Authentifizierungsinformationen sendet.
Benutzerdefinierte Domain in Logto Cloud konfigurieren
ChatGPT erfordert, dass sowohl die Aktionen als auch die Authentifizierungsendpunkte in derselben Root-Domain liegen. Wenn zum Beispiel dein Aktionen-Endpunkt https://api.example.com/
ist, dann muss der Authentifizierungsendpunkt etwas wie https://auth.example.com/
sein.
Um diese Anforderung zu erfüllen, müssen wir eine benutzerdefinierte Domain in Logto Cloud konfigurieren. Nachdem du dich in Logto Cloud angemeldet hast, klicke auf die Einstellungen Registerkarte auf der linken Seite und dann auf die Domains Registerkarte oben.
Normalerweise dauert die Konfiguration nur wenige Minuten. Sobald sie abgeschlossen ist, siehst du, dass die benutzerdefinierte Domain In Verwendung wird.
Eine App in Logto Cloud erstellen
Um die OAuth-Authentifizierung durchzuführen, müssen wir eine App in Logto Cloud erstellen. Nachdem du dich in Logto Cloud angemeldet hast, klicke auf die Anwendungen Registerkarte auf der linken Seite und dann auf den Anwendung erstellen Button oben rechts.
Klicke auf der neuen Seite unten auf "App ohne Framework erstellen". Wähle "Traditionelles Web" als Anwendungstyp und gib einen Namen f ür deine App ein, zum Beispiel GPT-Agen Assistent. Dann klicke unten auf "Anwendung erstellen".
Nachdem die App erstellt wurde, navigiere zur ENDPOINTS & CREDENTIALS Karte (du musst vielleicht ein wenig nach unten scrollen). Klicke auf Endpunktdetails anzeigen, um die Informationen zu erweitern.
Die Aktion konfigurieren
Navigiere nun zurück zur GPT-Aktionsseite, klicke auf den Authentifizierungs-Abschnitt und wähle OAuth. Die Formularelemente entsprechen den Informationen in der Logto Cloud wie folgt:
- Client-ID: Die App-ID in Logto Cloud.
- Client-Geheimnis: Das App-Geheimnis in Logto Cloud.
- Autorisierungs-URL: Der Autorisierungsendpunkt in Logto Cloud.
- Token-URL: Der Token-Endpunkt in Logto Cloud.
Für das Scope Feld gib openid offline_access
ein; für das "Token Exchange Method" Feld behalte den Standardwert (POST-Anfrage) bei.
Klicke schließlich auf den Speichern Button unten.
Logto App-Konfiguration aktualisieren
Gehe zurück zur GPT-Konfigurationsseite, jetzt kannst du ein Callback-URL Feld unter dem Aktionen-Abschnitt sehen.
Kopiere diese URL, gehe dann zurück zur Logto Cloud App-Seite. Füge die URL im Redirect-URIs Abschnitt ein.
Scrolle nun nach unten, aktiviere Immer Refresh Token ausgeben, um die Unterstützung für Refresh Tokens im GPT zu aktivieren. Dies kann deinen Benutzern helfen, länger im GPT angemeldet zu bleiben.
Dann klicke auf den Speichern Button unten.
Checkpoint: Teste den OAuth-Fluss
Jetzt haben wir alles bereit, lass uns den OAuth-Fluss testen, um sicherzustellen, dass alles wie erwartet funktioniert. Gehe zurück zur GPT-Konfigurationsseite, klicke auf die Aktion, die wir erstellt haben, und dann auf den Testen Button für den listItems Endpunkt (den ersten).
Der Vorschaubereich wird dich auffordern, dich anzumelden. Klicke auf den Mit [deinem Aktionsnamen] anmelden Button und beende den OAuth-Fluss.
Du kannst das Anmeldeerlebnis wie das Branding und die Anmeldemethoden in Logto Cloud anpassen. Für weitere Informationen siehe 🎨 Anmeldeerfahrung anpassen.
Wenn alles wie erwartet funktioniert, sollte dein Backend-Server eine Anfrage mit dem Zugriffstoken im Authorization
Header erhalten. In unserem Fall ist der Backend-Server die Agenda-App. Sie gibt die Agenda des Benutzers im Antwortkörper zurück:
Erstaunlicherweise kann das GPT, da unser OpenAPI-Schema ausreichend detailliert ist, den API-Aufruf ohne weitere Konfiguration durchführen. Wenn du zum Beispiel auf den Testen Button für den createItems Endpunkt klickst, wirst du sehen, dass das GPT den Anforderungskörper für dich generiert (oder dich auffordert, die fehlenden Informationen bereitzustellen, je nach seiner Stimmung).
Zugriffs-Token validieren
Mit dem funktionierenden OAuth-Fluss können wir nun das Zugriffs-Token in den Backend-Diensten validieren, um sicherzustellen, dass die Anfrage von einem authentifizierten Benutzer stammt. Da Logto ein OIDC-Anbieter ist, können wir den Userinfo-Endpunkt verwenden, um das Zugriffs-Token zu validieren. Der Endpunkt kann auf der Logto Cloud App-Seite gefunden werden.
Sende einfach eine GET-Anfrage an den Endpunkt mit dem Zugriffstoken im Authorization
Header. Wenn das Zugriffs-Token gültig ist, gibt der Endpunkt die Informationen des Benutzers im Antwortkörper zurück. Hier ist ein Beispiel mit Node.js:
Den vollständigen Code findest du im GitHub-Repo.
Bonus: Echtzeit-Synchronisation mit der Haupt-App
Du hast möglicherweise deine eigene Agenda-App, und mit der Authentifizierung kannst du die Agenda des Benutzers in Echtzeit synchronisieren, ohne das Gespräch zu verlassen. Um die Echtzeit-Synchronisierung in Aktion zu sehen, kannst du zur Web-App gehen und dich mit demselben Konto anmelden, das du im Demo-GPT verwendet hast.
Fazit
GPT-Aktionen können ein mächtiges Werkzeug sein, um ein personalisiertes Erlebnis für deine Benutzer zu schaffen. Wenn du Fragen oder Feedback hast, zögere nicht, unserem Discord-Server für Diskussionen beizutreten.