Üretken yedek sayesinde amaç kapsamını artırın ve hataları sorunsuz şekilde ele alın

1. Genel Bakış

Last Updated: 2023-08-07

Ne oluşturacaksınız?

Bu codelab'de, Dialogflow CX'te, grup rezervasyonları ve özel kiralama konusunda seyahat eden tüplü dalgıçlara yardımcı olacak basit bir sanal aracı oluşturacak, dağıtacak ve yapılandıracaksınız. Sanal temsilci, sanal temsilci yanıtları oluşturmak için üretken yapay zekayı ve Google'ın en yeni üretken büyük dil modellerini (LLM'ler) kullanır.

Neler öğreneceksiniz?

  • İlgili API'leri etkinleştirme
  • Dialogflow, sayfa formu parametre değerlerini niyet parametrelerinden nasıl otomatik olarak önceden doldurur?
  • Dialogflow'da etkinlik işleyicileri yapılandırma
  • Akışlarda ve parametre doldurma sırasında kullanılan eşleşme yok etkinlik işleyicilerinde üretken yedeklemeyi etkinleştirme
  • Hem temel hem de temsilciye özel sohbet durumlarını ele almak için kendi metin isteminizi yapılandırma
  • Gerekli parametreler için (kullanıcı tanımlı yeniden istemlerin yanı sıra) yeniden istem işleyicileri oluşturmak üzere iyi niyet ve parametre açıklamaları yazma
  • Ajanınızı test etme ve üretken yedeklemeyi tetikleyen müşteri sorularını simüle etme

Gerekenler

  • Google Cloud projesi
  • Chrome gibi bir tarayıcı

2. Hazırlanma

Dialogflow CX'te üretken yedekleme özelliğini kullanmaya başlamadan önce Dialogflow API'yi etkinleştirmeniz gerekir.

Cloud Console'u kullanarak Dialogflow API'yi etkinleştirme

  1. Tarayıcınızda Google Cloud Console'u açın.
  2. Google Cloud Console'da, etkinleştirilebilecek API'lere ve hizmetlere göz atmak için API Kitaplığı'na gidin.
  3. API Kitaplığı sayfasının üst kısmındaki arama çubuğunu kullanarak Dialogflow API ifadesini arayın ve sonuçtaki hizmeti tıklayın.
  4. Google Cloud projenizde Dialogflow API'yi etkinleştirmek için Etkinleştir düğmesini tıklayın.

gcloud CLI'yı kullanma (alternatif)

Alternatif olarak, API aşağıdaki gcloud komutu kullanılarak etkinleştirilebilir:

gcloud services enable dialogflow.googleapis.com

API başarıyla etkinleştirildiyse aşağıdakine benzer bir mesaj görürsünüz:

Operation "operations/..." finished successfully.

Kodu alma

Sanal ajanı sıfırdan oluşturmayacaksınız. Dialogflow CX Console'dan geri yükleyip iyileştirmeniz gereken bir ajan sağlayacağız.

Kaynak kodunu indirmek için:

  1. Yeni bir tarayıcı sekmesi açın, aracı deposuna gidin ve komut satırından depoyu klonlayın.
  2. İlk temsilci, JSON paketi olarak dışa aktarılmış olmalıdır. Dosyayı açın, aracı ayarlarını inceleyin, akış tanımına göz atın Liveaboards.json ve son olarak akış sayfalarına, amaçlara ve varlıklara göz atın.

3. Yeni bir temsilci oluşturma

Dialogflow Console'u açma

Bu codelab'deki kalan adımları uygulamak için Google Cloud projenizle birlikte Dialogflow CX konsolunu kullanacaksınız.

  1. Tarayıcınızda Dialogflow CX konsoluna gidin.
  2. Kullanmak istediğiniz Google Cloud projesini seçin veya kullanılacak yeni bir proje oluşturun.
  3. Dialogflow CX konsolunda temsilcilerin listesini görürsünüz.

Dialogflow CX'i ilk kez kullanıyorsanız projenizi ve ayarlarınızı ihtiyaçlarınıza göre yapılandırma hakkında daha fazla bilgi için Dialogflow CX Belgeleri'ne bakın.

Yeni bir Dialogflow CX aracısı oluşturma

  1. GitHub deposundan indirilen aracıyı geri yüklemek için yeni bir aracı oluşturmanız gerekir. Dialogflow CX konsolunda, sayfanın sağ üst köşesindeki Yeni temsilci oluştur'u tıklayın.

Yeni bir temsilci oluşturma

  1. Kendi temsilcinizi oluşturun seçeneğini belirleyin.

