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

1. Genel Bakış

Son güncelleme tarihi: 07.08.2023

Oluşturacaklarınız

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

Neler öğreneceksiniz?

  • Alakalı API'leri etkinleştirme
  • Dialogflow, sayfa formu parametresi değerlerini intent parametrelerinden otomatik olarak nasıl önceden doldurur?
  • Dialogflow'da etkinlik işleyicileri yapılandırma
  • Akışlarda ve parametre doldurma sırasında kullanılan eşleşme olmayan etkinlik işleyicilerde üretken yedek özelliğini etkinleştirme
  • Temel ve aracıya özel konuşma durumlarını işlemek için kendi metin isteminizi yapılandırma
  • Gerekli parametreler için yeniden istem işleyicileri oluşturmak üzere iyi niyet ve parametre açıklamaları yazma (kullanıcı tanımlı yeniden istemlere ek olarak)
  • Temsilcinizi test etme ve üretken yedeği tetikleyen müşteri sorularını simüle etme

Gerekenler

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

2. Kurulum

Dialogflow CX'te üretken yedek ö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 konsolunda API Kitaplığı'na giderek etkinleştirilebilecek API'lere ve hizmetlere göz atın.
  3. API Kitaplığı sayfasının üst kısmındaki arama çubuğunu kullanarak Dialogflow API araması yapın ve çıkan hizmeti tıklayın.
  4. Google Cloud projenizde Dialogflow API'yi etkinleştirmek için Etkinleştir düğmesini tıklayın.

gcloud KSA'yı (alternatif) kullanma

Alternatif olarak, API aşağıdaki gcloud komutuyla 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 aracıyı sıfırdan oluşturamayacaksınız. Dialogflow CX Konsolu'ndan geri yükleyip daha sonra iyileştirmeniz gereken bir aracı size sağlayacağız.

Kaynak kodu indirmek için:

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

3. Yeni temsilci oluşturun

Dialogflow konsolunu aç

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

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

Dialogflow CX'i ilk kez kullanıyorsanız ihtiyaçlarınıza göre projenizi ve ayarlarınızı yapılandırma hakkında daha fazla bilgi edinmek için Dialogflow CX Belgelerine göz atı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 aracı oluştur'u tıklayın.

Yeni bir temsilci oluşturma

  1. Kendi aracınızı oluşturun seçeneğini belirleyin.

Seçeneği belirleyin

  1. Aşağıdaki temsilci ayarlarıyla formu doldurun ve temsilciyi oluşturmak için Create'i (Oluştur) tıklayın.
  • Görünen ad olarak Divebooker seçeneğini belirleyin
  • Konum olarak seçin: us-central1
  • Tercih ettiğiniz saat dilimini seçin
  • Varsayılan dil olarak en - English dilini seç
  1. Dialogflow aracıyı sizin için otomatik olarak açar. Henüz işimiz bitmedi!

Divebooker aracısını geri yükleme

  1. Aracı listesi sayfasına dönün, az önce oluşturduğunuz aracıyı tanımlayın. 78d2781c655810e7.png seçeneğini ve ardından Geri Yükle düğmesini tıklayın.
  2. Yükle seçeneğini belirleyin ve GitHub deposundan daha önce indirdiğiniz ZIP dosyasını sürükleyip 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 aracıyı 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 aracınızı oluşturmayı tamamladınız. Bir sonraki bölümde aracı test edecek ve kullanıcı sorularını yanıtlama ve rezervasyon istekleri konusunda yardımcı olma konusunda ne kadar başarılı olduğunu göreceksiniz.

4. Temsilciyi test edin

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

Birkaç senaryoyu test edip her senaryo için temsilcinin belirli bir yanıtı neden verdiğini inceleyeceğiz. İlkiyle başlayalım.

Sonuca ulaşılmamış amaç

  1. Dialogflow konsolunda ve temsilcinizin içinden Test Aracısı'nı tıklayarak Simülatörü açın.

