Vision API'yi Dialogflow ile entegre etme

1. Başlamadan önce

Bu codelab'de, kullanıcı tarafından sağlanan görüntü girişlerine makine öğrenimi tabanlı zengin ve dinamik yanıtlar sağlamak için Vision API'yi Dialogflow ile entegre edeceksiniz. Bir resmi giriş olarak alan, Vision API'de işleyen ve tanımlanmış önemli bir noktayı kullanıcıya döndüren bir chatbot uygulaması oluşturacaksınız. Örneğin, kullanıcı Tac Mahal'in bir resmini yüklerse chatbot, yanıt olarak Tac Mahal'i döndürür.

Bu, resimdeki öğeleri analiz edebileceğiniz ve elde edilen bilgilere göre harekete geçebileceğiniz için yararlıdır. Kullanıcıların makbuzları yüklemesine, satın alma tarihini makbuzdan çıkarmasına ve tarih uygunsa geri ödemeyi işlemesine yardımcı olmak için bir geri ödeme işleme sistemi de oluşturabilirsiniz.

Aşağıdaki örnek iletişim kutusuna göz atın:

Kullanıcı: Merhaba

Chatbot: Merhaba. Önemli noktaları keşfetmek için resim yükleyebilirsiniz

Kullanıcı: Tac Mahal bulunan bir resim yükleyin.

Chatbot: Dosya işleniyor, sonuçlar şöyle: Tac Mahal, Tac Mahal Bahçesi, Tac Mahal.

15a4243e453415ca.png

Ön koşullar

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

  1. Dialogflow ile randevu planlayıcı oluşturma
  2. Bir Dialogflow chatbot'u Actions on Google ile entegre etme
  3. Dialogflow'daki varlıkları anlama
  4. Dialogflow uygulaması için ön uç Django istemcisi derleme

Ayrıca, Dialogflow'un temel kavramlarını ve yapılarını da anlamanız gerekir. Bu temel kavramları ve yapılarını Dialogflow ile chatbot derleme rotasındaki aşağıdaki videolardan öğrenebilirsiniz:

Neler öğreneceksiniz?

  • Dialogflow aracısı oluşturma
  • Dosya yüklemek için Dialogflow aracısını güncelleme
  • Dialogflow karşılama ile Vision API bağlantısını ayarlama
  • Dialogflow için Django ön uç uygulaması ayarlama ve çalıştırma
  • Django ön uç uygulamasını App Engine'de Google Cloud'a dağıtma
  • Dialogflow uygulamasını özel bir ön uçtan test etme

Neler oluşturacaksınız?

  • Dialogflow aracısı oluşturma
  • Dosya yüklemek için Django ön ucu uygulama
  • Yüklenen görüntüye karşı Vision API'yi çağırmak için Dialogflow karşılama özelliğini uygulama

Gerekenler

  • Python ile ilgili temel bilgiler
  • Dialogflow ile ilgili temel bilgiler
  • Vision API ile ilgili temel bilgiler

2. Mimariye genel bakış

Özel bir Django ön ucuyla yeni bir sohbet deneyimi oluşturacak ve bu deneyimi Vision API ile entegre edecek şekilde genişleteceksiniz. Ön ucu Django çerçevesiyle derleyecek, yerel olarak çalıştırıp test edecek ve App Engine'e dağıtacaksınız. Ön uç şöyle görünür:

5b07e09dc4b84646.png

İstek akışı, aşağıdaki resimde gösterildiği gibi çalışacaktır:

  1. Kullanıcı, ön uç aracılığıyla bir istek gönderir.
  2. Bu işlem, kullanıcının söylediklerini doğru niyetle eşlemek için DialogflowdetectIntent API'ye bir çağrıyı tetikler.
  3. Önemli nokta keşfetme amacı algılandığında Dialogflow karşılama, Vision API'ye istek gönderir, bir yanıt alır ve bunu kullanıcıya gönderir.

153725eb50e008d4.png

Genel mimari aşağıdaki gibi olacaktır.

a2fcea32222a9cb4.png

3. Vision API nedir?

Vision API, görüntülerden analizler elde eden, önceden eğitilmiş bir makine öğrenimi modelidir. Görüntü etiketleme, yüz ve önemli nokta algılama, optik karakter tanıma ve uygunsuz içerikleri etiketleme gibi çeşitli analizler elde etmenizi sağlayabilir. Daha fazla bilgi edinmek için Vision AI'ı inceleyin.

