• gpt
  • oauth
  • openai

Autentisera användare i GPT-åtgärder: Bygg en personlig agendaassistent

Bygg en personlig upplevelse för dina användare direkt i din GPT. Denna handledning visar hur du använder OAuth för att skapa en personlig agendaassistent-GPT.

Gao
Gao
Founder

GPTs är utmärkta för att anpassa ChatGPT-upplevelsen för specifika användningsområden. Ännu bättre är att det låter dig interagera direkt med dina tjänster genom actions.

I denna handledning kommer vi att visa hur du använder OAuth för att autentisera användare i dina GPT-åtgärder. Vi kommer att bygga en personlig agendaassistent som låter användare hantera sina händelser direkt i GPT.

Den slutliga GPT kommer att se ut så här:

Vänster sida är användarens interaktion med GPT; höger sida är webapp som visar användarens agenda. Det finns fler möjligheter med detta tillvägagångssätt, som till exempel:

  • Skapa en personlig assistent som hjälper användare att smälta e-post och nyheter.
  • Skapa en GPT för att bläddra och boka flyg utan att lämna konversationen.

Resultaten och resurserna för denna handledning:

Förutsättningar

  • Vid tidpunkten för skrivande är GPTs endast tillgängliga för ChatGPT Plus och ovan användare.
  • En Logto Cloud-klient. Registrera dig gratis om du inte har en.
  • En domän som du kan kontrollera. Den kommer att användas för både GPT och Logto Cloud.
  • En webapp som kan exponera REST API:er. I denna handledning kommer vi att använda den förbyggda agendaappen.

Skapa och konfigurera GPT

Skapa en GPT

  1. Öppna ChatGPT, på vänster sida, klicka på Utforska GPTs-knappen och sedan klicka på Skapa-knappen uppe i högra hörnet.
  2. På den nya GPT-sidan, ange ett namn och beskrivning för din GPT. Till exempel, Agenda Assistant och Hantera din agenda direkt i konversationen.
  3. Du kan valfritt ladda upp en logotyp för din GPT, eller använda DALL-E för att generera en åt dig genom att klicka på plusikonen.

Skapa en åtgärd

Klicka på Skapa ny åtgärd-knappen längst ner. På den nya sidan finns det tre sektioner:

  • Autentisering: Denna sektion låter dig konfigurera hur användare autentiseras med din åtgärd. Vi lämnar den Ingen för tillfället.
  • Schema: OpenAPI-schemat i YAML-format som definierar REST API:er för din åtgärd. Ju mer detaljerat schemat är, desto bättre kan GPT förstå användarens avsikt.
  • Sekretesspolicy: Sekretesspolicy-länken för din åtgärd.

I denna handledning har vi en förbyggd agendaapp som exponerar REST API:er för att hantera användarens agenda. Du kan hitta OpenAPI-schemat i GitHub-repo.

När du klistrar in schemat kommer GPT automatiskt att känna igen ändpunkterna och generera en tabell åt dig. Du kan klicka på Testa-knappen för att testa ändpunkterna.

Lägg till åtgärder

GPT kommer att be om din beviljan att utföra API-anropet. Klicka på Tillåt eller Tillåt alltid-knappen för att fortsätta.

Testa åtgärder

Om din ändpunkt kräver autentisering kommer du att se ett felmeddelande som ovan. När vi kontrollerar serverloggarna kan vi se att GPT skickar förfrågningen utan någon autentiseringsinformation.

Testa åtgärder fel


API-anrop utan autentisering

Konfigurera anpassad domän i Logto Cloud

ChatGPT kräver att både åtgärderna och autentiseringsändpunkterna ska vara i samma rotdomän. Till exempel, om din åtgärdsändpunkt är https://api.example.com/, då måste autentiseringsändpunkten vara något som https://auth.example.com/.

För att uppfylla detta krav måste vi konfigurera en anpassad domän i Logto Cloud. När du loggar in på Logto Cloud, klicka på Inställningar-fliken till vänster och sedan på Domäner-fliken upptill.

Vanligtvis tar det bara några minuter att slutföra konfigurationen. När det är klart ser du att den anpassade domänen blir I användning.

Anpassad domän

Skapa en app i Logto Cloud

För att utföra OAuth-autentisering behöver vi skapa en app i Logto Cloud. När du loggar in på Logto Cloud, klicka på Applikationer-fliken till vänster och sedan på Skapa applikation-knappen uppe i högra hörnet.

