Dialogflow uygulaması için ön uç Django istemcisi oluşturma

Bu codelab'de, Dialogflow uygulaması için sohbet deneyimi oluşturmak amacıyla bir ön uç Django istemcisi oluşturmayı öğreneceksiniz. Özellikle şunları yapacaksınız:

  • Django ön uç istemcisini indirin, kurun ve çalıştırın.
  • Django ön uç istemcisinden çağrılacak Dialogflow algılayıcı intent uç noktası oluşturun.
  • Uygulamayı App Engine'de Google Cloud'a dağıtın.
  • Takvim davetlerinin kullanıcı isteği başına ayarlanıp ayarlanmadığını test edin.

Ön koşullar

Devam etmeden önce aşağıdaki codelab'leri tamamlamanız gerekir:

  1. Dialogflow ile randevu planlayıcısı oluşturma
  2. Dialogflow'daki varlıkları anlama
  3. Dialogflow'u Takvim'e entegre ederek karşılamayı anlama

Neler öğreneceksiniz?

  • Dialogflow için Django ön uç istemcisi ayarlama ve çalıştırma
  • Django ön uç istemcisini App Engine'de Google Cloud'a dağıtma
  • Özel bir ön uçtan Dialogflow uygulaması test etme

Derlemeniz istenen nedir?

  • Dialogflow için bir Django ön uç istemcisi oluşturup çalıştırmanız gerekir.
  • Django ön uç istemcisini App Engine'de Google Cloud'a dağıtacaksınız.
  • Bu özel ön uçtan bir Dialogflow uygulaması test edeceksiniz.

Gerekenler

  • Python'la ilgili temel bilgiler
  • Dialogflow ile ilgili temel bilgiler

Daha önce oluşturduğunuz Randevu Planlayıcı görüşme deneyimini kullanırsınız ve uygulama için özel bir ön uç oluşturursunuz. Ön ucu Django ile oluşturur, yerel olarak çalıştırır ve test eder, ardından App Engine'e dağıtırsınız.

Kullanıcı, ön uç aracılığıyla bir randevu isteği gönderir. Bu istek, istenen tarih ve saat için bir randevu ayarlamak üzere DialogflowdetectIntent API'yi çağırır. Ardından Dialogflow karşılama işlemi, Takvim'e ilgili randevuyu ayarlamak ve kullanıcıya Dialogflow üzerinden onay göndermek için bir istek gönderir.

Sonuç şöyle görünür:

  1. Bilgisayarınızın yerel terminaline bu komutu yazarak kod deposunu yerel makinenize klonlayın:
git clone https://github.com/priyankavergadia/Django-Dialogflow-Appointment-Scheduler.git
  1. Kodu içeren dizinde değişiklik yapın. Alternatif olarak, örneği bir ZIP dosyası olarak indirip ayıklayabilirsiniz.
cd Django-Dialogflow-Appointment-Scheduler

Uygulamanız dağıtıldığında, Cloud SQL örneğinizle iletişim kurmak için App Engine standart ortamında yerleşik olan Cloud SQL Proxy'yi kullanır. Bununla birlikte, uygulamanızı yerel olarak test etmek için geliştirme ortamınızda Cloud SQL Proxy'in yerel bir kopyasını yükleyip kullanmanız gerekir. Daha fazla bilgi için Cloud SQL Proxy hakkında başlıklı makaleye bakın.

Cloud SQL örneğinizde temel yönetici görevlerini gerçekleştirmek için MySQL için Cloud SQL istemcisini kullanabilirsiniz.

Cloud SQL Proxy'yi yükleme

Cloud SQL Proxy'yi indirip yükleyin. Cloud SQL Proxy, yerel olarak çalışırken Cloud SQL örneğinize bağlanmak için kullanılır.

Proxy'yi indirin.

curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64

Proxy'yi yürütülebilir hale getirin.

chmod +x cloud_sql_proxy

