1. Genel Bakış
Son Güncelleme: 2023-10-10
Ne oluşturacaksınız?
Bu codelab'de, kan bağışında bulunmak isteyen kişilere yardımcı olmak ve gerekli uygunluk koşullarını karşılamalarını sağlamak için sanal bir aracı oluşturmak, dağıtmak ve yapılandırmak üzere Vertex AI Conversation ile Dialogflow CX'i kullanacaksınız. Aracı, Dialogflow CX yerine getirme sırasında gerçek kamu verilerini ve Google'ın üretken büyük dil modellerini (LLM'ler) kullanır.
Kullanacağınız özellikler
Codelab'i tamamlamak için üç farklı özelliği yapılandırıp kullanacaksınız:
Veri deposu aracıları
Vertex AI Sohbet özelliği, veri deposu aracısı adı verilen özel bir Dialogflow aracısı oluşturur.
Bu özellik sayesinde bir web sitesi URL'si, yapılandırılmış veriler veya yapılandırılmamış veriler (veri depoları) sağlarsınız. Ardından Google, içeriğinizi ayrıştırır ve veri depoları ile büyük dil modelleri tarafından desteklenen bir sanal ajan oluşturur. Müşterileriniz ve son kullanıcılarınız daha sonra temsilciyle görüşebilir ve içerikle ilgili sorular sorabilir. Bu tür bir aracı hakkında bilgi edinmek için Vertex AI Conversation'a giriş bölümüne bakın.
Jeneratörler
Oluşturucu özelliği, geliştiricilerin çalışma zamanında aracı yanıtları oluşturmak için Google'ın en yeni üretken büyük dil modellerini (LLM'ler) ve özel istemlerini kullanmasına olanak tanıyan bir Dialogflow CX özelliğidir. Üretici, eğitildiği büyük metin veri kümesindeki genel bilgileri veya görüşmedeki bağlamı içeren genel yanıtları işleyebilir.
Üretken yedek
Üretken yedekleme özelliği, son kullanıcının girişi bir amaca veya form doldurma parametresine uymadığında sanal temsilci yanıtları oluşturmak için Google'ın en yeni üretken büyük dil modellerini (LLM'ler) kullanır. Bu özellik, LLM'ye nasıl yanıt vermesi gerektiğini bildiren bir metin istemiyle yapılandırılabilir. Önceden tanımlanmış bir metin istemi kullanabilir veya kendi istemlerinizi ekleyebilirsiniz. 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. Üretken yedek hakkında daha fazla bilgi edinmek istiyorsanız bu codelab'i deneyin.
Neler öğreneceksiniz?
- Yapılandırılmamış verilerden veri deposu aracısı oluşturma
- Son kullanıcıların, veri deposuna eklenen içerik hakkında sanal bir temsilciyle görüşme yapmasına izin vermek için bilgi işleyicileri kullanma
- Dahili üretici istemi yer tutucularını kullanarak üretici metin istemini yapılandırma ve bağlamsal hale getirme
- Kelimeleri nasıl üretici istemi yer tutucuları olarak işaretleyebilir ve daha sonra, yürütme sırasında değerlerini kullanmak için bunları karşılama sırasında oturum parametreleriyle nasıl ilişkilendirebilirsiniz?
- Büyük bir metin veri kümesinden bilgi ve mevcut görüşmedeki bağlam içeren yanıtları işlemek için nasıl jeneratör yapılandırılır?
- Oluşturucuları kullanarak resmi e-posta oluşturma
- Ajanınızı test etme ve oluşturulan yanıtları tetikleyen müşteri sorularını simüle etme
İhtiyacınız olanlar
- Google Cloud projesi
- Chrome gibi bir tarayıcı
2. API'leri etkinleştir
Vertex AI Conversation'da veri deposu temsilcisi oluşturabilmek için Dialogflow'un yanı sıra Vertex AI Arama ve Sohbet API'lerini de etkinleştirmeniz gerekir.
Dialogflow API'yi etkinleştirmek için aşağıdaki adımları uygulayın:
- Tarayıcınızda Dialogflow API Hizmet Ayrıntıları sayfasına gidin.
- Google Cloud projenizde Dialogflow API'yi etkinleştirmek için Etkinleştir düğmesini tıklayın.
Vertex AI Arama ve Sohbet API'sini etkinleştirmek için aşağıdaki adımları uygulayın:
- Google Cloud Console'da Vertex AI Arama ve Sohbet Konsolu'na gidin.
- Hizmet Şartları'nı okuyup kabul edin ve Devam et ve API'yi etkinleştir'i tıklayın.
3. Yeni bir sohbet uygulaması ve uygulamanız için bir veri deposu oluşturma
Şimdi, sanal ajanınız için yeni bir sohbet uygulaması oluşturacak ve bunu bir veri kaynağıyla yapılandıracaksınız. Oluşturacağınız aracının amacı, kan bağışı uygunluğu hakkında soruları olan müşterilere yardımcı olmaktır. Doğruluk kaynağı olarak Avustralya Kızılhaç'ın Lifeblood hizmetini kullanacak ve kan bağışı uygunluğu web sitesindeki yapılandırılmamış verilere dayalı bir veri deposu oluşturacaksınız.
- Vertex AI Conversation'da yeni bir sohbet uygulaması oluşturmak için şunlardan birini yapabilirsiniz:
- Vertex AI Conversation Console'a gidin ve konsolun üst kısmına yakın bir yerde +New app'i (Yeni uygulama) tıklayın.
- Dialogflow CX konsoluna gidin, +Yeni temsilci oluştur'u tıklayın, Otomatik oluştur seçeneğini belirleyin. Ardından, Vertex AI Conversation konsolunda bir sonraki adıma yönlendirilirsiniz.
- Vertex AI Conversation konsolunda, oluşturmak istediğiniz uygulama türü olarak Chat'i (Sohbet) seçin.
Save a Lifeiçin bir şirket adı girin. Bu parametre, temsilcinizin temsil ettiği şirketi ve temsilcinizin kapsamını tanımlamak için kullanılır.Blood Donation AgentTemsilci adı belirtin.- Devam'ı tıklayın.
- Yeni veri deposu oluştur'u tıklayın.
- Veri deponuzun veri kaynağı olarak Cloud Storage'ı seçin.
- Bu codelab için örnek veriler içeren aşağıdaki Google Cloud Storage klasörünü belirtin ve
gs://önekine gerek olmadığını unutmayın:cloud-samples-data/dialogflow-cx/arc-lifeblood - İçe aktardığınız veri türü olarak Yapılandırılmamış belgeler'i seçin.
- Devam'ı tıklayın.
Australian Red Cross Lifeblood UnstructuredVeri deposu adı belirtin.- Veri deposunu oluşturmak için Oluştur'u tıklayın.
- Veri depoları listesinde, yeni oluşturulan
Australian Red Cross Lifeblood Unstructuredöğesini seçin. - Sohbet uygulamanızı oluşturmak için Oluştur'u tıklayın.
Tebrikler! Bilgi destekli sohbet uygulamanızı oluşturmayı tamamladınız. Uygulamanız, potansiyel bağışçılara yardımcı olmaya hazır. Şimdi kutlama zamanı!
Ancak, aracının kullanıcılarınız tarafından erişilebilir olması için daha fazla çalışma yapılması gerekiyor. Bir sonraki bölümde, uygunluk koşullarıyla ilgili olarak aracı ile son kullanıcılar arasında görüşme yapılmasını sağlamak için bilgi işleyici kullanacaksınız.
4. Aracıyı, kan bağışı uygunluğuyla ilgili SSS'leri yanıtlayacak şekilde yapılandırma
Tarih mağazası istemini sağlama
Belge toplama işlemi arka planda çalışırken veri deposu istemini düzenleyerek temsilciye marka verelim.
- Vertex AI Conversation konsolunda, sohbet uygulamanızın adını tıklayın. Bu işlem, daha fazla test ve özelleştirme için sizi Dialogflow CX konsoluna yönlendirir.
- Dialogflow CX konsolunda ve temsilcinizden Temsilci ayarları'nı (sayfanın sağ üst köşesi) tıklayın, ardından ML sekmesine gidin ve son olarak Üretken yapay zeka sekmesini açın.

