Türkçe
  • gpt
  • oauth
  • openai

GPT eylemlerinde kullanıcıları kimlik doğrulayın: Kişisel bir ajanda asistanı oluşturun

Kullanıcılarınız için GPT'nizde kişiselleştirilmiş bir deneyim oluşturun. Bu eğitim, OAuth'u kullanarak kişisel bir ajanda asistanı GPT'si oluşturmayı gösterir.

Gao
Gao
Founder

GPT'ler belirli kullanım durumları için ChatGPT deneyimini derinlemesine özelleştirmek için harikadır. Daha da iyisi, eylemler kullanarak hizmetlerinizle doğrudan etkileşim kurmanızı sağlar.

Bu eğitimde, GPT'lerinizin eylemlerinde kullanıcıları kimlik doğrulamak için OAuth'u nasıl kullanacağınızı göstereceğiz. Kullanıcıların etkinliklerini GPT'nin içinde yönetmelerine olanak tanıyan kişisel bir ajanda asistanı oluşturacağız.

Son GPT şöyle görünecek:

Sol taraf, kullanıcının GPT ile etkileşimini; sağ taraf ise kullanıcının ajandasını gösteren web uygulamasını içerir. Bu yaklaşım ile daha fazla olasılık mevcuttur, örneğin:

  • Kullanıcıların e-postaları ve haberleri sindirmesine yardımcı olan bir kişisel asistan oluşturun.
  • Konuşmadan ayrılmadan uçuşları gözden geçiren ve rezerve eden bir GPT oluşturun.

Bu eğitimin sonuçları ve kaynakları:

Ön Koşullar

  • Bu yazının yazıldığı sırada, GPT'ler yalnızca ChatGPT Plus ve üzeri kullanıcılar için kullanılabilir.
  • Bir Logto Cloud kiracısı. Henüz yoksa ücretsiz Kaydolun.
  • Kontrol edebileceğiniz bir alan adı. Hem GPT hem de Logto Cloud için kullanılacaktır.
  • REST API'larını açığa çıkarabilen bir web uygulaması. Bu eğitimde, önceden oluşturulmuş ajanda uygulamasını kullanacağız.

GPT oluştur ve yapılandır

GPT oluştur

  1. ChatGPT adresini açın, sol tarafta, GPT'leri Keşfet butonuna tıklayın, ardından sağ üst köşedeki Oluştur butonuna tıklayın.
  2. Yeni GPT sayfasında, GPT'niz için bir ad ve açıklama girin. Örneğin, Ajanda Asistanı ve Ajandanızı doğrudan konuşmada yönetir.
  3. GPT'niz için bir logo yükleyebilir veya artı simgesine tıklayarak DALL-E'yi kullanarak bir logo oluşturabilirsiniz.

Bir eylem oluştur

Sağ altta Yeni eylem oluştur butonuna tıklayın. Yeni sayfada üç bölüm bulunmaktadır:

  • Kimlik Doğrulama: Bu bölüm, kullanıcıların eyleminizle nasıl kimlik doğrulaması yapacağını yapılandırmanızı sağlar. Şimdilik Hiçbiri olarak bırakıyoruz.
  • Şema: Eyleminiz için REST API'larını tanımlayan YAML formatında OpenAPI şeması. Şema ne kadar detaylı olursa, GPT kullanıcının niyetini o kadar iyi anlayabilir.
  • Gizlilik politikası: Eyleminizin gizlilik politikası URL'si.

Bu eğitimde, kullanıcının ajandasını yönetmek için REST API'larını açığa çıkaran önceden oluşturulmuş bir ajanda uygulaması bulunmaktadır. OpenAPI şemasını GitHub deposunda bulabilirsiniz.

Şemayı yapıştırdığınızda, GPT otomatik olarak uç noktaları tanıyacak ve sizin için bir tablo üretecektir. Uç noktaları test etmek için Test et butonuna tıklayabilirsiniz.

Eylemleri ekleyin

GPT, API çağrısını gerçekleştirmek için izninizi isteyecektir. Devam etmek için İzin Ver veya Her Zaman İzin Ver butonuna tıklayın.

Eylemleri test et

Uç noktanız kimlik doğrulaması gerektiriyorsa, yukarıdaki gibi bir hata mesajı göreceksiniz. Sunucu günlüklerini kontrol ettiğimizde, GPT'nin kimlik doğrulama bilgisi olmadan isteği gönderdiğini görebiliriz.

Eylem hatası test et


Kimlik doğrulaması olmadan API çağrısı

Logto Cloud'da özel alan adı yapılandırın

ChatGPT, hem eylemlerin hem de kimlik doğrulama uç noktalarının aynı kök alan adında olmasını gerektirir. Örneğin, eylemler uç noktanız https://api.example.com/ ise, kimlik doğrulama uç noktası https://auth.example.com/ gibi olmalıdır.

Bu gereksinimi karşılamak için Logto Cloud'da özel bir alan adı yapılandırmamız gerekiyor. Logto Cloud'a giriş yaptıktan sonra, sol taraftaki Ayarlar sekmesine, ardından üstteki Alanlar sekmesine tıklayın.

Genellikle yapılandırmanın tamamlanması sadece birkaç dakika sürer. İşlem tamamlandıktan sonra, özel alan adının Kullanılıyor hale geldiğini göreceksiniz.

Özel alan adı

Logto Cloud'da bir uygulama oluştur