Test Aracısı'nı tıklayarak Simülasyon Aracı'nı açın

  1. Temsilciniz için Hello gibi bir karşılama mesajı yazıp what is a liveaboard? adlı kullanıcıya soru sorun. Soru hiçbir niyetle eşleşmiyor, "Maalesef nasıl yardımcı olabileceğimden emin değilim" gibi genel bir istem gösterilir. Simülatör'de orijinal yanıtı inceleyerek sys.no-match-default yerleşik etkinliğin çağrılıp çağrılmadığını kontrol edebilirsiniz.

Müşteri temsilcisini selamlayın ve "liveabord"un ne olduğunu sorun.

JSON yanıtının sonuna gelin. Eşleşen bir intent ararken, Dialogflow bunu bir NO_MATCH olarak bulur ve eşleşmez bir etkinlik oluşturur.

sys.no-match-default etkinliğinin Dialogflow tarafından oluşturulup oluşturulmadığını kontrol etme

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

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

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

  1. sys.no-match-default etkinlik işleyicisini tıklayın ve Agent response (Aracı yanıtları) bölümüne ilerleyin. Dialogflow'da alternatif yanıtlar listesi sunulur. Bununla birlikte, son kullanıcıya metin tabanlı yanıtlardan daha fazlasını sunmak için farklı yanıt mesajı türleri de tanımlayabilirsiniz.

Önceden tanımlanmış temsilci yanıtlarına bakma

Mutlu yola devam edelim.

Mutlu yol

Bu ikinci örnekte, gelecek yıl Temmuz ayında Galapagos Adaları'na 12 kişilik bir dalış gezisi rezervasyonu yapmak isteyen bir dalgıç rolü yaptığını varsayalım.

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

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

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

  1. Acenteye, Galapagos Adaları'nda tekne kiralamak istediğinizi söyleyin ve seyahatinizle ilgili ayrıntıları paylaşın. Aşağıdaki istemlerin aynısını kullanmanız gerekmez. Deneyin!

Mutlu yolu test edin

  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 sayfanın geçişini yapmasını bildiren Geçiş bölümüne ilerleyin.

Daha Fazla Bilgi Toplamaya Geçiş sayfası

  1. Rota tanımını kapatın ve Daha Fazla Bilgi Topla sayfasını genişletin. Girişin karşılanmasına ve parametre listesine dikkat edin.

Daha Fazla Bilgi Toplayın 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şin bir parçası olarak ilettiğimiz ve destination değeri de bir intent parametresi olduğundan temsilcinin seyahat hedefini istemediğini unutmayın. Bir sayfa ilk kez etkin hale geldiğinde ve etkin olduğu süre boyunca, intent 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ünün altındaki head.send grup isteği amacını tıklayın. Bu amaç için sağlanan eğitim ifadelerine ve eğitim ifadelerinin açıklamalı bölümlerine bakın.

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

  1. "15 dalgıç için Kosta Rika'ya seyahat düzenlemem gerekiyor" şeklinde bir eğitim ifadesini düşünün. "Kosta Rika" hedef ve "15" ek açıklamalarıyla birlikte davetli-sayısı ile değiştirin. Bir eğitim ifadesinin bölümlerine ek açıklama eklediğinizde, Dialogflow bu bölümlerin çalışma zamanında son kullanıcılar tarafından sağlanacak gerçek değerlere yalnızca birer örnek olduğunu fark eder. İlk girişteki "Gapagos Adaları'na tekne kiralama hizmeti sunuyor musunuz?" sorusunun nedeni budur. Dialogflow, "Galapagos Adaları"ndan hedef parametreyi çıkardı.

Ardından, bir form parametresi doldurması istendiğinde temsilciye 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ülatör panelinde Sıfırla simgesini tıklayın.
  2. Grup rezervasyonu yapmak istediğinizi belirtin. Bu kez temsilciye nereye gitmek istediğinizi söylemeyin ve sizden bir varış noktası yanıtı istendiğinde Kosta Rika, Galapagos veya Meksika olmayan rastgele bir değerle bir hedef yanıtı isteyin.