- Aşağıdaki formu doldurarak şu veri deposu istemini oluşturun: Adınız
DonateveSave a life, a fictitious organization'de çalışan, yardımsever ve kibar birchatbot'sınız. Görevinizhumans with eligibility information'ya yardımcı olmak.

Varsayılan başlangıç akışının eşleşme yok etkinliği için üretken yedeklemeyi etkinleştirme
- Oluştur sekmesine geçin ve Başlangıç Sayfası'nı açın.
- sys.no-match-default etkinlik işleyicisini tıklayın. Kutu zaten işaretli değilse üretken yedek özelliği etkinleştirin.

Temsilcinin veri deposunu kontrol edin
Başlangıç Sayfası'nda Veri deposu ayarlarını incelemek için Veri depolarını düzenle'yi tıklayın.

Daha önce oluşturduğunuz veri deposu, Dialogflow tarafından sizin için önceden seçilmiştir.

Karşılama bölümünde Aracı Yanıtları'na gidin. Karşılama, son kullanıcının aldığı aracı yanıtıdır. Dialogflow, Agent says (Aracı diyor) alanını $request.knowledge.answers[0] parametresiyle önceden doldurur. Bu parametre, çalışma zamanında kullanıcının sorusuna verilen en iyi cevabı içerir.

5. Temsilciyi test etme
Belgeler kullanıma hazır olduğunda yanıtların ne kadar iyi olduğunu kontrol edin.
Simülatörü tekrar açmak için Test Aracısı'nı tıklayın.

Web sitesinin SSS sayfasında bulmayı beklediğiniz soruları sorun:
What age do I need to be to donate?Can pregnant women donate?I've just come back from a trip to Africa. Can I donate?How can I schedule an appointment?

Yanıtların Avustralya Kızılhaçı Lifeblood sitesinden alındığını fark edin. Bu sayfada belirtildiği gibi, kan bağışı için minimum ve maksimum yaş sınırı vardır. İlk kez bağış yapacaklar için minimum yaş 18, maksimum yaş ise 75'tir. Veri deposundan bilgi çektiğimize dair daha fazla kanıt, aracı yanıtında görünen küçük yıldız simgesi ve orijinal JSON yanıtı ile verilir.

Son olarak, temsilciye kan bağışıyla tamamen alakasız bir soru sorarak onu zorlamayı deneyelim.
Kullanıcı: "Melbourne'da hava nasıl?"
Temsilci: "Maalesef bu konuda yardımcı olamıyorum. Uygunluk bilgileri konusunda size nasıl yardımcı olabilirim?"
Bu yanıtta, yapay zeka tarafından üretilmiş içerik yer alıyor ve Dialogflow'un daha önce sağlanan bilgi bağlayıcı ayarından başlayarak oluşturduğu metin isteminden türetiliyor: "Adınız Donate ve Save a Life'ta faydalı ve kibar bir chatbot'sunuz. Görevin, kullanıcılara uygunluk bilgileri konusunda yardımcı olmak". Bu metin isteminde şirket adı, temsilci adı ve en önemlisi de kapsamı yer alır. Bu bilgiler, Dialogflow tarafından temsilci yanıtı oluşturmak için kullanılır.
Tebrikler! Şu ana kadar veri deposunu, kullanıcılara kan bağışı ile ilgili sık sorulan sorular konusunda yardımcı olmak için kullanıyorsunuz. Bu kod laboratuvarının bir sonraki bölümünde, bilinçli kararlar vermek için bir üretici metin istemini aynı içeriğe nasıl bağlayacağımızı inceleyeceğiz.
6. Uygunluk testi için temsilciyi ayarlama
Bir sonraki görevimiz, kullanıcının kan bağışı yapmaya uygun olup olmadığını belirleyecek bir aracı tasarlamaktır. Bağışçıların karşılaması gereken katı şartlar (ör. yaş, kilo, mevcut durumlar, son seyahatler) vardır. Bu codelab kapsamında yalnızca yaş ve kilo dikkate alınacaktır. Üretici, Google'ın büyük dil modellerini (LLM'ler) kullanarak sohbetin bağlamına ve bilgi tabanına göre dinamik olarak bilinçli bir karar verir.
Yeni rotaları ve parametreleri yapılandırma
- Başlangıç Sayfası'nı açın ve Veri depolarını düzenle'yi tıklayın.
- Mevcut temsilcinin
$request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?yanıtını değiştirin.

- Kaydet'i tıklayın
- Şimdi de aracıyı "evet" ve "hayır" yanıtlarını işleyecek şekilde tasarlamamız gerekiyor. Başlamak için confirmation.yes ve confirmation.no amaçlarını oluşturun. Amaç yeniden kullanımıyla ilgili kurallara uyun.
- Ardından Başlangıç Sayfası'nda, confirmation.yes amacına yönelik ve Uygunluk Testi adlı yeni bir sayfaya geçiş yapan bir rota oluşturun.


