1. Başlamadan önce
Bu codelab'de, Dialogflow uygulaması için sohbet deneyimi oluşturmak üzere ön uç Django istemcisi derlemeyi öğreneceksiniz. Özellikle aşağıdakileri yapmanız gerekir:
- Django ön uç istemcisini indirin, kurun ve çalıştırın.
- DialogflowDetectIntent uç noktasını Django ön uç istemcisinden çağrılacak şekilde ayarlayın.
- Uygulamayı App Engine'de Google Cloud'a dağıtın.
- Takvim davetlerinin kullanıcı isteği bazında ayarlanıp ayarlanmadığını test edin.
Ön koşullar
Devam etmeden önce aşağıdaki codelab'leri tamamlamanız gerekir:
- Dialogflow ile randevu planlayıcı oluşturma
- Dialogflow'daki varlıkları anlama
- Dialogflow'u Takvim'e entegre ederek istek karşılamayı anlama
Neler öğreneceksiniz?
- Dialogflow için Django ön uç istemcisi kurma ve çalıştırma
- Django ön uç istemcisini App Engine'de Google Cloud'a dağıtma
- Dialogflow uygulamasını özel ön uçtan test etme
Neler oluşturacaksınız?
- Dialogflow için Django ön uç istemcisi oluşturup çalıştıracaksınız.
- Django ön uç istemcisini App Engine'de Google Cloud'a dağıtacaksınız.
- Bu özel kullanıcı arabiriminden bir Dialogflow uygulamasını test edeceksiniz.
Gerekenler
- Python'a dair temel bilgiler
- Dialogflow ile ilgili temel bilgiler
2. Mimariye genel bakış
Daha önce oluşturduğunuz Randevu Planlayıcı görüşme deneyimini kullanacaksınız ve uygulama için özel bir kullanıcı arabirimi oluşturacaksınız. Ön ucu Django ile derleyecek, yerel olarak çalıştırıp test edecek ve App Engine'e dağıtacaksınız.
Kullanıcı, ön uç üzerinden bir randevu isteği gönderir. Bu istek, istenen tarih ve saat için randevu ayarlamak üzere DialogflowDetectIntent API'yi çağırır. Ardından Dialogflow karşılaması, ilgili randevunun ayarlanması için Takvim'e istek gönderir ve Dialogflow aracılığıyla kullanıcıya onay bilgisi döndürür.
Sonuç şu şekilde görünecektir:
3. Ön uç uygulamasını indirme ve çalıştırma
- Bilgisayarınızın yerel terminaline şu komutu yazarak depoyu yerel makinenize klonlayın:
git clone https://github.com/priyankavergadia/Django-Dialogflow-Appointment-Scheduler.git
- Kodu içeren dizine geçin. Alternatif olarak, örneği ZIP dosyası olarak indirip ayıklayabilirsiniz.
cd Django-Dialogflow-Appointment-Scheduler
4. Yerel ortamınızı ayarlama
Uygulamanız dağıtıldığında, Cloud SQL örneğinizle iletişim kurmak için App Engine standart ortamında yerleşik olarak bulunan Cloud SQL Proxy'yi kullanır. Ancak uygulamanızı yerel olarak test etmek için geliştirme ortamınızda Cloud SQL Proxy'nin yerel bir kopyasını yüklemeniz ve kullanmanız gerekir. Daha fazla bilgi için Cloud SQL Proxy hakkında bölümüne bakın.
Cloud SQL örneğinizde temel yönetici görevlerini gerçekleştirmek amacıyla MySQL için Cloud SQL istemcisini kullanabilirsiniz.
Cloud SQL Proxy'yi yükleyin
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
- MySQL için Cloud SQL İkinci Nesil örneği oluşturun. Örneği "polls-instance" olarak adlandırın veya benzer bir şey kullanabilirsiniz. Örneğin hazır olması birkaç dakika sürebilir. Hazır olduğunda örnek listesinde görünecektir.
[YOUR_INSTANCE_NAME]
aracının ö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ı için gösterilen değeri not edin. Bu değer[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ımdaki ö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 şekilde yerel bilgisayarınızdan örneğinize yerel test amacıyla bir bağlantı kurulur. Uygulamanızı yerel olarak test ederken Cloud SQL Proxy'yi çalışır durumda tutun.
./cloud_sql_proxy -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306
Şimdi, yeni bir Cloud SQL kullanıcısı ve veritabanı oluşturun.
- polls-instance adlı Cloud SQL örneğiniz için Google Cloud Console'u kullanarak yeni bir veritabanı oluşturun. Örneğin, "anketler" girin. .
- 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
- Düzenlemek için
mysite/settings.py
uygulamasını açın. - İ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 işlem, App Engine dağıtımı ve yerel test işlemleri için veritabanıyla bağlantı kurulmasına yardımcı olur. ‘HOST': ‘cloudsql/ [PROJECT_NAME]:[REGION_NAME]:[INSTAN
CE_NAME]'
yazan satırdaki[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]
değerini, bir önceki bölümde kaydettiğiniz değerle değiştirin.- Aşağıdaki komutu çalıştırın ve sonraki adım için çıktı olan örnek bağlantı adı değerini kopyalayın.
gcloud sql instances describe [YOUR_INSTANCE_NAME]
[YOUR-CONNECTION-NAME]
değerini, önceki bölümde kaydettiğiniz değerle değiştirin.[YOUR-DATABASE]
değerini önceki bölümde seçtiğiniz adla değiştirin.
# [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]
- Kapatıp
settings.py
kaydedin.
5. Hizmet hesabı kurulumu
- Dialogflow'un konsolunda simgesini tıklayın. Proje Kimliği'nin yanındaki Genel sekmesinde Google Cloud'u tıklayın.
- Gezinme menüsü Takipçisi'ni tıklayın > API'ler ve Hizmetler > Credentials (Kimlik Bilgisi).
- Kimlik Bilgisi Oluştur'u tıklayın > Hizmet hesabı.
- Service account details (Hizmet hesabı ayrıntıları) alanına "appointment-scheduler" yazın Hizmet hesabı adı olarak değiştirin, ardından Oluştur'u tıklayın.
- Bu hizmet hesabına projeye erişim izni ver ifadesinin yer aldığı bölümde Devam'ı tıklayarak işlemi atlayın.
- Kullanıcıların bu hizmet hesabına erişmesine izin ver (isteğe bağlı) ifadesinin yer aldığı bölümde Anahtar Oluştur'u tıklayın > JSON > Oluştur.
Bilgisayarınıza bir JSON dosyası indirilir. Bu dosya, aşağıdaki kurulum bölümlerinde gerekir.
6. DialogflowDetectIntent uç noktasını uygulamadan çağrılacak şekilde ayarlama
- Sohbet klasöründeki
AppointmentScheduler.json
dosyasını kimlik bilgileri JSON dosyanızla değiştirin. - Sohbet klasöründeki
views.py
bölümünde,GOOGLE_PROJECT_ID = "<YOUR_PROJECT_ID>"
değerini proje kimliğinizle değiştirin.
7. Uygulamayı yerel olarak derleyip çalıştırın
Django uygulamasını yerel bilgisayarınızda çalıştırmak için Python, pip ve virtualenv gibi bir Python geliştirme ortamı kurmanız gerekir. Talimatlar için Python Geliştirme Ortamı Oluşturma bölümüne bakın.
- Yalıtılmış bir Python ortamı oluşturun ve bağımlılıkları yükleyin:
virtualenv env source env/bin/activate pip install -r requirements.txt
- 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
- Yerel bir web sunucusu başlatın.
python3 manage.py runserver
- Web tarayıcınıza http://localhost:8000/ adresini girin. Aşağıdaki ekran görüntüsündeki gibi basit bir web sayfası göreceksiniz:
Ö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
) düğmesine basın.
8. Uygulamayı App Engine standart ortamına dağıtma
Uygulamanın tüm 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 uygulamanın dizininde aşağıdaki komutu çalıştırarak uygulamayı yükleyin:
gcloud app deploy
Güncellemenin tamamlandığını bildiren mesajı bekleyin.
9. Ön uç istemcisini test etme
Web tarayıcınıza https://<proje_kimliğiniz>.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ığı gibi dağıtır ve yeni dağıtılan sürümü varsayılan sürüm olarak ayarlayarak uygulamanın tüm yeni trafiği sunmasını sağlar.
10. Üretim
11. İçeriğinizi üretimde sunmaya hazır olduğunuzda mysite/settings.py adresindeki HATA AYIKLAMA değişkenini False (Yanlış) olarak değiştirin.
12. Chatbot'unuzu test edin
https://<proje_kimliğiniz>.appspot.com adresine gidin ve aşağıdaki bilgileri girin:
- Kullanıcı: "Yarın saat 15:00'e araç kaydı için randevu ayarla."
- Chatbot şu şekilde yanıt verir:
- Takvim, yanıtı rezerve eder.
13. Temizleme
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
- Mevcut temsilcinizin yanındaki simgesini tıklayın.
- Genel sekmesinde, en alta gidin ve Bu Aracıyı Sil'i tıklayın.
- Açılan pencereye Delete yazın ve Sil'i tıklayın.
14. Tebrikler
Dialogflow'da bir chatbot oluşturup 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:
- Vision API'yi Dialogflow ile entegre etme
- Dialogflow GitHub sayfasındaki kod örnekleri