Cloud SQL örneği oluşturma

  1. MySQL için Cloud SQL İkinci Nesil örneği oluşturun. Örneği "anket-örnek" veya benzer bir şekilde adlandırın. Örneğin hazır hale gelmesi birkaç dakika sürebilir. Hazır olduktan sonra örnek listesinde görünür olması gerekir.
  2. [YOUR_INSTANCE_NAME] komutunun örneğinizin adını temsil ettiği aşağıdaki komutu çalıştırmak için gcloud aracını kullanın. Sonraki adım için örnek bağlantı adı olarak gösterilen değeri not edin. Bu not, [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]. biçiminde gösterilir.
gcloud sql instances describe [YOUR_INSTANCE_NAME]

Alternatif olarak, Örnek bağlantı adını görmek için örneği tıklayabilirsiniz.

Cloud SQL örneğinizi ilk kullanıma hazırlama

Önceki adımda verilen örnek bağlantı adını kullanarak Cloud SQL Proxy'yi başlatın. [YOUR_INSTANCE_CONNECTION_NAME] değerini önceki adımda kaydettiğiniz değerle değiştirin. Bu, yerel test amacıyla yerel bilgisayarınızdan örneğinize bağlantı oluşturur. Uygulamanızı yerel olarak test ederken Cloud SQL Proxy'yi çalışır durumda tutun.

./cloud_sql_proxy -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306

Ardından, yeni bir Cloud SQL kullanıcısı ve veritabanı oluşturun.

  1. Google Cloud Console'u kullanarak polls-instance adlı Cloud SQL örneğiniz için yeni bir veritabanı oluşturun. Örneğin, ad olarak"anket"yazabilirsiniz.
  2. polls-instance adlı Cloud SQL örneğiniz için Cloud Console'u kullanarak yeni bir kullanıcı hesabı oluşturun.

Veritabanı ayarlarını yapılandırma

  1. Düzenlemek için mysite/settings.py uygulamasını açın.
  2. İki yerde, [YOUR-USERNAME] ve [YOUR-PASSWORD] değerlerini önceki bölümde oluşturduğunuz veritabanı kullanıcı adı ve şifresiyle değiştirin. Bu, App Engine dağıtımı ve yerel test için veritabanı bağlantısının ayarlanmasına yardımcı olur.
  3. ‘HOST': ‘cloudsql/ [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] adlı satırdaki', [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] yerine önceki bölümde kaydettiğiniz değeri yazın.
  4. Aşağıdaki komutu çalıştırın ve bir sonraki adım için iletilen örnek bağlantı adı değerini kopyalayın.
gcloud sql instances describe [YOUR_INSTANCE_NAME]
  1. [YOUR-CONNECTION-NAME] değerini önceki bölümde kaydettiğiniz değerle değiştirin.
  2. [YOUR-DATABASE] yerine, önceki bölümde seçtiğiniz adı girin.
# [START db_setup]
if os.getenv('GAE_APPLICATION', None):
    # Running on production App Engine, so connect to Google Cloud SQL using
    # the unix socket at /cloudsql/<your-cloudsql-connection string>
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '/cloudsql/[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]',
            'USER': '[YOUR-USERNAME]',
            'PASSWORD': '[YOUR-PASSWORD]',
            'NAME': '[YOUR-DATABASE]',
        }
    }
else:
    # Running locally so connect to either a local MySQL instance or connect to
    # Cloud SQL via the proxy. To start the proxy via command line:
    #     $ cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306
    # See https://cloud.google.com/sql/docs/mysql-connect-proxy
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'NAME': '[YOUR-DATABASE]',
            'USER': '[YOUR-USERNAME]',
            'PASSWORD': '[YOUR-PASSWORD]'
        }
    }