Seçeneği belirleyin

  1. Aşağıdaki aracı ayarlarıyla formu doldurun ve aracı oluşturmak için Oluştur'u tıklayın.
  • Görünen ad olarak şunu seçin: Divebooker
  • Konum olarak şunları seçin: us-central1
  • Tercih ettiğiniz saat dilimini seçin.
  • en - English dilini varsayılan dil olarak seçin.
  1. Dialogflow, aracıyı sizin için otomatik olarak açar. Daha işimiz bitmedi.

Divebooker temsilcisini geri yükleme

  1. Aracılar listesi sayfasına geri dönün ve yeni oluşturduğunuz aracıyı bulun. 78d2781c655810e7.png seçeneğini ve ardından Geri yükle düğmesini tıklayın.
  2. Yükle seçeneğini belirleyin ve daha önce GitHub deposundan indirdiğiniz ZIP dosyasını bırakın veya seçin.
  3. Sağladığımız aracıyı içe aktarmak için Geri yükle düğmesini tıklayın.

Sağladığımız temsilciyi içe aktarmak için Geri yükle düğmesini tıklayın.

Tebrikler! Müşterilerinize yardımcı olmaya hazır olan dalış rezervasyonu sanal ajanınızı oluşturmayı tamamladınız. Sonraki bölümde, bu aracı test edip kullanıcı sorularını yanıtlama ve rezervasyon isteklerine yardımcı olma konusunda ne kadar iyi olduğunu göreceksiniz.

4. Temsilciyi test etme

Dialogflow, aracılarınızla sohbet etmek ve hataları ortaya çıkarmak için yerleşik bir simülatör sunar. Her dönüş için tetiklenen amaç, aracı yanıtı, etkin sayfa ve oturum parametrelerinin doğru değerlerini doğrulayabilirsiniz.

Birkaç senaryoyu test edeceğiz ve her senaryoda temsilcinin belirli bir yanıt verme nedenini inceleyeceğiz. İlk yöntemle başlayalım.

Çözümlenmemiş amaç

  1. Simülatörü açmak için Dialogflow konsolunda ve temsilcinizden Test Agent'ı (Temsilciyi Test Et) tıklayın.

Simülatörü açmak için Test Aracısı'nı tıklayın.

  1. Temsilcinize Hello gibi bir selamlama yazıp what is a liveaboard? diye sorun. Soru herhangi bir amaçla eşleşmediğinde "Maalesef nasıl yardımcı olabileceğimi bilmiyorum" gibi genel bir istem görüntülenir. Simülatör'deki orijinal yanıtı inceleyerek sys.no-match-default yerleşik etkinliğinin çağrıldığını kontrol edebilirsiniz.

Temsilciyi selamlayın ve yatılı gemi gezisinin ne olduğunu sorun.

JSON yanıtının neredeyse sonuna kadar aşağı kaydırın. Eşleşen bir amaç aranırken Dialogflow'un bunun NO_MATCH olduğunu tespit ettiğini ve eşleşme yok etkinliği oluşturduğunu unutmayın.

sys.no-match-default etkinliğinin Dialogflow tarafından tetiklendiğini kontrol edin.

  1. Oluştur sekmesine geçin ve Liveaboards akışının Başlangıç Sayfası'nı açın.

Oluştur sekmesine geçin ve Liveaboards akışının Başlangıç Sayfası'nı açın.

Varsayılan olarak her akışta eşleşme yok ve giriş yok yerleşik etkinlikleri için etkinlik işleyiciler bulunur. Bu etkinlik işleyiciler, akış oluşturduğunuzda otomatik olarak oluşturulur ve silinemez.

  1. sys.no-match-default etkinlik işleyicisini tıklayın ve Agent responses (Ajan yanıtları) bölümüne gidin. Dialogflow, alternatif yanıtların bir listesini sunar ancak son kullanıcıya yalnızca metin yanıtlarından daha fazlasını sağlamak için farklı türlerde yanıt mesajları da tanımlayabilirsiniz.

Önceden tanımlanmış temsilci yanıtlarına bakın.

Şimdi mutlu yola geçelim.

İdeal yol

Bu ikinci durumda, gelecek yıl temmuz ayında 12 kişilik bir grupla Galapagos Adaları'na dalış gezisi rezervasyonu yapmak isteyen bir dalgıç gibi davran.

  1. Temsilciyle yeni bir görüşme başlatmak için Simülasyon Aracı panelinde Sıfırla simgesini tıklayın.

Yeni bir görüşme başlatmak için sıfırlama

Daha iyi bir kullanıcı deneyimi için dikey görünüme geçmeyi düşünün

  1. Acente yetkilisine Galapagos Adaları'na özel uçakla gitmek istediğinizi söyleyin ve seyahatinizle ilgili ayrıntıları paylaşın. Aşağıdaki istemleri bire bir kullanmanız gerekmez. Denemeler yapabilirsiniz.

