Hey Google! — Codelab 1 (TR)

Merve Başak
5 min readNov 14, 2018

Please visit here for the English version of this article.

Herkese merhabalar,

Google Asistan ile ilgili resmi sitede kullanıcı deneyimlerine açık, hali hazır da üç codelab bulunmaktadır. Peki codelab nedir ? Codelab, bilgisayar programlamayı öğrenmek ve uygulamak için çevrimiçi bir programdır. Ben de bu süreçte Google Asistan ile deneyimlediğim codelableri paylaşmayı hedefliyorum. Bu yazımda bunların ilk seviyesi olan Codelab 1' den bahsetmek istiyorum. Haydi başlayalım! 😊

İlk seviye olan bu codelab’ de basit bir sohbet action’ı oluşturacağız. Aslında buradaki hedeflerimiz:

  • Actionların çalışma şeklini anlamak,
  • Action Console’u ve Dialogflow Agentları oluşturabilmeyi öğrenmek ,kavrayabilmek,
  • Actions Console Simulator’ ile test edebilmeyi öğrenmek,
  • Dialogflow slot doldurma ve sistem varlıklarının kullanımı anlamak.

Bir önceki yazımdan(linki aşağıda) ‘dialogflow ile çalıştığımız bir proje için kurulum’ basamaklarına ulaşabilir ve o basamakları uygulayarak projemize başlayabiliriz. Oradaki basamaklara başlamadan önce actionları test etmek için gerekli izinleri etkinleştirdiğimizden üç adımda emin olalım:

  • “Etkinlik Kontrolleri” sayfasına gidelim. (https://myaccount.google.com/activitycontrols)
  • Henüz yapmadıysak, Google hesabımızla oturum açalım.
  • Yandaki izinlerin etkinleştirildiğinden emin olalım: Web ve Uygulama Etkinliği/ Cihaz bilgisi/ Ses ve Ses Etkinliği.
  1. Kontroller yapıldı.
  2. Ardından ilk yazıdaki basamaklar gerçekleştirildi ve böylece Action Projesi ve Dialogflow Agent oluşturabilmiş olduk!
  3. O halde şimdi sıra ‘sohbete başlama’ kısmında. 😊

Karşılama Intent’i Oluşturma

Her Action Project’ de kullanıcıların konuşmaları başlatması için bir giriş noktası olarak hareket eden bir karşılama intent’i olmalıdır. Varsayılan olarak, Dialogflow bizim için bir karşılama amacı oluşturur. Bu codelab’ de “Hey Google, talk to my test app” bizim karşılama intentimiz.

Karşılama intent’ ini değiştirmek için:

  1. Dialogflow Console’un Intents sayfasında, Default Welcome Intent’i tıklayalım.

2. Her birinin yanındaki çöp kutusu simgesini tıklayarak diğer tüm metin yanıtlarını silelim.

3. Responses bölümünün altında bir text responses girelim ve “Welcome! What is your favorite color?” yazalım.

4. Save’e tıklayalım. Ardından “Intent saved” bildirimini görmeliyiz.

Böylece karşılama intent’imiz artık “Welcome! What is your favorite color?” olarak değiştirmiş olduk.

Karşılama Intent’ini Test Edelim

Actions Console , kullanıcılarına yapılan değişikleri test edebilmesi için simülatör denen bir web arayüzü sağlar.

  1. Dialogflow Console sol bölümde yer alan Integrations’ a tıklayalım. Ardından, Google Assistant > Integration Settings tıklayalım.

2. Actions projemizi güncellemek ve bunu Actions Console simülatörüne yüklemek için Test’ e tıklayalım. ( ‘Check auto-preview setting’ iletişim kutusunu görürsek ‘Auto-preview changes’ seçeneğini etkinleştirebilir ve ardından Continue tıklayabiliriz.)

3. İşlemimizi simülatörde test etmek için Input alanına “ Talk to my test app” yazıp Enter tuşuna basalım.

Dialogflow Intent Oluşturma

  1. Dialogflow Console’ da, Google Asistan Integration Settings sayfasını eğer açmışsanız kapatalım. Soldaki gezinme bölümünde Intents’e tıklayalım, ardından Create Intent’e tıklayalım.
  2. Üstteki Intent Name alanında yeni intentimizin adı olarak “favorite color” yazalım. Save’e tıklayalım.
  3. Training Phrases altında, aşağıdaki ifadeleri yazalım ve ardından klavyede Enter tuşuna basalım böylece kullanıcı ifadelerini eklemiş olalım:
  • “purple is my favorite”
  • “black is my favorite color”
  • “i love yellow”
  • “Pink”
  • “my favorite color is green”

4. Action and Parameters altında, kullanıcının favori renklerini sormak için komut istemi metnini oluşturun. Parameter Name alanına “color” ile bir çizgi görmelisiniz. Bu parametre girişi, Dialogflow tarafından otomatik olarak oluşturulur çünkü eğitim ifadelerindeki varlıklar olarak tanıdığı sözcükleri ve cümleleri otomatik olarak ekleyebilir. Bu satırda:

  • Required kutusunu işaretleyelim.
  • Define prompts’ a tıklayalım.
  • Bir prompt olarak “What’s your favorite color?” yazalım.
  • Close’ a tıklayalım.

5. Bu sayfadaki Fulfillment bölümü altında (soldaki gezinme değil), Enable Fulfillment’ e tıklayalım. Aşağı işaret eden oku tıklayarak bölümü genişletmemiz gerekebilir.

6. Enable webhook call for this intent açalım.

7. Save’ e tıklayalım.

Bu adımları tamamladıktan sonra, Dialogflow otomatik olarak bu intent’i tetikleyen kullanıcı konuşmasından tanıdığı parametreleri çıkartır; bu örnekte, renk parametresi.

Webhook’umuzu Oluşturalım

Dialogflow webhook, kullanıcıya gönderilecek yanıt mesajlarını dinamik olarak oluşturmak mantığı içerir.

  1. Soldaki gezinme bölümünde Fulfillment’ e tıklayalım.
  2. Inline Editor’ü etkinleştirelim.

3. Index.js’ nin içeriğini aşağıdaki kodla değiştirelim.

'use strict';

// Import the Dialogflow module from the Actions on Google client library.
const {dialogflow} = require('actions-on-google');

// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');

// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});

// Handle the Dialogflow intent named 'favorite color'.
// The intent collects a parameter named 'color'.
app.intent('favorite color', (conv, {color}) => {
const luckyNumber = color.length;
// Respond with the user's lucky number and end the conversation.
conv.close('Your lucky number is ' + luckyNumber);
});

// Set the DialogflowApp object to handle the HTTPS POST request.
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

4. Daha sonra Deploy’ a tıklayalım. Bir kaç dakika bekledikten sonra işlem başarıyla gerçekleşirse “Last deployed” bildirimini görebiliriz.

Şimdi Action’ımızı Test Edelim

  1. Action Console’ umuzu açalım ve bu codelab için Action Project’ imizi seçelim.
  2. Soldaki navigasyonda Simülatöre tıklayalım. Çıkış penceresinin üstündeki X düğmesine tıklayalım. Bu, simülatörde daha önce başladığınız herhangi bir sohbetten bizi çıkarır.
  3. Input alanına “ Talk to my test app” yazıp enter tuşuna basalım.

Örnekler ile test etmeyi deneyebilirsiniz:

  • “Red”
  • “I love green.”
  • “My favorite is pink.”

Böylece basit bir action geliştirmiş olduk. Sevdiğimiz renkleri ona belirttiğimiz de bize rengimizin harf sayısını uğurlu rakamımız olarak söyleyebilen bir asistanımız oldu. Diğer actionlarımızda görüşmek üzere 😊

Okuduğunuz için teşekkürler!

Ayrıca kodları, yazıları ve linkleri paylaşacağım GitHub projeme buradan ulaşabilirsiniz. 👇

--

--