- Daha önce de belirtildiği gibi, bağış yapmaya uygun olup olmadığını belirlemek için yalnızca kullanıcının yaşını ve ağırlığını dikkate alarak testi basitleştireceğiz. Uygunluk Testi sayfasını açın ve yeni bir form parametresi age-weight ekleyin, öğe türü olarak
@sys.any'ı seçin. İlk istem yerine getirme işlemi olarak"What is your age and weight?"yanıtını ver. Hem yaşı hem de ağırlığı tek seferde toplamak istiyoruz. Tüm değişiklikleri kaydedin.

Uygunluk oluşturucuyu oluşturma ve yapılandırma
Üretici özelliği, geliştiricilerin Dialogflow CX karşılama sırasında Google'ın en yeni üretken büyük dil modellerini (LLM'ler) kullanmasına olanak tanıyan bir Dialogflow CX özelliğidir. Çalışma zamanında aracı yanıtları oluşturmak için kullanılan oluşturucular. Üretici, eğitildiği büyük metin veri kümesindeki genel bilgileri veya görüşmedeki bağlamı içeren genel yanıtları işleyebilir.
Kullanıcının bağış yapıp yapamayacağını belirlemek için kullanıcının sağladığı bilgileri (ör. yaş ve ağırlık) uygunluk koşullarıyla karşılaştıracak yeni bir oluşturucu oluşturacağız.
- Dialogflow CX konsolunda Yönet sekmesine gidin, Üreticiler'i seçin ve Yeni oluştur'u tıklayın.

- Ardından, açıklayıcı bir görünen ad girin ve metin istemini yazın. Varsayılan model kalite kontrolü ayarlarını değiştirmeyin. Ardından, oluşturucuyu oluşturmak için Kaydet'i tıklayın.
- Görünen ad:
Blood Donation Eligibility - Metin istemi:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)
- Görünen ad:
Metin istemi, çalışma zamanında yerine getirme sırasında üretken modele gönderilir. Modelin tatmin edici bir yanıt oluşturması için net bir soru veya istek olmalıdır. Metin isteminizde yerleşik özel istem yer tutucularını kullanabilirsiniz:
$conversationAracının ve kullanıcının son kullanıcı ifadesi hariç olmak üzere aralarındaki görüşme.$last-user-utteranceSon kullanıcı ifadesi.
Yapılandırdığınız metin istemi, kullanıcının yaşı ve ağırlığı tek bir etkileşimli dönüşte (``$last-user-utterance``) sağlamasını bekliyor.
Karşılama sırasında oluşturucuyu kullanın ve gerekli tüm parametreleri yapılandırın.
- Uygunluk Testi sayfasında, tüm parametreler doldurulduğunda gerçekleşecek yeni bir rota ekleyin. Koşul şartını girin
$page.params.status = "FINAL"ve Kaydet'i tıklayın.

- İstek karşılama bölmesinin Oluşturucular bölümüne gidip bu bölümü genişletin. Ardından Oluşturucu ekle'yi tıklayın ve Kan Bağışı Uygunluğu oluşturucusunu seçin. Üreticiyi seçtikten sonra, yürütme işleminden sonra üreticinin sonucunu içerecek çıkış parametresini tanımlamanız gerekir.

- Temsilci yanıtındaki çıkış parametresini kullanın ve rotayı kaydedin. Artık her şeyi test etmeye hazırsınız.

7. Temsilcinizi yeniden test etme
Simülatörü tekrar açmak için Test Agent'ı tıklayın.

Simülatör'de temsilciyle yeni bir görüşme başlatın. Önce yaş şartları hakkında bilgi edinin, ardından uygunluk testine geçin. Önce "uygun" yolu test edin. Bu nedenle, 18-75 arasında bir yaş ve 50 kg'ın üzerinde bir ağırlık girin.

Ardından, koşullardan biri veya her ikisi de karşılanmadığında uygunluk kontrolünün başarısız olup olmadığını kontrol edin.

Harika, jeneratör beklendiği gibi çalışıyor. Yoksa öyle değil mi? Kullanıcı ağırlığı değil de yaşı (veya tam tersi) girerse ne olur?

