Deutsch
  • gpt
  • oauth
  • openai

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.

Gao
Gao
Founder

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:

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

  1. Öffne ChatGPT, klicke auf der linken Seite auf den Erkunde GPTs Button und dann auf den Erstellen Button in der oberen rechten Ecke.
  2. 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.
  3. 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.

Aktionen hinzufügen

Das GPT wird dich um Erlaubnis bitten, den API-Aufruf durchzuführen. Klicke auf den Erlauben oder Immer erlauben Button, um fortzufahren.

Aktionen testen

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.

Testaktionen-Fehler


API-Aufruf ohne Authentifizierung

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.

Benutzerdefinierte Domain

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.

Logto App-Konfiguration

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.

GPT-Aktionsauthentifizierungskonfiguration

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.

Logto App Redirect URIs

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.

Test-Anmeldungsaufforderung

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:

Test API Erfolg

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).

Test API erstellen

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.