4. Dialogflow aracısı oluşturma

  1. Dialogflow konsoluna gidin.
  2. Oturum açın. (Yeni kullanıcıysanız kaydolmak için e-posta adresinizi kullanın.)
  3. Hükümler ve koşulları kabul ettiğinizde konsola yönlendirilirsiniz.
  4. d9e90c93fc779808.png seçeneğini tıklayın, en alta ilerleyin ve Yeni temsilci oluştur'u tıklayın. 3b3f9677e2a26d93.png
  5. "VisionAPI" yazın bunu Temsilci adı olarak değiştirin.
  6. Oluştur'u tıklayın.

Dialogflow, aracının bir parçası olarak aşağıdaki iki varsayılan niyeti oluşturur:

  1. Varsayılan karşılama amacı kullanıcılarınızı karşılar.
  2. Varsayılan yedek intent, bot'unuzun anlamadığı tüm soruları yakalar.

Bu noktada, kullanıcıları karşılayan işlevsel bir bot'unuz var, ancak kullanıcılara önemli noktaları keşfetmek için resim yükleyebileceklerini bildirmek amacıyla bot'u güncellemeniz gerekiyor.

Kullanıcıyı resim yüklemesi için bilgilendirmek için varsayılan karşılama niyetini güncelleyin

  1. Varsayılan Karşılama Niyeti'ni tıklayın.
  2. Yanıtlar'a gidin > Varsayılan > Metin veya SSML Yanıtı girin ve "Merhaba! Önemli noktaları keşfetmek için bir resim yükleyebilirsiniz."

f9cd9ba6917a7aa9.png

Varlık oluştur

  1. Varlıklar'ı tıklayın.

432fff294b666c93.png

  1. Varlık Oluştur'u tıklayın ve öğeye "dosya adı" adını verin. ve Kaydet'i tıklayın.

602d001d684485de.png

Yeni amaç oluştur

  1. Niyetler'i tıklayın > Niyet Oluştur.
  2. "Yüklenen resmi keşfet" yazın Amaç adı olarak ayarlanır.
  3. Eğitim ifadeleri'ni tıklayın > Eğitim İfadeleri ekleyin ve "dosya: demo.jpg" yazın ve "dosya: taj.jpeg" @filename şeklindeki kullanıcı ifadeleri şeklinde görünür.

dd54ebda59c6b896.png

  1. Yanıtlar'ı tıklayın > Yanıt Ekle > Varsayılan > Metin veya SSML Yanıtı. "Değerlendirme dosyası" yazın ve Yanıt Ekle'yi tıklayın.
  2. Karşılama'yı tıklayın > Karşılamayı etkinleştirin ve Bu niyet için webhook çağrısını etkinleştir'i etkinleştirin.

b32b7ac054fcc938.png

5. Vision API ile entegrasyon için sipariş karşılamayı ayarlama

  1. Karşılama'yı tıklayın.
  2. Satır içi düzenleyici'yi etkinleştirin.

c8574c6ef899393f.png

  1. index.js öğesini aşağıdaki kodla güncelleyin ve YOUR-BUCKET-NAME öğesini Cloud Storage paketinizin adıyla güncelleyin.
'use strict';

const functions = require('firebase-functions');
const {google} = require('googleapis');
const {WebhookClient} = require('dialogflow-fulfillment');
const vision = require('@google-cloud/vision');
  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
const bucketName = 'YOUR-BUCKET-NAME';
const timeZone = 'America/Los_Angeles';
const timeZoneOffset = '-07:00';

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log("Parameters", agent.parameters);

  function applyML(agent){
    const filename = agent.parameters.filename;
    console.log("filename is: ", filename);

    // call vision API to detect text
    return callVisionApi(agent, bucketName, filename).then(result => {
                      console.log(`result is ${result}`);
                      agent.add(`file is being processed, here are the results:  ${result}`);
            //agent.add(`file is being processed ${result}`);
        }).catch((error)=> {
            agent.add(`error occurred at apply ml function`  + error);
        });
  }

  let intentMap = new Map();
  intentMap.set('Explore uploaded image', applyML);
  agent.handleRequest(intentMap);
});