İdeal yolu test etme

  1. Başlangıç Sayfası'nı açın ve head.send.group.request rotasını tıklayın. Bu amaç eşleştiğinde Dialogflow'a geçiş yapılacak sayfayı bildiren Geçiş bölümüne gidin.

Daha Fazla Bilgi Topla sayfasına geçiş

  1. Rota tanımını kapatın ve Ek Bilgi Topla sayfasını genişletin. Giriş tamamlama ve parametre listesine dikkat edin.

Daha Fazla Bilgi Toplama sayfası

Dialogflow CX'teki her sayfa için bir form tanımlayabilirsiniz. Form, sayfa için son kullanıcıdan toplanması gereken parametrelerin listesidir. İlk girişte ilettiğimiz için ve destination (hedef) bir amaç parametresi olduğu için aracının seyahat hedefini sormadığını unutmayın. Bir sayfa ilk kez etkin hale geldiğinde ve etkin olduğu süre boyunca, amaç parametresiyle aynı ada sahip tüm form parametreleri otomatik olarak oturum parametresi değerine ayarlanır ve ilgili istem atlanır.

  1. Yönet sekmesine geçin ve Niyetler bölümünde head.send group request niyetini tıklayın. Bu niyet için sağlanan eğitim ifadelerine ve eğitim ifadelerinin ek açıklamalı bölümlerine bakın.

Bu niyet için sağlanan eğitim ifadelerine ve eğitim ifadelerinin ek açıklamalı bölümlerine bakın.

  1. "15 dalgıç için Kosta Rika'ya gezi düzenlemem gerekiyor" eğitim ifadesini ele alalım. "Kosta Rika" destination ile, "15" ise number-of-guests ile açıklama eklenmiş. Bir eğitim ifadesinin bölümlerini notlandırdığınızda Dialogflow, bu bölümlerin yalnızca çalışma zamanında son kullanıcılar tarafından sağlanacak gerçek değerlerin örnekleri olduğunu anlar. Bu nedenle, "Galapagos Adaları'na charter seferleri düzenliyor musunuz?" ilk girişinde Dialogflow, hedef parametresini "Galapagos Adaları"ndan çıkardı.

Ardından, bir form parametresini doldurmamız istendiğinde aracıya geçerli bir giriş sağlamazsak ne olacağına bakacağız.

Geçersiz giriş

  1. Temsilciyle yeni bir görüşme başlatmak için Simülasyon Aracı panelinde Sıfırla simgesini tıklayın.
  2. Bu kez, grup rezervasyonu yapmak istediğinizi belirtin ancak nereye gitmek istediğinizi ve ne zaman gitmek istediğinizi söylemeyin. Hedef sorulduğunda Kosta Rika, Galapagos veya Meksika olmayan rastgele bir değerle yanıt verin.

Geçersiz bir hedef girme

  1. Yönet sekmesindeki Kaynaklar bölümünde Varlık türleri'ni tıklayın. İki sekme görürsünüz: Sistem sekmesinde, aracınız tarafından şu anda kullanılan sistem öğelerini bulabilirsiniz. Özel sekmesinde, bu temsilciye özgü verilerin eşleştirilmesi için oluşturulan özel öğelerin listesi yer alır.

Hedef özel varlığı

  1. Öğenin hangi değerlerle eşleştiğini öğrenmek için hedef öğesini tıklayın. "Avrupa" girişlerden biri değil ve eş anlamlı da değil.
  2. Akış şemasında, form parametrelerini içeren Daha Fazla Bilgi Topla sayfasını genişletin. Hedef parametresini tıklayın.
  3. Parametre panelinde Yeniden isteme etkinlik işleyicileri bölümüne gidin ve Eşleşme yok varsayılanı etkinlik işleyicisini tıklayın.

Bu parametre düzeyindeki etkinlik işleyici, özellikle form doldurma sırasında geçersiz son kullanıcı girişini işlemek için tasarlanmıştır. "Avrupa" beklenmedik bir giriş olduğundan sys.no-match-default etkinliği çağrıldı ve bu etkinlik için tanımlanan ilgili yeniden istem işleyicisi çağrıldı. Ajanın yanıtı bölümünde iki alternatif yeniden istem mesajı listelenir.

Son kullanıcı geçersiz bir hedef girdiğinde statik alternatif yeniden istem mesajları.

