Bu eğitimde, Gemini ile Vertex AI tarafından desteklenen üretken yapay zeka ile Chat alanlarındaki görüşmelere dayalı soruları yanıtlayan bir Google Chat uygulaması oluşturma işlemi gösterilmektedir. Chat uygulaması, Google Workspace Events API'nin yanı sıra Pub/Sub'ı kullanarak Chat alanlarında yayınlanan soruları gerçek zamanlı olarak tanır ve yanıtlar. Bu işlem, Chat uygulaması bahsedilmese bile gerçekleştirilir.
Chat uygulaması, alanda gönderilen tüm mesajları veri kaynağı ve bilgi tabanı olarak kullanır. Bir kullanıcı soru sorduğunda Chat uygulaması, daha önce paylaşılan yanıtları kontrol edip birini paylaşır. Yanıt bulunamazsa yanıtlayamayacağını belirtir. Kullanıcılar, her yanıtta bir yardımcı işlem düğmesini tıklayarak alan yöneticisinden @bahsedebilir ve yanıt isteyebilir. Google Chat uygulaması, Gemini Yapay Zeka'yı kullanarak eklendiği alanlardaki sohbetler üzerinde sürekli eğitim aldıkça bilgi tabanını uyarlar ve geliştirir.
Chat uygulamasının, yeni çalışan oryantasyonu ve destek alanında işleyiş şekli:
-
1. şekil. Can, yapay zeka bilgi asistanı Chat uygulamasını bir Chat alanına ekler. -
Şekil 2. Dana, şirketin topluluk önünde konuşma eğitimi verip vermediğini soruyor. -
3. Şekil. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanının sohbet geçmişine göre Dana'nın sorusunu yanıtlaması için Vertex AI with Gemini'ı yönlendirir ve ardından yanıtı paylaşır.
Ön koşullar
Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
Aşağıdaki işlemleri yapmak için Google Cloud hizmetlerine erişim:
- Google Cloud projesi oluşturun.
- Bir Google Cloud faturalandırma hesabını Cloud projesine bağlayın. Erişiminiz olup olmadığını öğrenmek için Faturalandırmayı etkinleştirmek için gereken izinler başlıklı makaleyi inceleyin.
- Kimliği doğrulanmamış Google Cloud Function çağrıları kullanın. Google Cloud kuruluşunuzun alan adı ile kısıtlanmış paylaşım kullanıp kullanmadığını belirleyerek bunu doğrulayabilirsiniz.
Gerekirse Google Cloud yöneticinizden erişim veya izin isteyin.
Google Cloud KSA kullanılıyorsa gcloud KSA ile çalışacak şekilde yapılandırılmış bir Node.js geliştirme ortamı. Bkz. Node.js geliştirme ortamı ayarlama.
Hedefler
- Chat alanı görüşmelerinde paylaşılan bilgilere göre soruları yanıtlamak için üretken yapay zekayı kullanan bir Chat uygulaması oluşturun.
- Üretken yapay zeka ile:
- Çalışanların sorularını tespit edip yanıtlayın.
- Chat alanındaki devam eden görüşmelerden sürekli olarak bilgi edinir.
- Chat uygulamasına doğrudan mesaj gönderilmediğinde bile Chat alanındaki mesajları gerçek zamanlı olarak dinleyip yanıtlayabilirsiniz.
- Firestore veri tabanına yazarak ve Firestore veri tabanından okuyarak mesajları kalıcı hale getirin.
- Bir soruya yanıt bulunamadığında alan yöneticilerinden bahsederek Chat alanında ortak çalışmayı kolaylaştırın.
Mimari
Aşağıdaki şemada, Google Workspace ve Google Cloud kaynaklarının, yapay zeka bilgi asistanı Chat uygulamasında kullanılan mimarisi gösterilmektedir.
Yapay zeka bilgi asistanı Chat uygulaması şu şekilde çalışır:
Bir kullanıcı, Chat alanına yapay zeka bilgi asistanı Chat uygulamasını eklediğinde:
Chat uygulaması, Chat alanına ekleyen kullanıcıdan kimlik doğrulama ve yetkilendirme işlemlerini yapılandırmasını ister.
Chat uygulaması, Chat API'de
spaces.messages.list
yöntemini çağırarak alanın mesajlarını getirir ve ardından getirilen mesajları bir Firestore veritabanında depolar.Chat uygulaması, alandaki mesajlar gibi etkinlikleri dinlemeye başlamak için Google Workspace Events API'deki
subscriptions.create
yöntemini çağırır. Aboneliğin bildirim uç noktası, etkinliği Chat uygulamasına yönlendirmek için Eventarc'ı kullanan bir Pub/Sub konusudur.Chat uygulaması, alana bir giriş mesajı gönderir.
Chat alanındaki bir kullanıcı mesaj yayınlar:
Sohbet uygulaması, Pub/Sub konusundan mesajı gerçek zamanlı olarak alır.
Chat uygulaması, mesajı Firestore veritabanına ekler.
Kullanıcı daha sonra mesajı düzenler veya silerse sohbet uygulaması, güncellenen veya silinen etkinliği gerçek zamanlı olarak alır ve ardından Firestore veritabanındaki mesajı günceller ya da siler.
Chat uygulaması, mesajı Gemini ile Vertex AI'a gönderir:
İstem, Vertex AI with Gemini'a iletide soru olup olmadığını kontrol etme talimatı veriyor. Bu durumda Gemini, soruyu Firestore'da tutulan Chat alanı mesaj geçmişine göre yanıtlar ve Google Chat uygulaması mesajı Chat alanına gönderir. Eşleşmiyorsa yanıt vermeyin.
Gemini ile Vertex AI soruyu yanıtlarsa Chat uygulaması, uygulama kimlik doğrulamasını kullanarak Chat API'deki
spaces.messages.create
yöntemini çağırarak yanıtı yayınlar.Vertex AI with Gemini soruyu yanıtlayamazsa Chat uygulaması, Chat alanının geçmişinde bu sorunun yanıtını bulamadığını belirten bir mesaj yayınlar.
Mesajlar her zaman, kullanıcıların tıklayabileceği bir yardımcı işlem düğmesi içerir. Bu düğme, Chat uygulamasının bir alan yöneticisine @bahsetme işlemi yaparak yanıt vermesini ister.
Chat uygulaması, Google Workspace Events API'den Chat alanı aboneliğinin süresinin dolmak üzere olduğuna dair bir yaşam döngüsü bildirimi alır:
- Chat uygulaması, Google Workspace Events API'deki
subscriptions.patch
yöntemini çağırarak aboneliği yenileme isteği gönderir.
- Chat uygulaması, Google Workspace Events API'deki
Chat uygulaması bir Chat alanından kaldırıldığında:
Chat uygulaması, Google Workspace Events API'de
subscriptions.delete
yöntemini çağırarak aboneliği siler.Chat uygulaması, Chat alanının verilerini Firestore'dan siler.
Yapay zeka bilgi asistanı Chat uygulamasının kullandığı ürünleri inceleme
Yapay zeka bilgi asistanı Chat uygulaması aşağıdaki Google Workspace ve Google Cloud ürünlerini kullanır:
- Gemini ile Vertex AI API: Gemini tarafından desteklenen bir üretken yapay zeka platformu. Yapay zeka bilgi asistanı Chat uygulaması, çalışanların sorularını tanımak, anlamak ve yanıtlamak için Gemini ile Vertex AI API'yi kullanır.
-
Chat API:
Google Chat uygulamaları geliştirmek için kullanılan bir API. Bu uygulamalar, mesaj gibi Chat etkileşimi etkinliklerini alır ve bunlara yanıt verir. Yapay zeka
bilgi asistanı Chat uygulaması, Chat API'yi kullanarak:
- Chat tarafından gönderilen etkileşim etkinliklerini alıp yanıtlayabilirsiniz.
- Bir alanda gönderilen mesajları listeleme
- Alandaki kullanıcı sorularına yanıt gönderme
- Sohbet'te nasıl görüneceğini belirleyen ad ve avatar resmi gibi özellikleri yapılandırın.
- Google Workspace Events API: Bu API, Google Workspace uygulamalarındaki etkinliklere abone olmanıza ve değişiklik bildirimlerini yönetmenize olanak tanır. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanında yayınlanan mesajları dinlemek için Google Workspace Events API'yi kullanır. Bu sayede, kendisinden bahsedilmese bile soruları algılayıp yanıtlayabilir.
- Firestore: Sunucusuz bir belge veritabanı. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanında gönderilen mesajlarla ilgili verileri depolamak için Firestore'u kullanır.
- Pub/Sub: Pub/Sub, mesaj üreten hizmetleri bu mesajları işleyen hizmetlerden ayıran eşzamansız ve ölçeklenebilir bir mesajlaşma hizmetidir. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanlarından abonelik etkinlikleri almak için Pub/Sub'ı kullanır.
- Eventarc: Eventarc, temel altyapıyı uygulamanız, özelleştirmeniz veya bakımını yapmanız gerekmeden etkinliğe dayalı mimariler oluşturmanıza olanak tanır. Yapay zeka bilgi asistanı Chat uygulaması, Eventarc'ı kullanarak Pub/Sub'dan gelen etkinlikleri bir Chat alanına ve abonelik etkinliklerini alan ve işleyen Cloud İşlevi'ne yönlendirir.
-
Cloud Functions:
Sunucu veya çalışma zamanı ortamını yönetme gereği duymadan Chat etkileşimi ve abonelik etkinliklerine yanıt verebilen tek amaçlı, bağımsız işlevler oluşturmanıza olanak tanıyan hafif bir sunucusuz bilgi işlem hizmeti. Yapay zeka bilgi asistanı Chat uygulaması,
aşağıdaki adlara sahip iki Cloud Functions işlevini kullanır:
-
app
: Chat'in etkileşim etkinliklerini gönderdiği HTTP uç noktasını ve bu etkinlikleri işleyip yanıtlayan mantığı çalıştırmak için bir bilgi işlem platformu olarak barındırın. -
eventsApp
: Pub/Sub aboneliğinden gelen mesajlar gibi Chat alanı etkinliklerini alır ve işler.
- Cloud Build: Otomatik derlemeler çalıştıran, tümüyle yönetilen bir sürekli entegrasyon, teslim ve dağıtım platformu.
- Cloud Run: Container mimarisine alınmış uygulamaları çalıştırmak için tümüyle yönetilen bir ortam.
-
Ortamı hazırlama
Bu bölümde, Chat uygulaması için Google Cloud projesinin nasıl oluşturulacağı ve yapılandırılacağı gösterilmektedir.
Google Cloud projesi oluşturma
Google Cloud konsolu
- Google Cloud Console'da Menü > IAM & Admin > Proje Oluştur'a gidin.
-
Proje Adı alanına projeniz için açıklayıcı bir ad girin.
İsteğe bağlı: Proje kimliğini düzenlemek için Düzenle'yi tıklayın. Proje kimliği, proje oluşturulduktan sonra değiştirilemez. Bu nedenle, projenin kullanım ömrü boyunca ihtiyaçlarınızı karşılayacak bir kimlik seçin.
- Konum alanında, projeniz için olası konumları görüntülemek üzere Göz at'ı tıklayın. Ardından Seç'i tıklayın.
- Oluştur'u tıklayın. Google Cloud Console, Kontrol Paneli sayfasına gider ve projeniz birkaç dakika içinde oluşturulur.
gcloud CLI
Aşağıdaki geliştirme ortamlarından birinde Google Cloud KSA'ya (gcloud
) erişin:
-
Cloud Shell: gcloud KSA'nın önceden ayarlandığı bir online terminal kullanmak için Cloud Shell'i etkinleştirin.
Cloud Shell'i etkinleştirin. -
Yerel kabuk: Yerel geliştirme ortamı kullanmak için gcloud CLI'yı yükleyin ve başlatın.
Cloud projesi oluşturmak içingcloud projects create
komutunu kullanın: Oluşturmak istediğiniz projenin kimliğini ayarlayarak PROJECT_ID kısmını değiştirin.gcloud projects create PROJECT_ID
Cloud projesi için faturalandırmayı etkinleştirme
Google Cloud konsolu
- Google Cloud Console'da Faturalandırma'ya gidin. Şunu tıklayın: Menü > Faturalandırma > Projelerim.
- Bir kuruluş seçin bölümünde, Google Cloud projenizle ilişkili kuruluşu seçin.
- Proje satırında İşlemler menüsünü ( ) açın, Faturalandırmayı değiştir'i tıklayın ve Cloud Faturalandırma hesabını seçin.
- Hesap belirle'yi tıklayın.
gcloud CLI
- Kullanılabilir faturalandırma hesaplarını listelemek için şu komutu çalıştırın:
gcloud billing accounts list
- Bir faturalandırma hesabını Google Cloud projesiyle bağlama:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
Aşağıdakini değiştirin:
PROJECT_ID
, faturalandırmayı etkinleştirmek istediğiniz Cloud projesinin proje kimliğidir.BILLING_ACCOUNT_ID
, Google Cloud projesiyle ilişkilendirilecek faturalandırma hesabı kimliğidir.
API'leri etkinleştirme
Google Cloud konsolu
Google Cloud Console'da Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Events API, Eventarc API ve Cloud Run Admin API'yi etkinleştirin.
API'leri doğru Cloud projesinde etkinleştirdiğinizi onaylayın ve İleri'yi tıklayın.
Doğru API'leri etkinleştirdiğinizden emin olun ve Etkinleştir'i tıklayın.
gcloud CLI
Gerekirse mevcut Cloud projesini oluşturduğunuz projeyle değiştirin:
gcloud config set project PROJECT_ID
PROJECT_ID kısmını, oluşturduğunuz Cloud projesinin proje kimliği ile değiştirin.
Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Events API, Eventarc API ve Cloud Run Admin API'yi etkinleştirin:
gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ workspaceevents.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com
Kimlik doğrulama ve yetkilendirme ayarlarını yapma
Kimlik doğrulama ve yetkilendirme, Chat uygulamasının Google Workspace ve Google Cloud'daki kaynaklara erişmesine olanak tanır.
Bu eğitimde, Google Chat uygulamasını dahili olarak yayınlayacağınız için yer tutucu bilgiler kullanabilirsiniz. Google Chat uygulamasını harici olarak yayınlamadan önce izin ekranındaki yer tutucu bilgileri gerçek bilgilerle değiştirin.
OAuth kullanıcı rızası ekranını yapılandırma, kapsamları belirtme ve uygulamanızı kaydetme
Google Cloud Console'da Menü > > Markalama'ya gidin.
yapılandırmasını daha önce yaptıysanız Markalama, Kitle ve Veri Erişimi'nde aşağıdaki OAuth izin ekranı ayarlarını yapılandırabilirsiniz. henüz yapılandırılmadı mesajını görürseniz Başlayın'ı tıklayın:
- App Information (Uygulama Bilgileri) bölümündeki App name (Uygulama adı) alanına
AI knowledge assistant
yazın. - Kullanıcı destek e-postası bölümünde e-posta adresinizi veya uygun bir Google grubunu seçin.
- İleri'yi tıklayın.
- Kitle bölümünde Dahili'yi seçin. Dahili'yi seçemiyorsanız Harici'yi seçin.
- İleri'yi tıklayın.
- İletişim bilgileri bölümünde, projenizde yapılan değişikliklerle ilgili bildirim alabileceğiniz bir e-posta adresi girin.
- İleri'yi tıklayın.
- Bitir bölümünde Google API Hizmetleri Kullanıcı Verileri Politikası'nı inceleyin ve kabul ediyorsanız Google API Hizmetleri: Kullanıcı Verileri Politikası'nı kabul ediyorum'u seçin.
- Devam'ı tıklayın.
- Oluştur'u tıklayın.
- Kullanıcı türü için Harici'yi seçtiyseniz test kullanıcıları ekleyin:
- Kitle'yi tıklayın.
- Test kullanıcıları bölümünde Kullanıcı ekle'yi tıklayın.
- E-posta adresinizi ve yetkili diğer test kullanıcılarını girip Kaydet'i tıklayın.
- App Information (Uygulama Bilgileri) bölümündeki App name (Uygulama adı) alanına
Veri Erişimi > Kapsam Ekleme veya Kaldırma'yı tıklayın. Google Cloud projenizde etkinleştirdiğiniz her API'nin kapsamlarının listesini içeren bir panel gösterilir.
Kapsamları manuel olarak ekleme bölümünde aşağıdaki kapsamı yapıştırın:
https://www.googleapis.com/auth/chat.messages
Tabloya ekle'yi tıklayın.
Güncelle'yi tıklayın.
Uygulamanızın gerektirdiği kapsamları seçtikten sonra Veri Erişimi sayfasında Kaydet'i tıklayın.
OAuth istemci kimliği kimlik bilgileri oluşturma
Google Cloud Console'da Menü > API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin.
Kimlik Bilgileri Oluştur > OAuth istemci kimliği'ni tıklayın.
Uygulama türü > Web uygulaması'nı tıklayın.
Ad alanına, kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
Yetkilendirilmiş yönlendirme URI'leri bölümünde URI ekle'yi tıklayın.
URI'ler 1 bölümüne aşağıdakileri yazın:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
Aşağıdakini değiştirin:
- REGION: Cloud Function'ın bölgesi (ör.
us-central1
). Daha sonra iki Cloud Functions işlevini oluşturduğunuzda bunların bölgesini bu değere ayarlamanız gerekir. - PROJECT_ID: Oluşturduğunuz Cloud projesinin proje kimliği.
- REGION: Cloud Function'ın bölgesi (ör.
Oluştur'u tıklayın.
OAuth istemcisi oluşturuldu penceresinde JSON'ı indir'i tıklayın.
İndirilen dosyayı
credentials.json
olarak kaydedin. Daha sonra, iki Cloud Functions işlevini oluşturduğunuzda her dağıtımacredentials.json
dosyasını eklersiniz.Tamam'ı tıklayın.
Pub/Sub konusu oluşturma
Pub/Sub konusu, Chat alanındaki mesajlar gibi etkinliklere abone olmak ve Chat uygulamasını gerçek zamanlı olarak bilgilendirmek için Google Workspace Events API ile birlikte çalışır.
Pub/Sub konusunu şu şekilde oluşturabilirsiniz:
Google Cloud konsolu
Google Cloud Console'da Menü > Pub/Sub'a gidin.
Konu Oluştur'u tıklayın.
Topic ID (Konu Kimliği) alanına
events-api
yazın.Varsayılan abonelik ekle'nin seçimini kaldırın.
Şifreleme bölümünde Google tarafından yönetilen şifreleme anahtarı'nı seçin.
Oluştur'u tıklayın. Pub/Sub konusu görünür.
Bu Pub/Sub konusu ve Google Workspace Events API'nin birlikte çalışması için Chat IAM kullanıcısına Pub/Sub konusuna yayınlama izni verin:
events-api panelindeki PERMISSIONS (İzinler) bölümünde Add Principal'ı (Ana Hesap Ekle) tıklayın.
Add principals (Ana hesap ekle) bölümündeki New principals (Yeni ana hesaplar) alanına
chat-api-push@system.gserviceaccount.com
yazın.Rol atayın bölümündeki Bir rol seçin'de Pub/Sub > Pub/Sub Yayıncısı'nı seçin.
Kaydet'i tıklayın.
gcloud CLI
Konu kimliği
events-api
olan bir Pub/Sub konusu oluşturun:gcloud pubsub topics create events-api
Chat IAM kullanıcısına Pub/Sub konusuna yayınlama izni verin:
gcloud pubsub topics add-iam-policy-binding events-api \ --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \ --role='roles/pubsub.publisher'
Firestore veritabanını oluşturma
Firestore veritabanı, Chat alanlarındaki verileri (ör. mesajlar) kalıcı olarak saklar ve alır. model/message.js
ve services/firestore-service.js
dosyalarıyla örnek kodda örtülü olarak ayarlanan veri modelini tanımlamıyorsunuz.
Yapay zeka bilgi asistanı Chat uygulaması veritabanı, Firestore veri modeli bölümünü inceleyin.
belgelere dayalı bir NoSQL veri modeli kullanır. Bu belgeler, koleksiyonlar halinde düzenlenir. Daha fazla bilgi içinAşağıdaki şema, yapay zeka bilgi asistanı Chat uygulamasının veri modeline genel bir bakış sunmaktadır:
Kök, iki koleksiyon içerir:
spaces
. Burada her doküman, Chat uygulamasının eklendiği bir Chat alanını temsil eder. Her mesaj,messages
alt koleksiyonundaki bir dokümanla temsil edilir.users
. Burada her doküman, Chat uygulamasını bir Chat alanına ekleyen bir kullanıcıyı temsil eder.
Koleksiyon, belge ve alan tanımlarını görüntüleme
spaces
Yapay zeka bilgi asistanı Chat uygulamasının bulunduğu bir Chat alanı.
Alanlar | |
---|---|
Document ID | String Belirli bir alanın benzersiz kimliği. Chat API'deki alanın kaynak adının bir bölümü. |
messages | Subcollection of Documents ( Chat alanında gönderilen mesajlar Firebase'deki message Document ID ile eşleşir. |
spaceName | String Chat API'deki alanın benzersiz adı. Chat API'deki alanın kaynak adıyla eşleşir. |
messages
Chat alanında gönderilen mesajlar
Alanlar | |
---|---|
Document ID | String Belirli bir iletinin benzersiz kimliği. |
name | String Chat API'deki bir iletinin benzersiz adı. Chat API'deki iletinin kaynak adıyla eşleşir. |
text | String İletinin metin gövdesi. |
time | String (Timestamp format) Mesajın oluşturulduğu zaman. |
users
Chat alanına yapay zeka bilgi asistanı Chat uygulamasını ekleyen kullanıcılar.
Alanlar | |
---|---|
Document ID | String Belirli bir kullanıcının benzersiz kimliği. |
accessToken | String Google Workspace API'lerini çağırmak için kullanılan, OAuth 2.0 kullanıcı yetkilendirmesi sırasında verilen erişim jetonu. |
refreshToken | String OAuth 2.0 kullanıcı yetkilendirmesi sırasında verilen yenileme jetonu. |
Firestore veritabanını oluşturmak için:
Google Cloud konsolu
Google Cloud Console'da Menü > Firestore'a gidin.
Create database'i (Veritabanı oluştur) tıklayın.
Firestore modunuzu seçin bölümünde Yerel mod'u tıklayın.
Devam'ı tıklayın.
Veritabanını yapılandırın:
Veritabanınıza ad verin bölümünde, Veritabanı kimliği'ni
(default)
olarak bırakın.Konum türü bölümünde Bölge'yi seçin.
Bölge'de veritabanınız için bir bölge belirtin (ör.
us-central1
). En iyi performansı elde etmek için Chat uygulamasının Cloud Functions işlevleriyle aynı veya yakındaki konumu seçin.
Create database'i (Veritabanı oluştur) tıklayın.
gcloud CLI
Yerel modda bir Firestore veritabanı oluşturun:
gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native
LOCATION yerine Firestore bölgesi adını (ör.
us-central1
) yazın. En iyi performans için Chat uygulamasının Cloud Functions işlevleriyle aynı veya yakındaki konumu seçin.
Chat uygulamasını oluşturma ve dağıtma
Google Cloud projeniz oluşturulup yapılandırıldığına göre artık Chat uygulamasını oluşturup dağıtmaya hazırsınız. Bu bölümde şunları yapacaksınız:
- İki Cloud Functions işlevi oluşturup dağıtın. Biri Chat etkileşimi etkinliklerine, diğeri ise Pub/Sub etkinliklerine yanıt vermek için kullanılır.
- Google Chat API yapılandırma sayfasında Chat uygulaması oluşturup dağıtın.
Cloud Functions işlevlerini oluşturma ve dağıtma
Bu bölümde, aşağıdaki adlara sahip iki Cloud Functions işlevi oluşturup dağıtacaksınız:
app
: Chat uygulamasının, Chat'ten HTTP istekleri olarak alınan etkinliklere yanıt veren kodunu barındırır ve çalıştırır.eventsApp
: Pub/Sub'tan gelen mesajlar gibi Chat alanı etkinliklerini alır ve işler.
Bu Cloud Functions'lar birlikte, yapay zeka bilgi asistanı Chat uygulamasının uygulama mantığını oluşturur.
İsteğe bağlı olarak, Cloud Functions işlevlerini oluşturmadan önce GitHub'da barındırılan örnek kodu inceleyip kendinizi bu kodla ilgili bilgilendirin.
app
oluşturma ve dağıtma
Google Cloud konsolu
Kodu GitHub'dan ZIP dosyası olarak indirin.
İndirilen ZIP dosyasını ayıklayın.
Ayıklanan klasör, Google Workspace örnekleri deposunun tamamını içerir.
Ayıklanan klasörde
google-chat-samples-main/node/ai-knowledge-assistant
dizinine gidin.google-chat-samples/node/ai-knowledge-assistant
dizininde, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğinizcredentials.json
dosyasını ekleyin.ai-knowledge-assistant
klasörünün içeriğini bir ZIP dosyası olarak sıkıştırın.Zip dosyası aşağıdaki dosya ve klasörleri içermelidir:
.gcloudignore
.gitignore
README.md
deploy.sh
env.js
events_index.js
http_index.js
index.js
credentials.json
package-lock.json
package.json
controllers/
model/
services/
test/
Google Cloud Console'da Menü > Cloud Functions'a gidin.
Chat uygulamanızın Google Cloud projesinin seçildiğinden emin olun.
Create Function'ı (İşlev oluştur) tıklayın.
İşlev oluştur sayfasında işlevinizi ayarlayın:
- Ortam'da Cloud Run işlevi'ni seçin.
- İşlev adı alanına
app
yazın. - Bölge'de
us-central1
gibi bir bölge seçin. Bu bölge, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir. - Tetikleyici türü'nde HTTPS'yi seçin.
- Kimlik doğrulama bölümünde Kimliği doğrulanmayan çağrılara izin ver'i seçin.
- İleri'yi tıklayın.
Çalışma zamanı bölümünde Node.js 20'yi seçin.
Giriş noktası bölümünde varsayılan metni silin ve
app
girin.Kaynak kodu bölümünde Zip yükleme'yi seçin.
Hedef pakette, bir paket oluşturun veya seçin:
- Göz at'ı tıklayın.
- Bir paket seçin.
- Seç'i tıklayın.
Google Cloud, ZIP dosyasını bu pakete yükler ve bileşen dosyalarını ayıklar. Ardından Cloud Functions, bileşen dosyalarını Cloud Functions'a kopyalar.
Zip dosyası bölümünde, GitHub'dan indirip çıkardığınız ve yeniden sıkıştırdığınız ZIP dosyasını yükleyin:
- Göz at'ı tıklayın.
- ZIP dosyasına gidip bu dosyayı seçin.
- Aç'ı tıklayın.
Dağıt'ı tıklayın.
Cloud Functions ayrıntıları sayfası açılır ve işleviniz iki ilerleme göstergesiyle birlikte görünür: biri derleme, diğeri hizmet için. Her iki ilerleme göstergesi de kaybolup yerini onay işaretine bıraktığında işleviniz dağıtılmış ve hazır demektir.
Sabitleri ayarlamak için örnek kodu düzenleyin:
- Cloud Function ayrıntıları sayfasında Düzenle'yi tıklayın.
- İleri'yi tıklayın.
- Kaynak kodu bölümünde Satır içi düzenleyici'yi seçin.
- Satır içi düzenleyicide
env.js
dosyasını açıp düzenleyin:- project değerini Cloud proje kimliğinize ayarlayın.
- location değerini Cloud Functions'ın
us-central1
gibi bölgesi olarak ayarlayın.
Dağıt'ı tıklayın.
gcloud CLI
Kodu GitHub'dan kopyalayın:
git clone https://github.com/googleworkspace/google-chat-samples.git
Bu yapay zeka bilgi asistanı Chat uygulamasının kodunu içeren dizine geçin:
cd google-chat-samples/node/ai-knowledge-assistant
google-chat-samples/node/ai-knowledge-assistant
dizininde, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğinizcredentials.json
dosyasını ekleyin.Ortam değişkenlerini ayarlamak için
env.js
dosyasını düzenleyin:- project değerini Cloud proje kimliğiniz olarak ayarlayın.
- location değerini Cloud Functions'ın bölgesi olarak ayarlayın (ör.
us-central1
).
Cloud Functions işlevini Google Cloud'a dağıtın:
gcloud functions deploy app \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=app \ --trigger-http \ --allow-unauthenticated
REGION değerini,
env.js
dosyasında ayarlanan değerle eşleşecek şekilde Cloud Functions işlevinin region değeriyle (ör.us-central1
) değiştirin.
eventsApp
oluşturma ve dağıtma
Google Cloud konsolu
Google Cloud Console'da Menü > Cloud Functions'a gidin.
Chat uygulamanızın Google Cloud projesinin seçildiğinden emin olun.
Create Function'ı (İşlev oluştur) tıklayın.
İşlev oluştur sayfasında işlevinizi ayarlayın:
- Ortam'da Cloud Run işlevi'ni seçin.
- İşlev adı alanına
eventsApp
yazın. - Bölge'de
us-central1
gibi bir bölge seçin. Bu bölge, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir. - Tetikleyici türü bölümünde Cloud Pub/Sub'ı seçin.
- Cloud Pub/Sub konusu bölümünde, oluşturduğunuz Pub/Sub konu adını seçin. Bu ad,
projects/PROJECT/topics/events-api
biçimindedir. Burada PROJECT, Cloud proje kimliğinizdir. Service account(s) might not have enough permissions to deploy the function with the selected trigger.
ile başlayan bir mesaj görürseniz Tümüne İzin Ver'i tıklayın.- İleri'yi tıklayın.
Çalışma zamanı bölümünde Node.js 20'yi seçin.
Giriş noktası bölümünde varsayılan metni silin ve
eventsApp
girin.Kaynak kodu bölümünde Cloud Storage'dan ZIP'i seçin.
Cloud Storage konumu bölümünde Göz at'ı tıklayın.
app
Cloud Function'ı oluştururken ZIP dosyasını yüklediğiniz paketi seçin.Yüklediğiniz ZIP dosyasını tıklayın.
Seç'i tıklayın.
Dağıt'ı tıklayın.
Cloud Functions ayrıntıları sayfası açılır ve işleviniz üç ilerleme göstergesiyle birlikte görünür: biri derleme, biri hizmet ve biri de tetikleyici için. Üç ilerleme göstergesi de kaybolup yerini onay işareti aldığında işleviniz dağıtılmış ve hazır demektir.
Sabitleri ayarlamak için örnek kodu düzenleyin:
- Cloud Function ayrıntıları sayfasında Düzenle'yi tıklayın.
- İleri'yi tıklayın.
- Kaynak kodu bölümünde Satır içi düzenleyici'yi seçin.
- Satır içi düzenleyicide
env.js
dosyasını açıp düzenleyin:- project değerini Cloud proje kimliğinize ayarlayın.
- location değerini Cloud Functions'ın
us-central1
gibi bölgesi olarak ayarlayın.
Dağıt'ı tıklayın.
gcloud CLI
gcloud CLI'da henüz orada değilseniz daha önce GitHub'dan klonladığınız bu yapay zeka bilgi asistanı Chat uygulamasının kodunu içeren dizine geçin:
cd google-chat-samples/node/ai-knowledge-assistant
google-chat-samples/node/ai-knowledge-assistant
dizininde, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğinizcredentials.json
dosyasını ekleyin.Ortam değişkenlerini ayarlamak için
env.js
dosyasını düzenleyin:- project değerini Cloud proje kimliğiniz olarak ayarlayın.
- location değerini Cloud Functions'ın bölgesi olarak ayarlayın (ör.
us-central1
).
Cloud Functions işlevini Google Cloud'a dağıtın:
gcloud functions deploy eventsApp \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=eventsApp \ --trigger-topic=events-api
REGION değerini,
env.js
dosyasında ayarlanan değerle eşleşecek şekilde Cloud Functions işlevinin region değeriyle (ör.us-central1
) değiştirin.
app
Cloud Functions tetikleme URL'sini kopyalayın.
Google Cloud Console'da Chat uygulamasını yapılandırırken bir sonraki bölümde app
Cloud Function'ın tetikleyici URL'sini yapıştırırsınız.
Google Cloud konsolu
Google Cloud Console'da Menü > Cloud Functions'a gidin.
Cloud Functions listesinin Ad sütununda
app
simgesini tıklayın.Tetikleyici'yi tıklayın.
URL'yi kopyalayın.
gcloud CLI
app
Cloud Functions işlevini açıklayın:gcloud functions describe app
url
özelliğini kopyalayın.
Google Cloud Console'da Chat uygulamasını yapılandırma
Bu bölümde, Google Cloud Console'da Chat API'nin nasıl yapılandırılacağı açıklanmaktadır. Chat uygulamanızla ilgili bilgiler (Chat uygulamasının adı ve Chat etkileşimi etkinliklerini gönderdiği Chat uygulamasının Cloud Function'ının tetikleyici URL'si dahil) yer alır.
Google Cloud Console'da Menü > Diğer ürünler > Google Workspace > Ürün Kitaplığı > Google Chat API'si > Yönet > Yapılandırma'yı tıklayın.
Uygulama adı alanına
AI knowledge assistant
yazın.Avatar URL'si bölümüne
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg
yazın.Açıklama bölümüne
Answers questions with AI
yazın.Etkileşimli özellikleri etkinleştir açma/kapatma düğmesini açık konumuna getirin.
İşlevsellik bölümünde Alanlara ve grup görüşmelerine katılma'yı seçin.
Bağlantı ayarları bölümünde HTTP uç nokta URL'si'ni seçin.
HTTP uç nokta URL'si bölümüne,
app
Cloud Functions işlevinden tetikleyici URL'sini yapıştırın. URL,https://
REGION-
PROJECT_ID.cloudfunctions.net/app
biçiminde olmalıdır. Burada REGION, Cloud Functions işlevinin bölgesi (ör.us-central1
), PROJECT_ID ise oluşturduğunuz Cloud projesinin proje kimliğidir.Görünürlük bölümünde Bu sohbet uygulamasını Workspace alanınızdaki belirli kişiler ve gruplar için kullanılabilir hale getir'i seçip e-posta adresinizi girin.
İsteğe bağlı olarak, Günlükler bölümünde Hataları günlüğe kaydetme'yi seçin.
Kaydet'i tıklayın. Yapılandırma kaydedildi mesajı görünür. Bu, Sohbet uygulamasının test edilmeye hazır olduğu anlamına gelir.
Chat uygulamasını test etme
Yapay zeka bilgi asistanı Chat uygulamasının yanıtlayabileceği sorular sorarak bu uygulamayı mesaj içeren bir Chat alanında test edin.
Yapay zeka bilgi asistanı Chat uygulamasını test etmenin birkaç yolu şunlardır:
- Yapay zeka bilgi asistanı Chat uygulamasını mevcut bir Chat alanına ekleyip bu alanla ilgili sorular sorun.
- Veri kaynağı olarak kullanmak için bir Chat alanı oluşturun ve birkaç mesaj yayınlayın. Mesajlar,
Answer 20 common onboarding questions employees ask their teams.
gibi bir istemle Gemini'dan alınabilir. Alternatif olarak, Chat ile geliştirme genel bakış kılavuzundan birkaç paragraf yapıştırıp bu paragraflarla ilgili sorular sorabilirsiniz.
Bu eğitimde, Chat alanı oluşturalım ve Chat ile geliştirme genel bakış rehberinden birkaç paragraf yapıştıralım.
Google Chat'i açın.
Chat alanı oluşturma:
> Alan oluştur'u tıklayın.
Yeni SohbetAlan adı bölümüne
Testing AI knowledge assistant app
yazın.Bu alan ne için kullanılacak? bölümünde Ortak çalışma'yı seçin.
Erişim ayarları bölümünde, alana kimlerin erişebileceğini seçin.
Oluştur'u tıklayın.
Veri kaynağı olarak kullanılacak mesajlar ekleyin:
Web tarayıcısında Chat ile geliştirme genel bakış kılavuzunu ziyaret edin.
Rehberin içeriğini kopyalayıp oluşturduğunuz Chat alanına yapıştırın.
Yapay zeka bilgi asistanı Chat uygulamasını ekleyin:
İleti oluşturma çubuğuna
@AI knowledge assistant
yazın. Görünen öneri menüsünde, yapay zeka bilgi asistanı Chat uygulamasını seçipenter
tuşuna basın.Alana yapay zeka bilgi asistanı Chat uygulamasını eklemek isteyip istemediğinizi soran bir mesaj gösterilir. Alana ekle'yi tıklayın.
Chat uygulamasını bir alana ilk kez ekliyorsanız Chat uygulaması için kimlik doğrulama ve yetkilendirme işlemlerini yapılandırmanız gerekir:
- Yapılandır'ı tıklayın.
- Yeni bir tarayıcı penceresi veya sekmesi açılır ve sizden bir Google Hesabı seçmeniz istenir. Test ettiğiniz hesabı seçin.
- Yapay zeka bilgi asistanı Chat uygulamasının istediği izinleri inceleyin. İzin vermek için İzin ver'i tıklayın.
You may close this page now.
mesajı gösterilir. Tarayıcı penceresini veya sekmesini kapatıp sohbet alanına dönün.
Bir soru sorun:
İleti oluşturma çubuğuna aşağıdaki gibi bir soru yazın:
What are Google Chat apps?
Yapay zeka bilgi asistanı Chat uygulamasının yanıtları
İsteğe bağlı olarak, yanıt doğru veya yeterli değilse yapay zekanın konuşma geçmişinin iyileşmesine yardımcı olmak için
Yardım al'ı tıklayın. Yapay zeka bilgi asistanı Chat uygulaması, alan yöneticisinden bahsediyor ve soruyu yanıtlamasını istiyor. Bir dahaki sefere, yapay zeka bilgi asistanı Chat uygulaması yanıtı bilecek.
Dikkat edilmesi gereken noktalar, alternatif mimari seçenekleri ve sonraki adımlar
Bu bölümde, yapay zeka bilgi asistanı Chat uygulamasının oluşturulabileceği diğer yöntemler incelenmektedir.
Firestore, Cloud Storage veya Chat API'de List Messages'ı çağırma
Bu eğitimde, Chat uygulaması bir soruyu her yanıtladığında Chat API ile Message
kaynağında list
yöntemini çağırmaya kıyasla performansı iyileştirdiği için mesajlar gibi Chat alanı verilerinin Firestore veritabanında depolanması önerilir. Ayrıca, list messages
işlevinin tekrar tekrar çağrılması, Chat uygulamasının API kota sınırlarına ulaşmasına neden olabilir.
Ancak bir Chat alanının etkileşim geçmişi çok uzun olursa Firestore'u kullanmak maliyetli olabilir.
Cloud Storage Firestore'a alternatif olarak kullanılabilir. Yapay zeka bilgi asistanı Chat uygulamasının etkin olduğu her alan kendi nesnesini alır ve her nesne, alandaki tüm mesajları içeren bir metin dosyasıdır. Bu yaklaşımın avantajı, metin dosyasının tüm içeriğinin Vertex AI ile Gemini'a tek seferde aktarılabilmesidir. Ancak Cloud Storage'daki bir nesneye ekleme yapamayacağınız, yalnızca değiştirebileceğiniz için görüşme geçmişini güncellemek daha fazla çalışma gerektirir. Bu yaklaşım, mesaj geçmişini düzenli olarak güncelliyorsanız mantıklı değildir. Ancak mesaj geçmişini toplu olarak ve düzenli aralıklarla (ör. haftada bir kez) güncelliyorsanız iyi bir seçenek olabilir.
Sorun giderme
Bir Google Chat uygulaması veya kartı hata döndürdüğünde Chat arayüzünde "Bir hata oluştu" mesajı gösterilir. veya "İsteğiniz işlenemiyor." Bazen Chat kullanıcı arayüzünde hata mesajı gösterilmez ancak Chat uygulaması veya kartı beklenmedik bir sonuç üretir. Örneğin, kart mesajı görünmeyebilir.
Chat kullanıcı arayüzünde hata mesajı gösterilmese de Chat uygulamaları için hata günlüğü kaydı etkinleştirildiğinde hataları düzeltmenize yardımcı olacak açıklayıcı hata mesajları ve günlük verileri kullanılabilir. Hataları görüntüleme, hataları ayıklama ve düzeltme konusunda yardım için Google Chat hatalarını giderme ve düzeltme başlıklı makaleyi inceleyin.
Temizleme
Bu eğitimde kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini önlemek istiyorsanız Cloud projesini silmenizi öneririz.
- Google Cloud Console'da Kaynakları yönetin sayfasına gidin. Şunu tıklayın: Menü > IAM ve Yönetici > Kaynakları Yönetin.
- Proje listesinde, silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
- İletişim kutusunda proje kimliğini yazın ve ardından projeyi silmek için Kapat'ı tıklayın.
İlgili konular
- Google Chat, Vertex AI ve Firestore ile projeleri yönetme
- Google Chat, Vertex AI ve Apps Komut Dosyası ile olaylara yanıt verme