async function callVisionApi(agent, bucketName, fileName){
    // [START vision_text_detection_gcs]
  // Imports the Google Cloud client libraries
  // Creates a client
  
  const client = new vision.ImageAnnotatorClient();
    try {
        // Performs text detection on the gcs file
        const [result] = await client.landmarkDetection(`gs://${bucketName}/${fileName}`);
        const detections = result.landmarkAnnotations;
        var detected = [];
        detections.forEach(text => {
            console.log(text.description);
            detected.push(text.description);
        });
        return detected;
    }
    catch(error) {
        console.log('fetch failed', error);
        return [];
    }
}
  1. Aşağıdakini, içeriğini değiştirmek için package.json içine yapıştırın.
{
  "name": "dialogflowFirebaseFulfillment",
  "description": "Dialogflow fulfillment for the bike shop sample",
  "version": "0.0.1",
  "private": true,
  "license": "Apache Version 2.0",
  "author": "Google Inc.",
  "engines": {
    "node": "6"
  },
  "scripts": {
    "lint": "semistandard --fix \"**/*.js\"",
    "start": "firebase deploy --only functions",
    "deploy": "firebase deploy --only functions"
  },
  "dependencies": {
    "firebase-functions": "2.0.2",
    "firebase-admin": "^5.13.1",
    "actions-on-google": "2.2.0", 
    "googleapis": "^27.0.0",
    "dialogflow-fulfillment": "^0.6.1",
    "@google-cloud/bigquery": "^1.3.0",
    "@google-cloud/storage": "^2.0.0",
    "@google-cloud/vision": "^0.25.0"
  }
}
  1. Kaydet'i tıklayın.

6. Ön uç uygulamasını indirme ve çalıştırma

  1. Bu kod deposunu yerel makinenize klonlayın:
https://github.com/priyankavergadia/visionapi-dialogflow.git
  1. Kodu içeren dizine geçin. Alternatif olarak, örneği ZIP dosyası olarak indirip ayıklayabilirsiniz.
cd visionapi-dialogflow

7. 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 başlıklı makaleyi inceleyin.

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

Aşağıdaki komutla 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. "polls-instance" veya ada benzer bir ifade girin. Örneğin hazır olması birkaç dakika sürebilir. Hazır olduğunda örnek listesinde görünecektir.
  2. Şimdi gcloud komut satırı aracını kullanarak aşağıdaki komutu çalıştırın. Burada [YOUR_INSTANCE_NAME], Cloud SQL örneğinizin adını temsil eder. Sonraki adım için connectionName için gösterilen değeri not edin. [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] biçiminde gösterilir.
gcloud sql instances describe [YOUR_INSTANCE_NAME]

Alternatif olarak Örnek bağlantı adını almak için konsolda örneği tıklayabilirsiniz.

c11e94464bf4fcf8.png

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

Önceki bölümde verilen connectionName değerini kullanarak Cloud SQL Proxy'yi başlatın.

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

[YOUR_INSTANCE_CONNECTION_NAME] değerini, önceki bölümde kaydettiğiniz değerle değiştirin. Bu bağlantı, yerel bilgisayarınızdan Cloud SQL örneğinize yerel test amacıyla bağlantı oluşturur. Uygulamanızı yerel olarak test ettiğiniz süre boyunca Cloud SQL Proxy'yi çalışır durumda tutun.

Şimdi, yeni bir Cloud SQL kullanıcısı ve veritabanı oluşturun.

  1. polls-instance adlı Cloud SQL örneğiniz için Google Cloud Console'u kullanarak yeni bir veritabanı oluşturun. Örneğin, "anketler" girin. a3707ec9bc38d412.png.
  2. polls-instance adlı Cloud SQL örneğiniz için Cloud Console'u kullanarak yeni bir kullanıcı oluşturun. f4d098fca49cccff.png

Veritabanı ayarlarını yapılandırma

  1. Düzenlemek için mysite/settings-changeme.py uygulamasını açın.
  2. Dosyanın adını setting.py olarak değiştirin.
  3. İ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.
  4. ‘HOST': ‘cloudsql/ [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]. satırda [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] kısmını önceki bölümde aldığınız örnek adıyla değiştirin.
  5. Aşağıdaki komutu çalıştırın ve çıkan connectionName değerini sonraki adım için kopyalayın.