# [END db_setup]
  1. Kapatıp settings.py kaydedin.
  1. Dialogflow'un konsolunda simgesini tıklayın. Genel sekmesinde, Proje Kimliği'nin yanındaki Google Cloud'u tıklayın.
  2. Gezinme menüsü ☰ > API'ler &Hizmetler > Kimlik Bilgileri'ni tıklayın.
  3. Kimlik Bilgisi Oluştur > Hizmet hesabı'nı tıklayın.
  4. Hizmet hesabı ayrıntıları bölümünde Service account name (Hizmet hesabı adı) olarak "&ppoint" simgesini girin ve Create (Oluştur) seçeneğini tıklayın.

  1. Bu hizmet hesabına projeye erişim izni ver'in altında Devam'ı tıklayarak işlemi atlayın.
  2. Kullanıcılara bu hizmet hesabına erişim izni ver (isteğe bağlı) ifadesinin altında, Anahtar Oluştur > JSON > Oluştur'u tıklayın.

Bilgisayarınıza bir JSON dosyası indirilir. Bu dosya aşağıdaki kurulum bölümlerinde gereklidir.

  1. Sohbet klasöründe AppointmentScheduler.json öğesini kimlik bilgisi JSON dosyanızla değiştirin.
  2. Sohbet klasöründeki views.py içinde, GOOGLE_PROJECT_ID = "<YOUR_PROJECT_ID>" yerine proje kimliğinizi yazın.

Django uygulamasını yerel bilgisayarınızda çalıştırmak için Python, pip ve sanalenv dahil olmak üzere bir Python geliştirme ortamı oluşturmanız gerekir. Talimatlar için Pything Geliştirme Ortamı Kurma başlıklı yardım makalesine bakın.

  1. İzole edilmiş bir Python ortamı oluşturun ve bağımlıları yükleyin:
virtualenv env
source env/bin/activate
pip install -r requirements.txt
  1. Modellerinizi ayarlamak için Django taşıma işlemlerini çalıştırın.
python3 manage.py makemigrations
python3 manage.py makemigrations polls
python3 manage.py migrate
  1. Yerel bir web sunucusu başlatın.
python3 manage.py runserver
  1. Web tarayıcınıza http://localhost:8000/ yazın. Aşağıdaki ekran görüntüsünde görebileceğiniz gibi basit bir web sayfası görürsünüz:

Örnek uygulama sayfaları, bilgisayarınızda çalışan Django web sunucusu tarafından yayınlanır. Devam etmeye hazır olduğunuzda yerel web sunucusunu durdurmak için Control+S (Macintosh'ta Command+S) tuşuna basın.

Tüm uygulama statik dosyalarını settings.py içinde STATIC_ROOT tarafından belirtilen klasöre taşımak için aşağıdaki komutu çalıştırın:

python3 manage.py collectstatic

app.yaml dosyasının bulunduğu uygulama dizininde aşağıdaki komutu çalıştırarak uygulamayı yükleyin:

gcloud app deploy

Güncellemenin tamamlandığını belirten mesajı bekleyin.

Web tarayıcınıza https://<projeniz_kimliği>.appspot.com adresini girin.

Bu kez, isteğiniz App Engine standart ortamında çalışan bir web sunucusu tarafından sunulur.

app deploy komutu, uygulamayı app.yaml bölümünde açıklandığı şekilde dağıtır ve yeni dağıtılan sürümü varsayılan sürüm olarak ayarlar ve tüm yeni trafiği sunmasına neden olur.

https://<your_project_id>.appspot.com adresine gidin ve aşağıdakileri girin:

  1. Kullanıcı: &"Yarın saat 15:00'te araç kaydı için randevu ayarla."
  2. Chatbot şu şekilde yanıt verir:

  1. Takvim yanıtı yanıtlar.

Diğer Dialogflow codelab'lerini tamamlamayı planlıyorsanız bu bölümü şimdilik atlayıp daha sonra geri dönün.

Dialogflow aracısını silme

  1. Mevcut temsilcinizin yanındaki simgesini tıklayın.
  1. Genel sekmesinde, en alta gidip Bu Aracıyı Sil'i tıklayın.
  2. Görüntülenen pencereye Sil'i yazın ve Sil'i tıklayın.

Dialogflow'da bir chatbot oluşturdunuz ve bunu Takvim'e entegre ettiniz. Artık bir chatbot geliştiricisisiniz.

Daha fazla bilgi

Daha fazla bilgi edinmek için aşağıdaki kaynaklara göz atın: