1. Genel Bakış
Last Updated: 2023-08-07
Ne oluşturacaksınız?
Bu codelab'de, grup rezervasyonları ve özel kiralama konusunda dalış gezisi yapanlara yardımcı olmak için Dialogflow CX'te basit bir sanal ajan oluşturacak, dağıtacak ve yapılandıracaksınız. Sanal ajan, sanal ajan yanıtları oluşturmak için üretken yapay zeka ve Google'ın en yeni üretken büyük dil modellerini (LLM) 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şleyicilerini yapılandırma
- Akışlarda ve parametre doldurma sırasında kullanılan eşleşme olmayan etkinlik işleyicilerde üretken yedeği etkinleştirme
- Hem temel hem de aracıya özel sohbet durumlarını işlemek 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 yedek özelliği kullanmaya başlamadan önce Dialogflow API'yi etkinleştirmeniz gerekir.
Cloud Console'u kullanarak Dialogflow API'yi etkinleştirme
- Tarayıcınızda Google Cloud Console'u açın.
- Google Cloud Console'da, etkinleştirilebilecek API'lere ve hizmetlere göz atmak için API Kitaplığı'na gidin.
- API Kitaplığı sayfasının üst kısmındaki arama çubuğunu kullanarak
Dialogflow APIifadesini arayın ve sonuçtaki hizmeti tıklayın. - 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üklemeniz ve ardından geliştirmeniz gereken bir ajan sağlayacağız.
Kaynak kodu indirmek için:
- Yeni bir tarayıcı sekmesi açın, aracı deposuna gidin ve komut satırından depoyu klonlayın.
- İ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.jsonve 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.
- Tarayıcınızda Dialogflow CX konsoluna gidin.
- Kullanmak istediğiniz Google Cloud projesini seçin veya kullanılacak yeni bir proje oluşturun.
- Dialogflow CX konsolunda bir ajan listesi 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
- GitHub deposundan indirilen temsilciyi geri yüklemek için yeni bir temsilci oluşturmanız gerekir. Dialogflow CX konsolunda, sayfanın sağ üst köşesindeki Yeni temsilci oluştur'u tıklayın.

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

- 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 - Englishdilini varsayılan dil olarak seçin
- Dialogflow, aracı sizin için otomatik olarak açar. Daha işimiz bitmedi!
Divebooker aracısını geri yükleme
- Aracılar listesi sayfasına geri dönün ve yeni oluşturduğunuz aracıyı bulun.
seçeneğini ve ardından Geri yükle düğmesini tıklayın. - Yükle seçeneğini belirleyin ve daha önce GitHub deposundan indirdiğiniz ZIP dosyasını bırakın veya seçin.
- Sağladığımız aracı 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. Bir sonraki bölümde, bu özelliği 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ç
- Simülatörü açmak için Dialogflow konsolunda ve temsilcinizden Test Agent'ı (Temsilciyi Test Et) tıklayın.

- Temsilcinize
Hellogibi bir selamlama yazın vewhat 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österilir. Simülatör'de orijinal yanıtı inceleyerek sys.no-match-default yerleşik etkinliğinin çağrıldığını kontrol edebilirsiniz.

JSON yanıtının neredeyse sonuna gidin. Dialogflow'un eşleşen bir amaç ararken bunun NO_MATCH olduğunu tespit ettiğini ve eşleşme yok etkinliği oluşturduğunu unutmayı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.
- 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 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.

Şimdi mutlu yola geçelim.
İdeal yol
Bu ikinci durumda, 12 kişilik bir grupla gelecek yıl temmuz ayında Galapagos Adaları'na dalış gezisi rezervasyonu yaptırmak isteyen bir dalgıç olduğunuzu varsayın.
- Temsilciyle yeni bir görüşme başlatmak için Simülasyon Aracı panelinde Sıfırla simgesini tıklayın.


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

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

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

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 ve destination (hedef) da 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.
- 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.

- "15 dalgıç için Kosta Rika'ya gezi düzenlemem gerekiyor" eğitim ifadesini ele alalım. "Kosta Rika" destination, "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ğını inceleyeceğiz.
Geçersiz giriş
- Temsilciyle yeni bir görüşme başlatmak için Simülasyon Aracı panelinde Sıfırla simgesini tıklayın.
- Bu kez, nereye gitmek istediğinizi ve ne zaman gitmek istediğinizi söylemeden grup rezervasyonu yapmak istediğinizi belirtin. Hedef sorulduğunda Kosta Rika, Galapagos veya Meksika olmayan rastgele bir değerle yanıt verin.

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

- Öğ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.
- Akış şemasında, form parametrelerini içeren Daha Fazla Bilgi Topla sayfasını genişletin. Hedef parametresini tıklayın.
- 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 söyledikleri bölümünde iki alternatif yeniden istem mesajı listelenir.

Tebrikler! 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 yanlış 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 yedekleme özelliği nedir?
Üretken yedek özellik, sanal ajan 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ı ele alacak ş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 yeterli çö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ı inceleyeceğiz.
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 olmayan bir etkinlik için üretken yedek etkinleştirildiğinde, bu etkinlik her tetiklendiğinde Dialogflow, kullanıcıya geri söylenecek bir yanıt oluşturmaya çalışır. Yanıt üretimi başarısız olursa bunun yerine normalde öngörülen 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.
- Akışın Başlangıç Sayfası'nı genişletin.
- Event handlers (Etkinlik işleyicileri) bölümünde sys.no-match-default'u tıklayın.
- Ajan yanıtları bölümünde Üretken yedeklemeyi etkinleştir'i işaretleyin ve Kaydet'i tıklayın.


Belirli eşleşme olmayan etkinliklerde üretken yedeği etkinleştirme
Şimdi, temsilci yolcu sayısını sorduğunda geçersiz girişleri işlemek için üretken yedeklemeyi etkinleştirmek istiyoruz:
- Form parametrelerini içeren Daha Fazla Bilgi Topla sayfasını açın. number-of-guests parametresini tıklayın.
- Hedef Eşleşme yok etkinlik işleyicisine gidin (Yeniden istem etkinlik işleyicileri bölümüne gidin ve Varsayılan eşleşme yok etkinlik işleyicisini tıklayın).

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

- Son olarak Kaydet'i tıklayın.
- Şimdi de destination ve email-address için üretken yedeklemeyi etkinleştirmek üzere aynı adımları tekrarlayın.
Tebrikler! 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 söyleyen bir metin istemiyle üretken yedek özelliğinin nasıl yapılandırılacağını inceleyeceğiz.
6. Üretken yedeklemeyi yapılandırma
Üretken yedek özellik, oluşturulan yanıtı üretmek için büyük bir dil modeline istek gönderir. İstek, doğal dil ve 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:
- Yanıt üretimi için kullanılacak belirli bir (önceden tanımlanmış) istem seçin.
- Özel bir istem tanımlayın.
Önceden tanımlanmış bir istem seçme
- Dialogflow CX konsolunda Agent Settings'i (Temsilci Ayarları) tıklayın.

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

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.
- Örnek şablonunu seçin ve açılır listenin sağ tarafındaki Düzenle düğmesini tıklayarak inceleyin.
Sanal aracı, ö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 tekrar edin.
- Kullanıcı istediğinde hattı bekletin.
- Görüşmeyi özetleyin.
Divebooker aracısı için belirli bir metin istemi tanımlamayı deneyelim.
7. Kendi isteminizi tanımlama
- 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:
- 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.

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