İyi iş çıkardınız! Bu test senaryoları, aracının uygun şekilde ele alması beklenen yaygın senaryoları temsil eder. Kullanıcılar genellikle botların yanıtlayamayacağı sorular sorar veya yerine getiremeyeceği isteklerde bulunur. Uzun kuyruk için tasarım yapmak, yani çoğu kullanıcının izleyeceği alışılmış yolların dışında tasarım yapmak çok karmaşıktır. Bir sohbette ters gidebilecek her şeyi ve kullanıcıların izleyebileceği beklenmedik veya desteklenmeyen tüm yolları düşünün.

Otomatik konuşma tanıma (ASR) alanındaki gelişmeler sayesinde kullanıcıların ne söylediğini neredeyse her zaman tam olarak biliyoruz. Ancak kullanıcıların ne demek istediğini belirlemek hâlâ zorlu bir görevdir. İfadeler genellikle tek başına anlaşılamaz, yalnızca bağlam içinde anlaşılabilir. Bu codelab'in bir sonraki bölümünde, Google'ın en yeni üretken büyük dil modellerinin (LLM'ler) diyaloğu tekrar rayına oturtmaya ve sohbeti ilerletmeye nasıl yardımcı olabileceğini inceleyeceğiz.

5. Üretken yedeklemeyi etkinleştirme

Üretken yedek özellik nedir?

Üretken yedek özellik, sanal aracı yanıtları oluşturmak için Google'ın büyük dil modellerini (LLM'ler) kullanan bir Dialogflow CX özelliğidir.

Nasıl yardımcı olur?

Temel kullanım alanlarının arasında, kullanıcının anlamaması durumunda aracının söylediklerini tekrarlama, kullanıcının istemesi durumunda hattı bekletme ve görüşmeyi özetleme gibi biraz yaygın olan kullanıcı istekleri de yer alır. Yaptığımız ilk testte, "Liveaboard nedir?" sorusuna yanıt verilemedi. Bunun nedeni, bu soru için bir amaç oluşturmamış olmamız ve akışı, tüplü dalış ve liveaboard ile ilgili bu tür genel soruları işleyecek şekilde tasarlamamış olmamızdı.

Güçlü amaçlar olsa bile hata payı vardır. Kullanıcılar sessiz kalarak (Giriş Yok hatası) veya beklenmedik bir şey söyleyerek (Eşleşme Yok hatası) senaryonun dışına çıkabilir. Hataları oluşmadan önce önlemek, oluştuktan sonra düzeltmekten daha iyidir ancak hataları tamamen önlemek mümkün değildir. "Maalesef nasıl yardımcı olabileceğimi bilmiyorum" gibi genel istemler veya benzer minimum düzeyde uygulanabilir çözümler genellikle yeterli değildir. Hata istemleri, etkili iletişimin, sohbet katılımcıları arasında işbirliği olduğu varsayımına dayandığı İşbirliği İlkesi'nden ilham almalıdır.

Bir sonraki bölümde, daha iyi bir müşteri deneyimi için niyet kapsamını artırmak ve hata işlemeyi basitleştirmek amacıyla üretken yedekleme özelliğinin nasıl yapılandırılacağını ele alacağız.

Tüm akışın eşleşme yok etkinliği için üretken yedeklemeyi etkinleştirme

Akışlarda, sayfalarda veya parametre doldurma sırasında kullanılan eşleşme yok etkinlik işleyicilerinde üretken yedeklemeyi etkinleştirebilirsiniz. Eşleşme yok etkinliği için üretken yedekleme etkinleştirildiğinde, bu etkinlik her tetiklendiğinde Dialogflow, kullanıcıya geri okunacak bir yanıt üretmeye çalışır. Yanıt oluşturma işlemi başarısız olursa bunun yerine normal, önceden belirlenmiş aracı yanıtı verilir.

Aracılarınızda, akış, sayfa veya parametre karşılama işlemlerinde kullanılabilen eşleşme yok etkinlik işleyicilerinde üretken yedeklemeyi etkinleştirebilirsiniz.

Liveaboards iş akışının tamamı için varsayılan eşleşme yok etkinliğinde üretken yedeklemeyi etkinleştirmeye başlayacağız.

  1. Akışın Başlangıç Sayfası'nı genişletin.
  2. Event handlers (Etkinlik işleyiciler) bölümünde sys.no-match-default'u tıklayın.
  3. Aracı yanıtları bölümünde Üretken yedeklemeyi etkinleştir'i işaretleyin ve Kaydet'i tıklayın.

Temsilci yanıtları bölümünde "Üretken yedek yanıtı etkinleştir" seçeneğini işaretleyin.

Liveaboards Başlangıç Sayfası'nda üretken yedeklemeyi etkinleştirmek için kaydedin