OAuth kimlik doğrulaması gerçekleştirmek için Logto Cloud'da bir uygulama oluşturmanız gerekiyor. Logto Cloud'a giriş yaptıktan sonra, sol taraftaki Uygulamalar sekmesine, ardından sağ üst köşedeki Uygulama oluştur butonuna tıklayın.

Yeni sayfada, altta "Çerçevesiz uygulama oluştur" butonuna tıklayın. Uygulama türü olarak "Geleneksel web" seçin ve uygulamanız için bir ad girin, örneğin, GPT Ajanda Asistanı. Ardından altta "Uygulama oluştur" butonuna tıklayın.

Uygulama oluşturulduktan sonra, ŞEHE VE KIMLIK BİLGİLERİ kartına gidin (biraz aşağı kaydırmanız gerekebilir). Bilgileri genişletmek için Uç nokta bilgilerini göster butonuna tıklayın.

Logto uygulama yapılandırması

Eylemi yapılandır

Şimdi, GPT eylem sayfasına geri dönün, Kimlik Doğrulama bölümüne tıklayın, sonra OAuth seçin. Form öğeleri Logto Cloud'daki bilgilerle şöyle eşleşir:

  • İstemci ID: Logto Cloud'daki Uygulama Kimliği.
  • İstemci Gizliliği: Logto Cloud'daki Uygulama gizliliği.
  • Yetkilendirme URL'si: Logto Cloud'daki Yetkilendirme uç noktası.
  • Token URL'si: Logto Cloud'daki Token uç noktası.

Kapsam alanı için openid offline_access girin; "Token Değişim Yöntemi" alanı için varsayılan değeri (POST isteği) koruyun.

GPT eylem kimlik doğrulama yapılandırması

Son olarak, aşağıdaki Kaydet butonuna tıklayın.

Logto uygulama yapılandırmasını güncelleyin

GPT yapılandırma sayfasına geri dönün, şimdi Eylemler bölümünün altında bir Geri Çağırma URL'si alanı görebilirsiniz.

O URL'yi kopyalayın, ardından Logto Cloud uygulama sayfasına geri dönün. URL'yi Yönlendirme URI'ları bölümüne yapıştırın.

Logto uygulama yönlendirme URI'ları

Şimdi, aşağı kaydırarak, GPT için yenileme token desteğini etkinleştirmek üzere Her zaman Yenileme Tokeni Yayınla seçeneğini açın. Bu, kullanıcılarınızın GPT'de daha uzun süre oturum açmış durumda kalmalarına yardımcı olabilir.

Ardından aşağıdaki Kaydet butonuna tıklayın.

Kontrol noktası: OAuth akışını test edin

Şimdi her şey hazır, OAuth akışını test edelim ve her şeyin beklendiği gibi çalıştığından emin olalım. GPT yapılandırma sayfasına geri dönün, oluşturduğumuz eyleme tıklayın, ardından listItems uç noktası için Test butonuna tıklayın (ilk olan).

Önizleme bölümü oturum açmanızı isteyecektir. [eylem adınız ile] oturum aç butonuna tıklayın, ardından OAuth akışını tamamlayın.

Oturum açma istemini test et

Logto Cloud'da marka ve oturum açma yöntemleri gibi giriş deneyimini özelleştirebilirsiniz. Daha fazla bilgi için 🎨 Giriş deneyimini özelleştirin adresine bakın.

Her şey beklendiği gibi çalışıyorsa, arka uç sunucunuz Authorization başlığında erişim tokeniyle bir istek almalıdır. Bizim durumumuzda, arka uç sunucusu ajanda uygulamasıdır. Yanıt gövdesinde kullanıcının ajandasını döndürecektir:

API başarısını test et

Şaşırtıcı bir şekilde, OpenAPI şemamız yeterince ayrıntılı olduğu için, GPT herhangi bir ek yapılandırma olmadan API çağrısını gerçekleştirebilir. Örneğin, createItems uç noktası için Test et butonuna tıklarsanız, GPT'nin sizin için istek gövdesini oluşturduğunu (veya eksik bilgiyi sağlamanızı istediğini, moduna bağlı olarak) göreceksiniz.

API oluşturma test et

Erişim tokenini doğrula

OAuth akışı çalıştığında, şimdi isteğin kimliği doğrulanmış bir kullanıcıdan geldiğinden emin olmak için arka uç servislerinde erişim tokenini doğrulayabiliriz. Logto bir OIDC sağlayıcısı olduğundan, Kullanıcı bilgi uç noktasını erişim tokenini doğrulamak için kullanabiliriz. Uç nokta Logto Cloud uygulama sayfasında bulunabilir.

Basitçe, Authorization başlığında erişim tokeniyle uç noktaya bir GET isteği gönderin. Erişim tokeni geçerliyse, uç nokta yanıt gövdesinde kullanıcının bilgilerini döndürecektir. İşte bir Node.js kullanarak örnek:

Tam kodu GitHub deposunda bulabilirsiniz.

Bonus: Ana uygulama ile gerçek zamanlı senkronizasyon

Kendi ajanda uygulamanız olabilir ve kimlik doğrulama ile, kullanıcıların ajandasını konuşmadan çıkmadan gerçek zamanlı olarak senkronize edebilirsiniz. Gerçek zamanlı senkronizasyonu eylemde görmek için, web uygulaması adresine gidin ve demo GPT'de kullandığınız aynı hesapla oturum açın.

Sonuç

GPT eylemleri, kullanıcılarınıza kişiselleştirilmiş bir deneyim oluşturmak için güçlü bir araç olabilir. Herhangi bir sorunuz veya geri bildiriminiz varsa, lütfen tartışma için Discord sunucumuza katılın.