På den nya sidan, klicka "Skapa app utan ramverk" längst ner. Välj "Traditionell webb" som applikationstyp och ange ett namn för din app, till exempel, GPT Agenda Assistant. Klicka sedan "Skapa applikation" längst ner.

När appen är skapad, navigera till ÄNDPUNKTER & REFERENSER-kortet (du kan behöva rulla nedåt lite). Klicka Visa ändpunkt detaljer för att expandera informationen.

Logto app config

Konfigurera åtgärden

Nu, navigera tillbaka till GPT-åtgärdssidan, klicka på Autentisering-sektionen och välj sedan OAuth. Formposterna matchar informationen i Logto Cloud enligt följande:

  • Klient-ID: App-ID i Logto Cloud.
  • Klienthemlighet: App hemlighet i Logto Cloud.
  • Autentiserings-URL: Autentiseringsändpunkt i Logto Cloud.
  • Token-URL: Token-ändpunkt i Logto Cloud.

För Scope-fältet, ange openid offline_access; för fältet "Token Exchange Method", håll defaultvärdet (POST-begäran).

GPT åtgärdsautentiseringskonfig

Slutligen, klicka på Spara-knappen längst ner.

Uppdatera Logto app-konfiguration

Gå tillbaka till GPT-konfigurationssidan, nu kan du se ett Återrops-URL-fält under Åtgärder-sektionen.

Kopiera den länken, gå sedan tillbaka till Logto Cloud-appsidan. Klistra in länken i Omledning-URI:er-sektionen.

Logto app omlednings-URI:er

Nu, rulla ner till botten, växla på Alltid utfärda Uppfriskningstoken för att aktivera support för uppfriskningstoken för GPT. Detta kan hjälpa dina användare att förbli inloggade under en längre tid i GPT.

Klicka sedan på Spara-knappen längst ner.

Kontrollpunkt: Testa OAuth-flödet

Nu har vi allt klart, låt oss testa OAuth-flödet för att säkerställa att allt fungerar som förväntat. Gå tillbaka till GPT-konfigurationssidan, klicka på åtgärden vi skapade, klicka sedan på Testa-knappen för listItems-ändpunkten (den första).

Förhandsvisningssektionen kommer att uppmana dig att logga in. Klicka på Logga in med [ditt åtgärdsnamn]-knappen och avsluta sedan OAuth-flödet.

Testa inloggningsprompt

Du kan anpassa inloggningsupplevelsen, som varumärke och inloggningsmetoder i Logto Cloud. För mer information, vänligen se 🎨 Anpassa inloggningsupplevelse.

Om allt fungerar som förväntat, bör din backend-server ta emot en begäran med åtkomsttoken i Authorization-rubriken. I vårt fall är backend-servern agendaappen. Den returnerar användarens agenda i svarskroppen:

Testa API-framgång

Otroligt nog, eftersom vårt OpenAPI-schema är tillräckligt detaljerat, kan GPT utföra API-anropet utan någon ytterligare konfiguration. Till exempel, om du klickar på Testa-knappen för createItems-ändpunkten, kommer du att se GPT genererar begärankroppen åt dig (eller be dig tillhandahålla den saknade informationen, beroende på dess humör).

Testa API-skapande

Validera åtkomsttoken

Med OAuth-flödet fungerande, kan vi nu validera åtkomsttoken i backend-tjänster för att säkerställa att begäran kommer från en autentiserad användare. Eftersom Logto är en OIDC-leverantör kan vi använda Userinfo-ändpunkten för att validera åtkomsttoken. Ändpunkten kan hittas på Logto Cloud-appsidan.

Skicka enkelt en GET-begäran till ändpunkten med åtkomsttoken i Authorization-rubriken. Om åtkomsttoken är giltig, returnerar ändpunkten användarens information i svarskroppen. Här är ett exempel med Node.js:

Du kan hitta den fullständiga koden i GitHub-repo.

Bonus: Realtidssynkronisering med huvudappen

Du kanske har din egna agendaapp, och med autentisering kan du synkronisera användarens agenda i realtid utan att lämna konversationen. För att se realtidssynkroniseringen i aktion, kan du gå över till webapp och logga in med samma konto du använde i demo-GPT.

Slutsats

GPT-åtgärder kan vara ett kraftfullt verktyg för att bygga en personlig upplevelse för dina användare. Om du har några frågor eller feedback, tveka inte att gå med i vår Discord-server för diskussion.