Belirli eşleşme yok etkinliklerinde üretken yedeklemeyi etkinleştirme

Artık temsilci yolcu sayısını sorduğunda geçersiz girişleri işlemek için üretken yedeklemeyi etkinleştirmek istiyoruz:

  1. Form parametrelerini içeren Daha Fazla Bilgi Topla sayfasını açın. number-of-guests parametresini tıklayın.
  2. Hedef Eşleşme yok etkinlik işleyicisine gidin (Yeniden istem etkinlik işleyicileri bölümüne gidin ve Eşleşme yok varsayılan etkinlik işleyicisini tıklayın).

Hedef eşleşme yok etkinlik işleyicisine gidin (Yeniden isteme etkinlik işleyicileri bölümüne gidin ve Eşleşme yok varsayılan etkinlik işleyicisini tıklayın).

  1. Temsilci yanıtları bölümünde Üretken yedeklemeyi etkinleştir'i işaretleyin.

Parametre sayısı-of-guest için üretken yedeklemeyi etkinleştirme

  1. Son olarak Kaydet'i tıklayın.
  2. Şimdi destination ve email-address için üretken yedeklemeyi etkinleştirmek üzere aynı adımları tekrarlayın.

İyi iş çıkardınız! Beklenmeyen amaçları ve geçersiz parametre değerlerini işlemek için üretken yedeklemeyi etkinleştirdiniz. Ardından, LLM'ye nasıl yanıt vermesi gerektiğini bildiren bir metin istemiyle üretken yedek özelliğini nasıl yapılandıracağımızı inceleyeceğiz.

6. Üretken yedeklemeyi yapılandırma

Üretken yedek özellik, üretilen yanıtı oluşturmak için büyük bir dil modeline istek gönderir. İstek, doğal dil ile temsilcinin ve görüşmenin mevcut durumuyla ilgili bilgilerin karışımından oluşan bir metin istemi biçimindedir. Bu özellik çeşitli şekillerde yapılandırılabilir:

  1. Yanıt oluşturma için kullanılacak belirli bir (önceden tanımlanmış) istem seçin.
  2. Özel bir istem tanımlayın.

Önceden tanımlanmış bir istem seçme

  1. Dialogflow CX konsolunda Agent Settings'i (Temsilci Ayarları) tıklayın.

Aracı Ayarları'na gitme

  1. ML sekmesine ve ardından Üretken Yapay Zeka alt sekmesine gidin.

Üretken yapay zeka alt sekmesi

Bu özellik, Varsayılan şablon (görünmez) ve kendi istemlerinizi yazmanıza yardımcı olan Örnek şablon olmak üzere iki şablon istemiyle birlikte gelir.

  1. Örnek şablonunu seçin ve incelemek için açılır listenin sağ tarafındaki Düzenle düğmesini tıklayın.

İncelemek için şablon açılır listesinin sağ tarafındaki Düzenle düğmesini tıklayın.

Sanal ajan, önceden tanımlanmış istemle temel sohbet durumlarını yönetebilir. Örneğin:

  • Kullanıcıyı karşılayın ve uğurlayın.
  • Kullanıcı anlamadıysa aracının söylediklerini tekrarlayın.
  • Kullanıcı istediğinde hattı bekletin.
  • İleti dizisini özetleyin.

Divebooker temsilcisi için belirli bir metin istemi tanımlamayı deneyelim.

7. Kendi isteminizi tanımlama

  1. Aşağıdaki istemi kopyalayıp Metin istemi alanına yapıştırın.
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:
  1. Yeni istemi yeni bir şablon olarak saklamak için Yeni şablon olarak kaydet'i (yeni bir şablon adı seçin) ve panelin sağ alt köşesindeki Kaydet'i seçin.

Aracıya özel bir özel metin istemi oluşturun ve yeni şablon olarak kaydedin.

  1. Yeni oluşturulan istemi etkin istem haline getirmek için ayarları kaydetmeniz de gerekir.

Yeni ayarları kaydedin.

Kendi metin isteminizi yazarken net, kısa ve yönlendirici olun. Büyük dil modeline gönderilen istemin oluşturulma şekli, büyük dil modelinin yanıtının kalitesini büyük ölçüde etkileyebilir. LLM'ler talimatları uygulamak üzere eğitilir. Bu nedenle, isteminiz ne kadar net bir talimat gibi görünürse o kadar iyi sonuçlar elde edersiniz. Bir istem oluşturun ve aldığınız sonuçlara göre istemi iyileştirmek için yineleme yapın.