Geçersiz bir hedef girin

  1. Yönet sekmesinde, Kaynaklar bölümünün altındaki Varlık türleri'ni tıklayın. İki sekme bulunur: Sistem sekmesinin altında, aracınız tarafından kullanılmakta olan sistem varlıklarını bulabilirsiniz. Özel sekmesi, bu aracıya özgü verileri eşleştirmek için oluşturulmuş özel varlıkların listesini sağlar.

Hedef özel varlık

  1. Varlığın hangi değerleri eşleştiğini öğrenmek için hedef varlığı tıklayın. "Avrupa" girişlerden biri olmadığı gibi bu da bir eş anlamlı değildir.
  2. Akış şemasında, form parametrelerini içeren Daha Fazla Bilgi Topla sayfasını genişletin. destination parametresini tıklayın.
  3. Parametre panelinde Yeniden istem etkinlik işleyicileri bölümüne gidin, ardından Eşleşmeyen varsayılan etkinlik işleyiciyi tıklayın.

Bu parametre düzeyindeki etkinlik işleyici, form doldurma sırasında geçersiz son kullanıcı girişini işlemek için özel olarak tasarlanmıştır. Çünkü "Avrupa"' beklenmedik bir girişse, bir sys.no-match-default etkinliği çağrıldı ve bu etkinlik için tanımlanan karşılık gelen reprompt işleyici çağrıldı. Müşteri temsilcisinin mesajı bölümünde, iki alternatif yeniden istem mesajı listelenmektedir.

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

İyi iş çıkardınız! Bu test durumları, temsilcinin uygun bir şekilde ele alması beklenen yaygın senaryoları temsil eder. Kullanıcılar çoğunlukla botların yanıtlayamadığı sorular sorar veya botların yerine getiremeyeceği isteklerde bulunur. Uzun kuyruk tasarımı oldukça karmaşıktır. Diğer bir deyişle, çoğu kullanıcının takip edeceği iyi takılan yollara uygun değildir. Bir sohbette ters gidebilecek her şeyi ve kullanıcıların karşılaşabileceği beklenmedik veya desteklenmeyen tüm yolları düşünün.

Otomatik konuşma tanımadaki (ASR) gelişmeler, kullanıcıların söylediklerini neredeyse her zaman tam olarak bildiğimiz anlamına gelir. Ancak kullanıcıların ne anlama geldiğini belirlemek hâlâ zor. Söylemler genellikle tek başına anlaşılmaz. yalnızca bağlam içinde anlaşılabilirler. Bu codelab'in bir sonraki bölümünde, Google'ın en yeni üretken büyük dil modellerinin (LLM) diyaloğu tekrar işlemeye ve sohbeti ileriye taşımaya nasıl yardımcı olabileceğini keşfedeceğiz.

5. Üretken yedeği etkinleştir

Üretken yedek özelliği nedir?

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

Nasıl yardımcı olur?

Temel kullanım alanları arasında bazı yaygın kullanıcı istekleri söz konusudur. Örneğin, kullanıcının anlamadığı bir durumda temsilcinin söylediklerini tekrarlamak, kullanıcı istediğinde satırı tutmak ve konuşmayı özetlemek gibi. Yaptığımız ilk testte, temsilci "Liveaboard nedir?" sorusunu yanıtlayamadı. Çünkü böyle bir amaç oluşturmadık ve akışı, tüplü dalış ve gemiyle ilgili teknik sorularla ilgili bu tür genel soruları ele alacak şekilde tasarladık.

Niyetler güçlü olsa bile hataya yer vardır. Kullanıcılar sessiz kalarak (Giriş Yok hatası) veya beklenmedik bir şey söyleyerek (Eşleşme Yok hatası) komut dosyasını kapatabilir. Hataların ortaya çıkmasını önlemek, hataları oluştuktan sonra ele almaktan daha iyi olsa da hatalardan tamamen kaçınılamaz. "Maalesef nasıl yardımcı olabileceğimden emin değilim" gibi genel istemler veya benzer asgari uygulanabilir çözümler genellikle yeterince iyi değildir. Hata istemleri İşbirliği İlkesi’nden esinlenmelidir. Bu ilkeye göre etkili iletişim, konuşmayı yapan katılımcılar arasında yeterince iş birliği olduğu varsayımına dayanır.