8. Üretme istemi ayarlama
Yaş ve kilo bilgileri birlikte sağlanmadığı sürece, yaş ve kilo bilgilerinin tek seferde toplanması işe yaramıyor. Bunun yerine, her iki değeri de öğe parametreleri olarak toplayan bir form oluşturmalıyız. İstemde tüm uygunluk koşulları (ör. yaş ve ağırlık) bağlamında bilgi vermek için kelimeden önce $ işareti ekleyerek yer tutucular kullanabiliriz. Bu oluşturma istemi yer tutucularını daha sonra karşılama işlemindeki oturum parametreleriyle ilişkilendiririz ve bunlar, yürütme sırasında oturum parametresi değerleriyle değiştirilir.
- Uygunluk Testi sayfasını açın ve iki ayrı form parametresi ekleyin: biri ağırlık, diğeri yaş için. Varlık türü olarak
@sys.number-integersimgesini seçin ve gerekli parametreleri işaretleyin.How old are you?veWhat is your correct weight?gibi ilk istem yanıtlarını sağlayın. Tüm değişiklikleri kaydedin.

- İki yeni özel yer tutucu ekleyeceğimiz için oluşturucunun metin istemini değiştirmeden önce oluşturucuyu rota tamamlama işleminden kaldırmamız gerekir. Kaydet'i tıklayın.

- Yönet sekmesine gidin, Oluşturucular'ı seçin ve Kan Bağışı Uygunluğu oluşturucusunun metin istemini şu bilgilerle güncelleyin:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.. Kaydet'i tıklayın.
Metin istemini yalnızca yaş ve kilo formu parametrelerine göre bağlamsal hale getirmekle kalmadığımızı, aynı zamanda uygunluk testinin resmi sonucunu içeren resmi bir e-posta oluşturabilmek için son cümleyi de değiştirdiğimizi unutmayın.

- Uygunluk Testi sayfasında rotayı seçin ve Fulfillment bölmesindeki Generators (Üreticiler) bölümünü genişletin. Ardından, Jeneratör ekle'yi tıklayın ve Kan Bağışı Uygunluğu jeneratörünü seçin. Üreticiyi seçtikten sonra yeni istem yer tutucularını ilgili oturum parametreleriyle ilişkilendirmeniz gerekir. Ayrıca, çıkış parametresini yeniden ayarlamanız gerekir. Kaydet'i tıklayın.

- Temsilciyi tekrar test edin. Uygunluk kontrolünde artık hem yaş hem de ağırlık dikkate alınıyor. Ayrıca, ifadeler sohbet tonundan daha kibar bir yanıta dönüştürüldü. Bu yanıt, olası bir insan müdahalesi olmadan gönderilmeye hazır.


9. Tebrikler
Bu codelab'i tamamladığınız için tebrik ederiz.

Bugün, uygunluk testleri bağlamında üreticileri inceledik. Üreticilerin, aracı yanıtları oluşturmak için LLM'leri kullandığını ve bilgi tabanıyla desteklendiklerinde bilinçli kararlar da verebildiklerini gördünüz. Üreticilerden ve veri depolarından yararlanarak uygulanabilecek daha birçok kullanım alanı olduğundan eminiz ve bunları öğrenmek için sabırsızlanıyoruz.
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:
- Gereksiz Google Cloud ücretlerinden kaçınmak için projenize ihtiyacınız yoksa Google Cloud Console'u kullanarak projenizi silin.
- Mevcut bir Google Cloud projesi kullandıysanız hesabınızın ücretlendirilmesini önlemek için oluşturduğunuz kaynakları silin. Daha fazla bilgi için Uygulama silme adımlarına bakın.
- Vertex AI Conversation ve Dialogflow için API'leri devre dışı bırakmak istiyorsanız Discovery Engine API Hizmet Ayrıntıları sayfasına gidin, API'yi devre dışı bırak'ı tıklayıp onaylayın, Dialogflow API Hizmet Ayrıntıları sayfasına gidin, API'yi devre dışı bırak'ı tıklayıp onaylayın.
Daha Fazla Bilgi
Etkileşimli yapay zeka ve üretken yapay zeka hakkında bilgi edinmeye devam etmek için aşağıdaki kılavuzlardan ve kaynaklardan yararlanabilirsiniz:
- Dialogflow CX ile ilgili belgeler
- Vertex AI Conversation'a giriş
- Veri deposu aracısı oluşturma ve kullanma
- Vertex AI Conversation belgeleri
- Google Cloud'da üretken yapay zeka
Lisans
Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.