Etkili istemler oluşturmak için aşağıdaki en iyi uygulamaları izleyin:

  1. LLM'nin yapmasını istediğiniz görevi net ve kısa bir şekilde açıklayın. Ne daha fazla ne de daha az. Tam ve kısa tutun.
  2. Ayrıca istem, net ve ayrıntılı olmalı, belirsiz veya muğlak ifadelerden kaçınılmalıdır.
  3. Karmaşık görevleri daha küçük ve yönetilebilir parçalara ayırın. Görevi daha küçük adımlara bölerek modelin her seferinde tek bir şeye odaklanmasına yardımcı olabilir ve hata veya kafa karışıklığı olasılığını azaltabilirsiniz.
  4. Yanıt kalitesini artırmak için isteminize örnek ekleyin. LLM, bağlam içinde verilen örneklerden yararlanarak nasıl yanıt vereceğini öğrenir.

İstem oluştururken, ne tür bir bağlam oluşturulması gerektiğine dair doğal dil açıklamasının yanı sıra aşağıdaki yer tutucular da kullanılabilir:

  • $conversation En son kullanıcı ifadesi hariç, aracı ile kullanıcı arasındaki görüşme. Dönüş öneklerini (ör. Metin isteminde "İnsan", "Yapay Zeka" veya "Siz", "Temsilci" gibi ifadeler
  • $last-user-utterance Son kullanıcı ifadesi.
  • $flow-description Etkin akışın akış açıklaması.
  • $route-descriptions Etkin amaçların amaç açıklamaları.

İlk metin istemini oluşturduğumuza göre, bir sonraki görev akışın ve amaçların iyi bir şekilde açıklanmasını sağlamaktır.

8. Akış ve amaç açıklamaları ekleme

Akış açıklamasını ekleyin

  1. Konaklamalı tekne turları akışına açıklama eklemek için Akışlar bölümünde fareyle akışın üzerine gelerek akış ayarlarına erişin.

Akışlar bölümünde farenizi akışın üzerine getirerek akış ayarlarına erişin.

  1. Seçenekler 78d2781c655810e7.png düğmesini tıklayın.
  2. Akış ayarları'nı seçin ve aşağıdaki açıklamayı (veya benzer bir açıklamayı) ekleyin: search, find and book liveaboards.

Liveaboards akışına açıklama ekleme

  1. Kaydet'i tıklayın

Niyet açıklamasını ekleyin

  1. Şimdi head.send.group.request amacına iyi bir açıklama ekleyelim. Yönet sekmesine geçin, Kaynaklar bölümünde Amaçlar'ı seçin ve head.send.group.request amacını belirleyin.
  2. Aşağıdaki açıklamayı ekleyin: assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands

Açıklamada, bir teknede izin verilen minimum ve maksimum yolcu sayısı gibi önemli bilgiler yer alır. Bunu unutmayın.

  1. Kaydet'i tıklayın

İşte bitti! Hem akış hem de parametre karşılama için eşleşme yok etkinlik işleyicilerinde üretken yedeklemeyi etkinleştirmişsinizdir. Ayrıca, üretken yedek özellik tarafından üretken yanıtlar oluşturmak için büyük bir dil modeline iletilen kendi metin isteminizi de tanımlamışsınızdır.

Bir sonraki bölümde, temsilcinizi tekrar test ederek önceki zorlu soruları nasıl yanıtlayabileceğini göreceksiniz.

9. Temsilcinizi yeniden test etme

Sanal ajan üzerinde üretken yedek yanıtı yapılandırıp etkinleştirdiğinize göre artık benzer zorlu sorular sorabilir ve yanıtları nasıl ele aldığını görebilirsiniz.

Simülatörü tekrar açmak için Test Agent'ı tıklayın.

Aracıyı tekrar test etme

Acente'ye tekrar tekneyle konaklama ve tekneyle konaklayarak dalış hakkında soru sorun. Bundan sonra her iletişimde kullanıcı tanımlı mesajların yanı sıra oluşturulan yanıtların kırmızı kutularla vurgulandığını unutmayın.

Aracı yeniden test edin ve tekrar "liveaboard"un ne olduğunu sorun.

Genel bir yeniden istem yerine bilgilendirici bir yanıt aldınız mı? Mükemmel! Aracının yerine getirmesini istediğiniz görevlerin net ve kısa bir açıklamasını (metin isteminde ve akış açıklamasında) sağladıktan sonra botunuz, belirli amaçlar oluşturmadan ayrıntılı soruları yanıtlama konusunda artık çok daha akıllı. Müşteriniz, temsilcinin işlem yapılamayan bir yanıt yerine daha bilinçli bir yanıt vermesini takdir edecektir.

Çekinmeyin ve yapay zekaya meydan okuyun. Henüz sertifikalı bir dalgıç olmadığınız için size tüplü dalış kursu bulmanıza yardımcı olup olamayacağını sorun.

 Temsilciye tüplü dalış kursu bulmanıza yardımcı olup olamayacağını sorun.

Evet, şu anda bu temsilciyi tüplü dalış kurslarında yardımcı olacak şekilde tasarlamadık. Temsilci bunu nereden biliyor? Metin isteminde, temsilcinin hangi konularda yardımcı olabileceği ve olamayacağı açıkça belirtilmiştir. "Şu anda müşterilere karada yapılan dalış ve kurslar konusunda yardımcı olamıyorsunuz. Yerel dalış mağazalarını ve dalış tesislerini öneremezsiniz."

Şimdi mutlu senaryoyu yeniden test edin ve sohbeti zenginleştirin. Deneyimin nasıl değiştiğine göz atalım.

İşlemin başarılı olduğu senaryoyu yeniden test edin ve diyalogda yaratıcı olun.

İşlemin başarılı olduğu senaryoyu yeniden test edin ve diyalogda yaratıcı olun.

Dialogflow bir amaca eşleştiğinde veya akış tasarımına göre bir parametreyi toplamaya çalıştığında tasarım zamanında tanımlanan yerine getirme işlemlerini gösterir. Kullanıcı, seyahat ayrıntılarının özetini isteyerek veya telefon numarasını vermeyi teklif ederek senaryo dışına çıktığında üretken yedek özellik devreye girer.

Güzel! Başarılı senaryoyu yeniden test ettiniz. Umarım müşteri temsilcisiyle, canlı müşteri temsilcisiyle görüşme deneyimine mümkün olduğunca yakın, keyifli ve doğal bir sohbet gerçekleştirmişsinizdir.

Maalesef bir sohbette işler ters gidebilir. Şimdi farklı bir test yapalım. Bu kez, konuk sayısı sorulduğunda 15'ten büyük bir sayı söyleyin.

15'ten fazla konuk sayısı girin

15'ten fazla konuk sayısı girin

Burada dikkat edilmesi gereken birkaç nokta var:

  1. Neden 20 geçerli bir sayı değil? Çünkü niyet açıklamasında izin verilen konuk sayısıyla ilgili bir sınır belirledik: "Aracı, kalkış dönemi, varış noktası, konuk sayısı ***(en az 4, en fazla 15 kişi)****, iletişim bilgileri* gibi bilgileri toplar." LLM'nin döndürdüğü "Üzgünüz, yalnızca 15 konuğa kadar olan grup rezervasyonlarında yardımcı olabiliriz" üretken yanıtı, konuk sayısı konusunda verdiğimiz kısıtlamalarla tamamen uyumlu. Bunu daha da zorunlu kılmak için konuk sayısı, yalnızca 4-15 aralığındaki sayılarla eşleşen özel bir normal ifade öğesidir.
  2. Kullanıcı, sonunda 15 dalgıç için teklif almak istediği için görüşme devam ediyor. Bu durum, doğal sohbetlerde sıkça yaşanır. Fikirlerimiz sık sık değişir. Aracının nasıl işbirliği yaptığını ve kullanıcıyı nazikçe başarılı yola geri yönlendirdiğini fark edin.

Sohbet tasarımı, bir diyaloğun yarısını senaryolaştırmayı ve herkesin diğer yarısını canlandırabilecek kadar sağlam olmasını ummayı içerir. Uzun kuyruk için tasarım yaparken geliştiricilerin, rotalarınızı, işleyicilerinizi ve parametrelerinizi tanımlamak üzere kullanıcının diyalogunuzun her adımında ne söyleyebileceğine odaklanması gerekir. Bu nedenle, geliştiricilerin kullanıcıya sağlam bir sohbet deneyimi sunmak için sohbet tasarımı ilkelerine odaklanıp uygulama ayrıntılarıyla daha az ilgilenmesini sağlamak amacıyla Dialogflow CX'e üretken yedekleme özelliğini ekledik.

Bir test daha yapalım. Bu kez, botu Maldivler gibi mevcut varış noktaları listesinde yer almayan bir yerle tekrar sorgulayalım. Ardından, arka planda neler olduğuna hızlıca göz atacağız.

Botu, Maldivler gibi mevcut hedefler listesinde yer almayan bir yerle tekrar sorgulayın.

Hedef parametresi için no-match etkinliğinde üretken yedeklemeyi de etkinleştirdiğimizden, oluşturulan yanıtı üretmek için büyük bir dil modeline istek gönderildiğini unutmayın. Normalde önceden yazılmış yanıtlar (Temsilci diyor bölümünde) yoksayılır.

Aşağıdaki metin kutuları, yer tutucuların büyük dil modeline gönderilen isteği nasıl şekillendirdiğini daha iyi anlamanıza yardımcı olacaktır.

Bu, Dialogflow'da yapılandırdığımız ve yer tutucuların kalın harflerle vurgulandığı özel metin istemidir:

You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can $route-descriptions

The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}