Sonraki bölümde, amaç kapsamını artırmak ve daha iyi bir müşteri deneyimi sunmak için hata işlemeyi basitleştirmek üzere üretken yedek özelliğinin nasıl yapılandırılabileceğine bakacağız.

Akışın tamamında eşleşmez etkinlik için üretken yedeği etkinleştirme

Akışlarda, sayfalarda veya parametre doldurma sırasında kullanılan eşleşmez etkinlik işleyicilerde üretken yedeği etkinleştirebilirsiniz. Eşleşmeyen bir etkinlik için üretken yedek etkinleştirildiğinde bu etkinlik her tetiklendiğinde Dialogflow, kullanıcıya söylenecek oluşturulmuş bir yanıt üretmeye çalışır. Yanıt oluşturulamazsa bunun yerine normal reçete aracı yanıtı verilir.

Aracınızda, akış, sayfa veya parametre karşılamada kullanılabilen eşleşme olmayan etkinlik işleyicilerde üretken yedeği etkinleştirebilirsiniz.

Liveaboards akışının tamamında, "eşlemesiz" varsayılan etkinliğinde üretken yedeği etkinleştirmeye başlayacağız.

  1. Akışın Başlangıç Sayfası'nı genişletin.
  2. Etkinlik işleyiciler bölümünde sys.no-match-default'u tıklayın.
  3. Temsilci yanıtları bölümünde Üretken yedeği etkinleştir'i işaretleyin ve ardından Kaydet'i tıklayın.

Aracı yanıtları altında, "Üretken yedeği etkinleştir"i işaretleyin

Liveaboard'lar Başlangıç Sayfası'nda üretken yedeği etkinleştirmek için kaydedin

Belirli eşleşme olmayan etkinliklerde üretken yedek özelliğini etkinleştirme

Artık temsilci yolcu sayısını sorduğunda geçersiz girişleri işleyebilmek için üretken yedeği 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şmeyen etkinlik işleyiciye gidin (Yeniden istem etkinlik işleyicileri bölümüne ilerleyin ve ardından Eşleşmeyen varsayılan etkinlik işleyiciyi tıklayın)