Kendi metin isteminizi yazarken net, kısa ve yönlendirici olun. LLM'ye gönderilen istemin oluşturulma şekli, LLM'nin 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 tekrarlayın.
Etkili istemler oluşturmak için aşağıdaki en iyi uygulamaları izleyin:
- LLM'nin yapmasını istediğiniz görevin net ve kısa bir açıklamasını girin. Ne daha fazla ne de daha az. Tam ve kısa tutun.
- Ayrıca istem, net ve iyi tanımlanmış olmalı, belirsiz veya muğlak ifadelerden kaçınılmalıdır.
- 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.
- 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:
$conversationEn son kullanıcı ifadesi hariç, ajan ile kullanıcı arasındaki görüşme. Dönüş öneklerini (ör. Metin isteminde "İnsan", "Yapay Zeka" veya "Siz", "Ajan" gibi ifadeler$last-user-utteranceSon kullanıcı ifadesi.$flow-descriptionEtkin akışın akış açıklaması.$route-descriptionsEtkin amaçların amaç açıklamaları.
İlk metin istemini oluşturduktan sonraki adım, 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
- Liveaboards akışına açıklama eklemek için Akışlar bölümünde fareyle akışın üzerine gelerek akış ayarlarına erişin.

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

- Kaydet'i tıklayın
Niyet açıklamasını ekleyin
- Ş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.
- 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.
- 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şturması için büyük dil modeline iletilen kendi metin isteminizi de tanımlamışsınızdır.
Sonraki bölümde, aynı zor soruları nasıl yanıtlayabileceğini görmek için aracınızı yeniden test edeceksiniz.
9. Ajanınızı yeniden test etme
Sanal temsilcide üretken yedek yanıtı yapılandırıp etkinleştirdiğinize göre, benzer zor sorular sorarak yanıtları nasıl ele aldığını görebilirsiniz.
Simülatörü tekrar açmak için Test Aracısı'nı tıklayın.

Müşteri temsilcisine tekrar tekneyle konaklama ve tekneyle konaklayarak dalış hakkında soru sorun. Bundan sonra her iletişimde kullanıcı tanımlı mesajların ve oluşturulan yanıtların kırmızı kutularla vurgulandığını unutmayın.

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, ajanın işlem yapılamayan bir yanıt yerine daha bilinçli bir yanıt vermesini takdir edecektir.
Çekinmeyin ve temsilciye meydan okuyun. Henüz sertifikalı bir dalgıç olmadığınız için tüplü dalış kursu bulmanıza yardımcı olup olamayacağını sorun.

Evet, şu anda bu aracıyı 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ğı net bir şekilde 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 görüşmeyi zenginleştirin. Deneyimin nasıl değiştiğine göz atalım.


Dialogflow bir amaca eşleştiğinde veya akış tasarımına göre bir parametreyi toplamaya çalıştığında tasarım sırası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 yaşayacağınız deneyime mümkün olduğunca yakın, keyifli ve doğal bir sohbet gerçekleştirmişsinizdir.
Maalesef sohbetlerde sorunlar yaşanabilir. Şimdi farklı bir test yapalım. Bu kez konuk sayısını sorulduğunda 15'ten büyük bir sayı girin.


Bu noktada belirtilmesi gereken birkaç şey var:
- 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" şeklindeki üretken yanıt, konuk sayısıyla ilgili verdiğimiz kısıtlamalarla tamamen uyumlu. Bunu daha da zorunlu kılmak için number-of-guests, yalnızca 4-15 aralığındaki sayılarla eşleşen özel bir normal ifade öğesidir.
- Kullanıcı sonunda 15 dalgıç için teklif almak istediğinden görüşme devam ediyor. Bu durum, doğal sohbetlerde sıkça yaşanır. Fikirlerimiz sık sık değişir. Ajanı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ılara sağlam bir sohbet deneyimi sunmak için sohbet tasarımı ilkelerine odaklanıp uygulama ayrıntılarına daha az dikkat etmelerini 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.

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 (Agent says 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ış ifadeler listesini değiştirme
Üretken yedekleme özelliği çeşitli şekillerde yapılandırılabilir:
- Yanıt üretimi için kullanılacak belirli bir (önceden tanımlanmış) istem seçin.
- Özel bir istem tanımlayın.
- Yasaklanmış ifadeler listesini değiştirme
Şimdiye kadar ilk iki yöntemi inceledik. Üçüncü yöntemi inceleyelim.
- Aracı Ayarları'nda ML sekmesine, ardından Üretken Yapay Zeka alt sekmesine gidin.
- Yasaklanmış ifadeler bölümünde aşağıdaki cümleleri listeye ekleyin:
Dangerous countryHateful placeMedical assistance- Kaydet'i tıklayın.
- Sıfırla simgesini tıklayın ve son senaryoyu yeniden test edin. Dünyadaki güzel dalış yerlerinden birini girmek yerine yasaklanmış ifadelerden birini girin.

İstem ve oluşturulan yanıt, yasaklanmış ifadeler listesine göre kontrol edilir. Yasaklanmış ifadeler, üretken yapay zeka için yasaklanmış 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şılamada Temsilci diyor bölümünde) 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ı!

Sanal aracı başarıyla 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 özel ve işbirlikçi yanıtlar vermesini sağlayabilir. Büyük dil modelleri tarafından oluşturulan hata istemleri, kullanıcıları başarılı yollara nazikçe 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 aracıları silin.
- Google Cloud Console'da 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:
- Dialogflow CX ile ilgili dokümanlar
- Üretken yedek ile ilgili dokümanlar
- Google Cloud'da üretken yapay zeka
- PaLM'ye giriş
Lisans
Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.