Then the human asked:
$last-user-utterance

You say:

Aşağıdaki metin kutusunda, büyük dil modelinin aldığı girişi ve kullanıcıya geri söylenecek olan oluşturulmuş yanıtı içeren çıkışı ekledim:

llm_input:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help search, find and book liveaboards.

At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.

Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands.

The conversation between the human and you so far was:
Human: Hi, my name's Alessia
AI Hi Alessia, what can I help you with today?
Human: Can you help me find a nice boat for myself and my family?
AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly.
Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico

Then the human asked:
The kids want to go to the Maldives

llm_output:
You say:
I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.

Daha önce yapılan testte olduğu gibi, kullanıcıya gönderilen yanıt model tarafından oluşturulur ve niyet açıklaması kapsamında sağladığımız bilgilere dayanır: "Hedef, Pasifik'te şu yerlerden biri olmalıdır: Kosta Rika, Meksika, Galapagos Adaları"

Yasaklanmış ifadelerin listesini değiştirme

Üretken yedek özellik çeşitli şekillerde yapılandırılabilir:

  1. Yanıt oluşturma için kullanılacak belirli bir (önceden tanımlanmış) istem seçin.
  2. Özel bir istem tanımlayın.
  3. Yasaklanmış ifadeler listesini değiştirin.