gcloud sql instances describe [YOUR_INSTANCE_NAME]
  1. [YOUR-CONNECTION-NAME] değerini önceki adımda kaydettiğiniz değerle değiştirin
  2. [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]
  1. Kapatıp settings.py kaydedin.

8. Hizmet hesabı oluşturun

  1. Dialogflow'un konsolunda 21a21c1104f5fdf3.png simgesini tıklayın. Genel sekmesinde Google Projesi'ne gidin > Proje Kimliği'ni tıklayın ve Google Cloud'u 7b2236f5627c37a0.png tıklayarak Cloud Console'u açın. a4cfb880b3c8e789.png
  2. Gezinme menüsü Takipçisi'ni tıklayın > IAM ve Yönetici > Hizmet hesapları'nı, ardından Dialogflow entegrasyonları'nın yanındaki 796e7c9e65ae751f.png simgesini, ardından Anahtar oluştur'u tıklayın.

3d72abc0c184d281.png

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

9. DialogflowDetectIntent uç noktasını uygulamadan çağrılacak şekilde ayarlama

  1. Sohbet klasöründe, key-sample.json yerine kimlik bilgileri JSON dosyanızı girip key.json olarak adlandırın.
  2. Sohbet klasöründeki views.py bölümünde, GOOGLE_PROJECT_ID = "<YOUR_PROJECT_ID>" değerini proje kimliğinizle değiştirin.

10. Cloud Storage paketleri oluşturma

Ön uç statik nesneleri için Cloud Storage paketi oluşturma

  1. Cloud Console'da, gezinme menüsünde gezinin ® simgesini tıklayın > Depolama.

87ff9469db4eb77f.png

  1. Paket Oluştur'u tıklayın.
  2. Genel olarak benzersiz bir ad girin.

a15a6612e92a39d3.png

  1. Verilerinizi nerede depolayacağınızı seçin. Bölge'yi ve ihtiyaçlarınıza en uygun konumu seçin.
  2. Varsayılan depolama sınıfı olarak Standart'ı seçin.

9c56abe632cf61db.png

  1. İzinleri paket düzeyinde eşit şekilde ayarla (Yalnızca Paket Politikası) seçeneğini belirleyip paketi oluşturmak için Devam'ı tıklayın.

f175ac794049df04.png

  1. Paket oluşturulduktan sonra Gezinme menüsü ® simgesini tıklayın > Depolama > Tarayıcı'yı tıklayın ve oluşturduğunuz paketi bulun.

9500ee19b427158c.png

  1. İlgili paketin yanındaki 796e7c9e65ae751f.png simgesini ve Paket izinlerini düzenle'yi tıklayın.

fd0a310bc3656edd.png

  1. Üye Ekle'yi tıklayın, Yeni üyeler'i tıklayın ve ardından "allUsers"ı girin. ardından Rol seçin'i tıklayın > Storage Nesne Görüntüleyici. Bu, statik ön uç dosyalarına allUsers'a görüntüleme erişimi sağlar. Bu, dosyalar için ideal bir güvenlik ayarı değildir ancak bu codelab'in amacına uygun olarak çalışır.

7519116abd56d5a3.png

Kullanıcı tarafından yüklenen görüntüler için Cloud Storage paketi oluşturma

Kullanıcı resimlerini yüklemek amacıyla ayrı bir paket oluşturmak için aynı talimatları uygulayın. İzinleri "allUsers" olarak ayarlayın tekrar değil, ancak rol olarak Storage Nesne Oluşturucu ve Depolama Alanı Nesne Görüntüleyici'yi seçin.

11. Ön uç uygulamasında Cloud Storage paketlerini yapılandırma

Cloud Storage paketini ayarlar.py'de yapılandırın

  1. mysite/setting.py adlı kişiyi aç.
  2. GCS_BUCKET değişkenini bulun ve ‘<YOUR-GCS-BUCKET-NAME>" değişkenini değiştirin. Cloud Storage statik paketinizle test edin.
  3. GS_MEDIA_BUCKET_NAME değişkenini bulun ve ‘<YOUR-GCS-BUCKET-NAME-MEDIA>' değişkenini değiştirin. Cloud Storage paketinizin adını yazın.
  4. GS_STATIC_BUCKET_NAME değişkenini bulun ve ‘<YOUR-GCS-BUCKET-NAME-STATIC>" değişkenini değiştirin. Cloud Storage paket adınızla değiştirin.
  5. Dosyayı kaydedin.