Hedef "Eşleşme yok" etkinlik işleyicisine gidin (yeniden istem etkinlik işleyicileri bölümüne gidip "Eşleşme yok" varsayılan etkinlik işleyici'yi tıklayın)

  1. Aracı yanıtları bölümünde Üretken yedeği etkinleştir'i işaretleyin.

Misafir sayısı parametresinde üretken yedeği etkinleştir

  1. Son olarak Kaydet'i tıklayın.
  2. Şimdi hedef ve e-posta adresi için üretken yedek özelliğini etkinleştirmek üzere tüm adımları tekrarlayın

İyi iş çıkardınız! Beklenmeyen amaçlar ve geçersiz parametre değerlerini işlemek için üretken yedekleri etkinleştirdiniz. Daha sonra, LLM'ye nasıl yanıt vereceğini anlatan bir metin istemiyle üretken yedek özelliğinin nasıl yapılandırılacağına bakacağız.

6. Üretken yedeği yapılandır

Üretken yedek özelliği, oluşturulan yanıtı üretmek için isteği büyük dil modeline iletir. İstek, doğal dil ile temsilcinin mevcut durumu ve görüşmenin durumu hakkındaki bilgilerin bir karışımı olan metin istemi biçimindedir. Bu özellik birden fazla şekilde yapılandırılabilir:

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

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

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

Temsilci Ayarları'na git

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

Üretken yapay zeka alt sekmesi

Bu özellik, kutudan çıkan iki şablonla birlikte sunulur: Varsayılan şablon (görünmez) ve kendi istemlerinizi yazmanıza rehberlik eden Örnek şablon.

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

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

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

  • Kullanıcıya selam verin ve veda edin.
  • Kullanıcı anlamadıysa temsilcinin söylediklerini tekrarlayın.
  • Kullanıcı istediğinde satırı basılı tutun.
  • İleti dizisini özetleyin.

Şimdi, Divebooker aracısı için belirli bir metin istemi tanımlamayı deneyelim.

7. Kendi isteminizi tanımlayın

  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 depolamak için Yeni şablon olarak kaydet'i seçin (yeni bir şablon adı seçin) ve panelin sağ alt köşesinde Kaydet'i seçin.

Temsilciye özel bir özel metin istemi oluşturun ve yeni bir şablon olarak kaydedin

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

Yeni ayarları kaydedin

Kendi metin isteminizi yazarken açık, kısa ve öz olun. LLM'ye yönelik istemin oluşturulma şekli, LLM'nin yanıtının kalitesini büyük ölçüde etkileyebilir. LLM'ler talimatları uygulayacak şekilde eğitilmiştir. Dolayısıyla, isteminiz ne kadar doğru bir talimat gibi görünürse o kadar iyi sonuçlar elde etme olasılığınız o kadar artar. Elde ettiğiniz sonuçlara göre bir istem oluşturup bunu daha sonra tekrarlayın.

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

  1. LLM'nin yapmasını istediğiniz görevin net ve kısa bir açıklamasını sağlayın. Ne daha fazlası eksik. Eksiksiz ve kısa olmasına özen gösterin.
  2. Buna ek olarak, belirsiz veya muğlak dil kullanmaktan kaçınarak net ve iyi tanımlanmış bir istem olmalıdır.
  3. Karmaşık görevleri daha küçük ve daha altından kalkılabilir parçalara ayırın. Görevi küçük adımlara bölerek modelin her defasında tek bir işe odaklanmasına yardımcı olabilir ve hata ya da karışıklık olasılığını azaltabilirsiniz.
  4. Yanıt kalitesini iyileştirmek için isteminize örnekler ekleyin. LLM, nasıl yanıt vereceğine dair örneklerden bağlamı içinde öğrenir.

İstem oluşturulurken, ne tür bağlam oluşturulması gerektiğine dair doğal dil açıklamasına ek olarak aşağıdaki yer tutucular da kullanılabilir:

  • $conversation Kullanıcının en son söylediği hariç olmak üzere, aracı ile kullanıcı arasındaki görüşme. Dönüş öneklerini uyarlayabilirsiniz (ör. "İnsan", "Yapay zeka" veya "Siz", "Temsilci")
  • $last-user-utterance Kullanıcının son söylediği şey.
  • $flow-description Etkin akışın akış açıklaması.
  • $route-descriptions Etkin amaçların amaç açıklamaları

Artık başlangıçtaki metin istemini oluşturduğumuza göre, sıradaki görev akışın ve amaçların iyi açıklamalara sahip olmasını sağlamak.

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

Akış açıklamasını ekleme

  1. Liveaboard'lar akışına açıklama eklemek için farenizi Akışlar bölümündeki akışın üzerine getirerek akış ayarlarına erişin.

Farenizi Akışlar bölümündeki 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.

Liveaboard'lar akışına açıklama ekleme

  1. Kaydet'i tıklayın

Amaç 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'ı ve ardından head.send.group.request intent'i seçin.
  2. Şu 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çıklamanın bir teknede izin verilen minimum ve maksimum yolcu sayısı gibi önemli bilgiler içerdiğini unutmayın. Bunu unutmayın.

  1. Kaydet'i tıklayın

İşte bitti! Hem akış hem de parametre karşılama için eşleşmez etkinlik işleyicilerde üretken yedekleri etkinleştirdiniz. Ayrıca, üretken yedek özelliğinin, üretken yanıtlar üretmek için büyük dil modeline ilettiği kendi metin isteminizi de tanımladınız.

Bir sonraki bölümde, daha önceki aynı zorlu soruları nasıl cevaplayabileceğini görmek için temsilcinizi tekrar test edeceksiniz.

9. Temsilcinizi yeniden test edin

Artık sanal aracıda üretken yedek uygulamayı yapılandırıp etkinleştirdiğinize göre benzer zor sorular sorabilir ve yanıtları nasıl işlediğini görebilirsiniz.

Simülasyon Aracı'nı tekrar açmak için Aracıyı Test Et'i tıklayın.

Temsilciyi tekrar test edin

Temsilciye canlı uçuş ve canlı dalışla ilgili sorular sorun. Şu andan itibaren her iletişim kutusunda kullanıcı tanımlı mesajların yanı sıra oluşturulmuş yanıtların kırmızı kutularla vurgulandığına dikkat edin.

Temsilciyi tekrar test edip Liveaboard'un ne olduğunu tekrar sorun

Genel bir yeniden istem yerine bilgilendirici bir yanıt aldınız mı? Çok güzel! Bot'unuz, 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, belirli amaçlar oluşturmadan ayrıntılı soruları yanıtlama konusunda artık çok daha akıllı hale geliyor. Müşteriniz, hiçbir işlem yapılmaması durumunda bir temsilci yerine daha bilinçli bir yanıt verebileceğinden memnun olacaktır.

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

 Acenteye tüplü dalış kursu bulmanıza yardımcı olup olmayacağını sorun

Doğru, şu anda acenteyi tüplü dalış kurslarına yardımcı olacak şekilde tasarlamadık. Müşteri temsilcisi bunu nereden biliyor? Temsilcinin yardımcı olabileceği ve yapamayacağı işlemleri metin isteminde açıkça belirttik. "Şu anda müşterilere karada dalış ve kurslar konusunda yardımcı olamazsınız. Yerel dalış dükkanlarını ve dalış merkezlerini öneremezsiniz"

Şimdi mutlu senaryoyu tekrar test edin ve konuşmayı zenginleştirin. Şimdi deneyimin nasıl değiştiğine bakalım.

Mutlu senaryoyu tekrar test edin ve diyalogda yaratıcı olun

Mutlu senaryoyu tekrar test edin ve diyalogda yaratıcı olun

Dialogflow bir niyetle eşleştiğinde veya akış tasarımına göre parametre toplamaya çalıştığında tasarım zamanında tanımlanan karşılamaları gösterir. Kullanıcı seyahat ayrıntılarının özetini istediğinde veya telefon numarasını sağlamayı teklif ettiğinde üretken yedek özelliği devreye girer.

Güzel! Mutlu senaryoyu tekrar test ettiniz. Temsilciyle canlı müşteri temsilcisiyle yaşayacağınız deneyime olabildiğince yakın ve keyifli bir sohbet deneyimi yaşadığınızı umuyorum.

Maalesef görüşmelerde işler ters gidebilir. Farklı bir test yapalım. Bu kez davetli sayısı sorulduğunda 15'ten büyük bir sayı söylenecek.

15'ten fazla konuk sayısı girin.

15'ten fazla konuk sayısı girin.

Burada birkaç noktaya değinmek istiyorum:

  1. 20 neden geçerli bir sayı değil? Amaç açıklamasının bir parçası olarak izin verilen davetli sayısı için bir sınır belirlediğimizden: "Temsilci; kalkış süresi, varış noktası, konuk sayısı gibi bilgileri toplar***(en az 4 maks. 15 kişi)*** *, iletişim bilgileri*" , LLM'nin döndürdüğü üretken yanıt: "Maalesef en fazla 15 konuk kapasiteli grup rezervasyonlarında yardımcı olabiliyoruz." konuk sayısı için belirlediğimiz kısıtlamalara tamamen uygun. Bunu daha da zorunlu kılmak için konuk sayısı, yalnızca 4 - 15 aralığında yer alan sayılarla eşleşen özel bir RegExp varlığıdır.
  2. Sonunda kullanıcının 15 dalgıç için teklif almak istediği için görüşme devam ediyor. Doğal konuşmalarda bu durum sık yaşandığından fikrimizi çok sık değiştiririz. Temsilcinin iş birliği içindeki yaklaşımına ve kullanıcıyı başarıyla başarılı yola doğru yönlendirdiğine dikkat edin.

Sohbet tasarımı, diyaloğun bir yarısını kodlamayı içerir. Bunun için diyaloğun, herkesin girip diğer yarısını harekete geçirebileceği kadar sağlam olmasını umarız. Geliştiricilerin uzun kuyruklara göre tasarım yaparken, rotalarınızı, işleyicilerinizi ve parametrelerinizi tanımlamak için diyalogunuzdaki her adımda kullanıcının söyleyebileceklerine odaklanması gerekir. Bu nedenle Dialogflow CX'e üretken yedek özelliği ekledik. Bu özellik sayesinde geliştiriciler, kullanıcılara sağlam konuşma deneyimi sunmak için uygulama ayrıntılarına değil, sohbet tasarımı ilkelerine odaklanabiliyor.

Bir test daha yapalım. Bu kez, Maldivler gibi mevcut varış noktaları listesinde olmayan bir yerle bot'u tekrar zorlayın. Ardından, perde arkasında neler olduğuna hızlıca göz atalım.

Maldivler gibi mevcut destinasyonlar listesinde olmayan bir yerle bot'a tekrar meydan okuyun

destination parametresi için no-match etkinliğinde üretken yedeği de etkinleştirdiğimizden, oluşturulan yanıtı üretmek için büyük dil modeline bir istek gönderilir. Normal önceden belirlenmiş yanıtlar (Aracı'nın mesajının altındadır) yoksayılır.

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

Dialogflow'da yapılandırdığımız yer tutucuların kalın olarak vurgulandığı özel metin istemi şu şekildedir:

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 kutusuna, büyük dil modelinin aldığı girişi ve kullanıcıya söylenecek, üretilen 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 teste benzer şekilde, kullanıcıya geri gönderilen yanıt model tarafından oluşturulur ve intent açıklamasının parçası olarak sağladığımız bilgilere dayanır: "Hedef, Pasifik'te şunlardan biri olmalıdır: Kosta Rika, Meksika, Galapagos Adaları"

Yasaklanan ifadeler listesini değiştirin

Üretken yedek özelliği birden fazla şekilde yapılandırılabilir:

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

Şimdiye kadar ilk iki yolu inceledik. Üçüncüsünü inceleyelim.

  1. Aracı Ayarları'nda ML sekmesine ve ardından Üretken Yapay Zeka alt sekmesine gidin.
  2. Yasaklanmış ifadeler bölümünde listeye aşağıdaki cümleleri 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ünya genelinde güzel bir dalış noktası sağlamak yerine yasaklanan ifadelerden birini girin.

Yasaklanan ifadelerden birini test edin

İstem ve oluşturulan yanıt, yasaklanan ifadeler listesine göre kontrol edilir. Yasaklı ifadeler, üretken yapay zekada yasaklanmış ifadelerdir. Giriş, yasaklanan ifadeleri veya güvenli olmadığı kabul edilen ifadeleri içeriyorsa oluşturma işlemi başarısız olur ve bunun yerine normal belirtilen yanıt (Aracı aynı karşılamada mesajının altında) verilir.

Harika. Üretken tepkilerin gerçekten fark yaratabileceği konuşmalardan oluşan bir dizi duruma değindik. Lütfen testlere devam edin.

10. Tebrikler

Codelab'i tamamladığınız için tebrikler. Rahatlama zamanı

Cbo'yla Rahatlama

Sanal aracıyı başarıyla oluşturdunuz ve akışlarda ve parametre doldurma sırasında kullanılan no-match etkinlik işleyicilerde üretken yedeği etkinleştirdiniz.

İyi akış ve amaç açıklamalarıyla birlikte kullanılabilen üretken yedek özelliği, "Maalesef nasıl yardımcı olabileceğimden emin değilim" gibi genel istemler yerine temsilcinin özel ve iş birliğine dayalı yanıtlar verebilir. veya "Maalesef geçersiz bir seçenek girdiniz". Büyük dil modellerinin oluşturduğu hata istemleri, kullanıcıları nazikçe başarılı yollara yönlendirebilir veya neyin mümkün olup neyin mümkün olmadığı konusundaki beklentilerini sıfırlayabilir.

Sohbetle ilgili diğer durumları test edebilir, Dialogflow CX ve ü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şlemini yapabilirsiniz:

  • Dialogflow CX konsoluna gidin ve oluşturduğunuz tüm aracıları silin.
  • Google Cloud konsolunda API'ler ve Hizmetler sayfasına gidin ve 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.