Şimdiye kadar ilk iki yöntemi inceledik. Üçüncü yöntemi inceleyelim.

  1. Aracı Ayarları'nda ML sekmesine, ardından Üretken Yapay Zeka alt sekmesine gidin.
  2. Yasaklanmış ifadeler bölümünde aşağıdaki cümleleri listeye ekleyin:
  3. Dangerous country
  4. Hateful place
  5. Medical assistance
  6. Kaydet'i tıklayın.
  7. Sıfırla simgesini tıklayın ve son senaryoyu yeniden test edin. Dünyanın dört bir yanındaki güzel dalış yerlerinden birini girmek yerine yasaklanmış ifadelerden birini girin.

Yasaklı ifadelerden birini test edin

İstem ve oluşturulan yanıt, yasaklanmış ifadeler listesine göre kontrol edilir. Yasaklanan ifadeler, üretken yapay zeka için yasaklanan ifadelerdir. Girişte yasaklanmış veya güvenli olmadığı düşünülen ifadeler varsa oluşturma işlemi başarısız olur ve bunun yerine normal olarak öngörülen yanıt (aynı karşılama işleminde Agent says altında) verilir.

Mükemmel! Üretken yanıtların gerçekten fark yaratabileceği çeşitli sohbet durumlarını ele aldık. Test etmeye devam edebilirsiniz.

10. Tebrikler

Codelab'i tamamladığınız için tebrik ederiz. Rahatlama zamanı!

Cbo Chill

Başarıyla bir sanal aracı oluşturdunuz ve akışlarda kullanılan no-match etkinlik işleyicilerinde ve parametre doldurma sırasında üretken yedeklemeyi etkinleştirdiniz.

İyi akış ve amaç açıklamalarıyla birlikte kullanılan üretken yedek özellik, "Maalesef nasıl yardımcı olacağımı bilmiyorum" veya "Maalesef geçersiz bir seçenek girdiniz" gibi genel istemler yerine temsilcinin spesifik ve işbirlikçi yanıtlar vermesini sağlayabilir. Geniş kapsamlı dil modelleri tarafından oluşturulan hata istemleri, kullanıcıları başarılı yollara yönlendirebilir veya nelerin mümkün olup nelerin mümkün olmadığıyla ilgili beklentilerini sıfırlayabilir.

Diğer sohbet durumlarını test edebilir ve Dialogflow CX ile üretken yapay zeka ile ilgili diğer işlevleri keşfedebilirsiniz.

Temizleme

Bu codelab'de kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini önlemek amacıyla aşağıdaki temizleme işlemlerini gerçekleştirebilirsiniz:

  • Dialogflow CX konsoluna gidin ve oluşturduğunuz tüm temsilcileri silin.
  • Google Cloud Console'da API'ler ve Hizmetler sayfasına gidip Dialogflow API'yi devre dışı bırakın.

Daha fazla bilgi

Aşağıdaki kılavuzlar ve kaynaklarla etkileşimli yapay zeka ve üretken yapay zeka hakkında bilgi edinmeye devam edin:

Lisans

Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.