GCS_BUCKET = '<YOUR-GCS-BUCKET-NAME>'
GS_MEDIA_BUCKET_NAME = '<YOUR-GCS-BUCKET-NAME-MEDIA>'
GS_STATIC_BUCKET_NAME = '<YOUR-GCS-BUCKET-NAME-STATIC>'

home.html'de Cloud Storage paketini yapılandırma

  • Sohbet klasörünü, ardından templates uygulamasını açın ve home-changeme.html adlı dosyanın adını home.html olarak değiştirin.
  • <YOUR-GCS-BUCKET-NAME-MEDIA> ifadesini bulun ve kullanıcı tarafından yüklenen dosyanın kaydedilmesini istediğiniz yere paket adınızla değiştirin. Bu, kullanıcı tarafından yüklenen dosyayı ön uçta depolamanızı ve statik öğeleri Cloud Storage paketinde tutmanızı engeller. Vision API, dosyayı almak ve tahminde bulunmak için Cloud Storage paketini çağırır.

12. 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.

  1. 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
  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ızda http://localhost:8000/ adresine gidin. Şuna benzer basit bir web sayfası görmeniz gerekir:

8f986b8981f80f7b.png

Ö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+C (Macintosh'ta Command+C) düğmesine basın.

Django yönetici konsolunu kullanma

  1. Süper kullanıcı oluşturun.
python3 manage.py createsuperuser
  1. Yerel bir web sunucusu başlatın.
python3 manage.py runserver
  1. Web tarayıcınızda http://localhost:8000/admin/ adresine gidin. Yönetici sitesine giriş yapmak için createsuperuser uygulamasını çalıştırırken oluşturduğunuz kullanıcı adını ve şifreyi girin.

13. Uygulamayı App Engine standart ortamına dağıtma

Aşağıdaki komutu çalıştırarak tüm statik içeriği tek bir klasörde toplayın. Bu komut, uygulamanın tüm statik dosyalarını settings.py içinde STATIC_ROOT tarafından belirtilen klasöre taşır:

python3 manage.py collectstatic

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

gcloud app deploy

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

14. Ön uç uygulamasını test etme

Web tarayıcınızda https://<proje_kimliğiniz>.appspot.com adresine gidin.

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.

15. Üretim

İçeriğinizi üretimde sunmaya hazır olduğunuzda mysite/settings.py öğesindeki DEBUG değişkenini False olarak değiştirin.

16. Chatbot'unuzu test edin

Simülatörde chatbot'unuzu test edebilir veya daha önce oluşturduğunuz web ya da Google Home entegrasyonunu kullanabilirsiniz.

  1. Kullanıcı: "hi"
  2. Chatbot: "Merhaba. Önemli noktaları keşfetmek için bir resim yükleyebilirsiniz."
  3. Kullanıcı bir resim yükler.

Bu resmi indirin, demo.jpg olarak adlandırın ve kullanın.

c3aff843c9f132e4.jpeg

  1. Chatbot: "Dosya işleniyor, sonuçlar şöyle: Boğaziçi Köprüsü,Altın Kapı Ulusal Dinlenme Alanı,Altın Kapı Köprüsü,Altın Kapı Köprüsü,Altın Kapı Köprüsü."

Genel olarak aşağıdaki gibi görünmelidir:

228df9993bfc001d.png

17. Temizleme

Diğer Dialogflow codelab'lerini tamamlamak istiyorsanız bu bölümü atlayıp daha sonra geri dönün.

Dialogflow aracısını silme

  1. Mevcut temsilcinizin yanındaki ca4337eeb5565bcb.png simgesini tıklayın.

520c1c6bb9f46ea6.png

  1. Genel sekmesinde aşağı doğru ilerleyin ve Bu Aracıyı Sil'i tıklayın.
  2. Açılan pencereye Delete yazın ve Sil'i tıklayın.

18. Tebrikler

Dialogflow'da bir chatbot oluşturdunuz ve bunu Vision API ile entegre ettiniz. Artık bir chatbot geliştiricisisiniz!

Daha fazla bilgi

Daha fazla bilgi için Dialogflow GitHub sayfasındaki kod örneklerine göz atın.