Bu eğitimde, Gemini ile Vertex AI tarafından desteklenen üretken yapay zekadan yararlanarak Chat alanlarındaki sohbetlere dayalı soruları yanıtlayan bir Google Chat uygulamasının nasıl geliştirileceği anlatılmaktadır. Chat uygulaması, bahsedilmediğinde bile Chat alanlarında yayınlanan soruları gerçek zamanlı olarak tanımak ve yanıtlamak için Google Workspace Events API'yi ve Pub/Sub'ı kullanır.
Chat uygulaması, alanda gönderilen tüm mesajları veri kaynağı ve bilgi tabanı olarak kullanır. Birisi soru sorduğunda, Chat uygulaması daha önce paylaşılan yanıtları kontrol eder ve ardından bir tane paylaşır. Yanıt bulunamazsa yanıt verilemez demektir. Kullanıcılar her yanıtta, bir aksesuarın işlem düğmesini tıklayarak bir alan yöneticisinden @bahsedebilir ve yanıt isteyebilir. Google Chat uygulaması, Gemini Yapay Zeka'yı kullanarak eklendiği alanlarda yapılan görüşmelerle ilgili sürekli eğitim alırken bilgi tabanını uyarlar ve büyütür.
Chat uygulaması, çalışan oryantasyon ve destek alanında şu şekilde çalışır:
-
Şekil 2. Derya, şirketin topluluk önünde konuşma eğitimi sunup sunmadığını soruyor. -
Şekil 3. Yapay zeka bilgi asistanı Chat uygulaması, Vertex AI'ı Gemini ile Dana'nın sorusunu Chat alanının sohbet geçmişine göre yanıtlamaya teşvik eder 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ğıdakileri yapmak için Google Cloud hizmetlerine erişin:
- Bir Google Cloud projesi oluşturun.
- Cloud projesine bir Google Cloud faturalandırma hesabı bağlayın. Erişiminiz olup olmadığını öğrenmek amacıyla Faturalandırmayı etkinleştirmek için gereken izinler bölümüne bakın.
- Kimliği doğrulanmamış Google Cloud Functions işlevi çağrılarını kullanın. Bu çağrıları, Google Cloud kuruluşunuzun alanla kısıtlı paylaşım kullanıp kullanmadığını belirleyerek doğrulayabilirsiniz.
Gerekirse Google Cloud yöneticinizden erişim veya izin isteyin.
Google Cloud CLI kullanıyorsanız gcloud CLI ile çalışacak şekilde yapılandırılmış bir Node.js geliştirme ortamı. Node.js geliştirme ortamı oluşturma bölümüne bakın.
Hedefler
- Chat alanı görüşmelerinde paylaşılan bilgilere dayanarak 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 edinebilirsiniz.
- Chat uygulaması doğrudan mesaj gönderilmediğinde bile Chat alanında mesajları gerçek zamanlı olarak dinleyip yanıtlayın.
- Firestore veritabanına veri yazarak ve veritabanından veri 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, AI bilgi asistanı Chat uygulaması tarafından kullanılan Google Workspace ve Google Cloud kaynaklarının mimarisi gösterilmektedir.
Yapay zeka bilgi asistanı Chat uygulaması şu şekilde çalışır:
Kullanıcı, AI bilgi asistanı Chat uygulamasını bir Chat alanına ekler:
Chat uygulaması, uygulamayı Chat alanına ekleyen kullanıcıdan kimlik doğrulama ve yetkilendirmeyi yapılandırmasını ister.
Chat uygulaması, Chat API'de
spaces.messages.list
yöntemini çağırarak alanın mesajlarını alır ve alınan mesajları bir Firestore veritabanında depolar.Chat uygulaması, alandaki mesajlar gibi etkinlikleri dinlemeye başlamak için Google Workspace Events API'de
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ı, alanda bir tanıtım mesajı yayınlar.
Chat alanındaki bir kullanıcı mesaj yayınladığında:
Chat uygulaması, mesajı Pub/Sub konusundan gerçek zamanlı olarak alır.
Chat uygulaması, mesajı Firestore veritabanına ekler.
Kullanıcı daha sonra mesajı düzenlerse veya silerse Chat uygulaması, güncellenen veya silinen etkinliği anında alır ve ardından Firestore veritabanında mesajı günceller veya siler.
Chat uygulaması, mesajı Gemini ile Vertex AI'a gönderir:
İstem, Gemini ile Vertex AI'a mesajın soru içerip içermediğini kontrol etmesi için talimat verir. Bu durumda Gemini, Chat alanındaki Firestore'da tutulan mesaj geçmişine göre soruyu yanıtlar ve Google Chat uygulaması da mesajı Chat alanına gönderir. Aksi takdirde yanıt vermeyin.
Gemini ile Vertex AI soruyu yanıtlarsa Chat uygulaması, uygulama kimlik doğrulamasını kullanarak Chat API'de
spaces.messages.create
yöntemini çağırarak yanıtı yayınlar.Gemini ile Vertex AI soruyu yanıtlayamazsa Chat uygulaması, Chat alanının geçmişinde bu sorunun cevabını bulamayacağını belirten bir mesaj gönderir.
Mesajlar her zaman kullanıcıların tıklayabileceği bir aksesuar işlem düğmesi içerir. Bu düğme, Chat uygulamasının bir alan yöneticisini @mention ederek 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 inceleyin
AI bilgi asistanı Chat uygulaması, aşağıdaki Google Workspace ve Google Cloud ürünlerini kullanır:
- Vertex AI API: Gemini destekli bir üretken yapay zeka platformu. AI 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:
Mesajlar gibi Chat etkileşim etkinliklerini alan ve yanıtlayan Google Chat uygulamaları geliştirmek için kullanılan bir API'dir. Yapay zeka destekli bilgi asistanı Chat uygulaması, Chat API'yi şu amaçlarla kullanır:
- Chat tarafından gönderilen etkileşim etkinliklerini alın ve yanıtlayın.
- Alanda gönderilen mesajları listeleyin.
- Alandaki kullanıcı sorularını yanıt olarak paylaşın.
- Ad ve avatar resmi gibi, sohbette nasıl görüneceğini belirleyen özellikleri yapılandırın.
- Google Workspace Events API: Bu API, Google Workspace uygulamalarında etkinliklere abone olmanıza ve değişiklik bildirimlerini yönetmenize olanak tanır. Yapay zeka bilgi asistanı Chat uygulaması, bir Chat alanında yayınlanan mesajları dinlemek için Google Workspace Events API'yi kullanır. Böylece, kendisinden bahsedilmediğinde bile soruları algılayıp yanıtlayabilir.
- Firestore: Sunucusuz belge veritabanı. AI 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 etkinliklerini almak için Pub/Sub'ı kullanır.
- Eventarc: Eventarc, temel altyapıyı uygulamak, özelleştirmek veya sürdürmek zorunda kalmadan etkinliğe dayalı mimariler oluşturmanıza olanak tanır. AI bilgi asistanı Chat uygulaması, etkinlikleri Pub/Sub'dan Chat alanına ve abonelik etkinliklerini alan ve işleyen Cloud Functions işlevine yönlendirmek için Eventarc'ı kullanır.
-
Cloud Functions:
Bir sunucu veya çalışma zamanı ortamını yönetmek zorunda kalmadan Chat etkileşimi ve abonelik etkinliklerine yanıt verebilecek tek amaçlı, bağımsız işlevler oluşturmanıza olanak tanıyan hafif bir sunucusuz bilgi işlem hizmetidir. AI bilgi asistanı Chat uygulaması, şu adlara sahip iki Cloud Functions işlevini kullanır:
-
app
: Chat'in etkileşim etkinliklerini gönderdiği HTTP uç noktasını barındırır ve bu etkinlikleri işleyip yanıtlayan mantığı çalıştırmak için bir bilgi işlem platformu olarak kullanılır. -
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 konsolunda Menü > IAM ve Yönetici > 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 oluşturulduktan sonra proje kimliği değiştirilemez. Bu nedenle, projenin kullanım süresi boyunca ihtiyaçlarınızı karşılayacak bir kimlik seçin.
- Konum alanında, projenizin olası konumlarını görüntülemek için 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 CLI'ye (gcloud
) erişin:
-
Cloud Shell: gcloud KSA'nın halihazırda kurulu olduğu bir online terminal kullanmak için Cloud Shell'i etkinleştirin.
Cloud Shell'i etkinleştirme -
Yerel Kabuk: Yerel bir geliştirme ortamı kullanmak için gcloud CLI'yi 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 değerini değiştirin.gcloud projects create PROJECT_ID
Cloud projesi için faturalandırmayı etkinleştirin
Google Cloud konsolu
- Google Cloud Console'da Faturalandırma'ya gidin. Menü > Faturalandırma > Projelerim'i tıklayın.
- 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
- Faturalandırma hesabını bir Google Cloud projesine bağlayın:
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 projesine bağlanacak 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 ardından Sonraki'yi tıklayın.
Doğru API'leri etkinleştirdiğinizden emin olduktan sonra Etkinleştir'i tıklayın.
gcloud CLI
Gerekirse mevcut Cloud projesini, oluşturduğunuz projeye ayarlayın:
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ınladığınız için yer tutucu bilgileri kullanabilirsiniz. Google Chat uygulamasını harici olarak yayınlamadan önce, yer tutucu bilgilerini izin ekranı için gerçek bilgilerle değiştirin.
OAuth izin ekranını yapılandırın, kapsamları belirtin ve uygulamanızı kaydedin
Google Cloud konsolunda Menü > API'ler ve Hizmetler > OAuth izin ekranı'na gidin.
Kullanıcı türü bölümünde Dahili'yi seçip Oluştur'u tıklayın.
Uygulama adı alanına
AI knowledge assistant
yazın.Kullanıcı desteği e-postası bölümünde, e-posta adresinizi veya uygun bir Google grubunu seçin.
Geliştirici iletişim bilgileri bölümünün altına e-posta adresinizi girin.
Kaydet ve Devam Et'i tıklayın.
Kapsam Ekle veya Kaldır'ı tıklayın. Cloud projenizde etkinleştirdiğiniz her API için kapsamların listesini içeren bir panel gösterilir.
Kapsamları manuel olarak ekle 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.
Kaydet ve Devam Et'i tıklayın.
Uygulama kaydı özetini inceleyin ve ardından Kontrol Paneline Dön'ü 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 Bilgisi 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 1'e aşağıdakileri yazın:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
Aşağıdakini değiştirin:
- REGION: Cloud Function'in 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'in bölgesi (ör.
Oluştur'u tıklayın.
OAuth istemcisi oluşturuldu penceresinde JSON'u indir'i tıklayın.
İndirilen dosyayı
client_secrets.json
olarak kaydedin. Daha sonra, iki Cloud Functions'ı oluştururkenclient_secrets.json
dosyasını her dağıtıma dahil edersiniz.Tamam'ı tıklayın.
Pub/Sub konusunu oluşturma
Pub/Sub konusu, Chat alanındaki etkinliklere (ör. mesajlar) abone olmak ve Chat uygulamasını gerçek zamanlı olarak bilgilendirmek için Google Workspace Events API ile çalışır.
Pub/Sub konusunu aşağıdaki şekilde oluşturabilirsiniz:
Google Cloud konsolu
Google Cloud konsolunda Menü > Pub/Sub'a gidin.
Create Topic'i (Konu Oluştur) tıklayın.
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üntülenir.
Bu Pub/Sub konusunun ve Google Workspace Events API'nin birlikte çalışması için Chat IAM kullanıcısına Pub/Sub konusuna yayın yapma izni verin:
events-api panelinde İZİNLER altında Ana Hesap Ekle'yi tıklayın.
Ana hesap ekle bölümünde, Yeni ana hesaplar bölümünde
chat-api-push@system.gserviceaccount.com
yazın.Roller 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
events-api
konu kimliğine sahip bir Pub/Sub konusu oluşturun:gcloud pubsub topics create events-api
Chat IAM kullanıcısına Pub/Sub konusuna yayın yapma 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ı kalır ve Chat alanlarından mesajlar gibi verileri alır. model/message.js
ve services/firestore-service.js
dosyaları tarafından örnek kodda dolaylı olarak ayarlanan veri modelini tanımlamazsınız.
AI bilgi asistanı Chat uygulaması veritabanı, Firestore veri modeli başlıklı makaleyi inceleyin.
koleksiyonlar halinde düzenlenmiş belgeleri temel alan bir NoSQL veri modeli kullanır. Daha fazla bilgi içinAşağıdaki şemada, yapay zeka bilgi asistanı Chat uygulamasının veri modeline genel bir bakış sunulmaktadır:
Kök iki koleksiyon içerir:
spaces
içinde her doküman, Chat uygulamasının eklendiği bir Chat alanını temsil eder. Her mesaj,messages
alt koleksiyonundaki bir doküman tarafından temsil edilir.users
: Burada her doküman, Chat uygulamasını Chat alanına ekleyen kullanıcıyı temsil eder.
Koleksiyon, doküman 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. Alanın Chat API'deki kaynak adının bir parçasıdır. |
messages | Subcollection of Documents ( Chat alanında gönderilen mesajlar Firebase'deki message öğesinin Document ID özelliğine karşılık gelir. |
spaceName | String Chat API'deki alanın benzersiz adı. Alanın Chat API'deki kaynak adıyla eşleşir. |
messages
Chat alanında gönderilen mesajlar.
Alanlar | |
---|---|
Document ID | String Belirli bir mesajın benzersiz kimliği. |
name | String Chat API'deki bir mesajın benzersiz adı. Chat API'deki mesajın kaynak adına karşılık gelir. |
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ı aşağıdaki gibi oluşturabilirsiniz:
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ızı adlandırın 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.
Region (Bölge) bölümünde, veritabanınız için
us-central1
gibi bir bölge belirtin. En iyi performans için Chat uygulamasının Cloud Functions ile 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 bir Firestore bölgesinin adını (ör.
us-central1
) yazın. En iyi performans için Chat uygulamasının Cloud Functions'iyle aynı veya yakın bir konum seçin.
Chat uygulamasını oluşturma ve dağıtma
Google Cloud projeniz oluşturulduğuna ve yapılandırıldığına göre Chat uygulamasını derleyip dağıtmaya hazırsınız. Bu bölümde aşağıdakileri yapacaksınız:
- İki Cloud Functions işlevi oluşturup dağıtın. Biri Chat etkileşim etkinliklerine, diğeri ise Pub/Sub etkinliklerine yanıt vermek için kullanılır.
- Google Chat API yapılandırma sayfasında bir Chat uygulaması oluşturup dağıtın.
Cloud Functions işlevini oluşturma ve dağıtma
Bu bölümde, şu adlara sahip iki Cloud Functions işlevi oluşturup dağıtacaksınız:
app
: Chat uygulamasının, Chat'ten HTTP isteği olarak alınan etkinliklere yanıt veren kodunu barındırır ve çalıştırır.eventsApp
: Pub/Sub'tan mesajlar gibi Chat alanı etkinliklerini alır ve işler.
Bu Cloud Functions işlevleri birlikte AI bilgi asistanı Chat uygulamasının uygulama mantığını oluşturur.
İsteğe bağlı olarak, Cloud Functions'ı oluşturmadan önce GitHub'da barındırılan örnek kodu inceleyip tanımanızı öneririz.
app
oluşturup dağıtın
Google Cloud konsolu
GitHub'dan kodu zip dosyası olarak indirin.
İndirilen ZIP dosyasını ayıklayın.
Çıkarılan klasör, Google Workspace örnekleri deposunun tamamını içerir.
Ayıklanan klasörde
google-chat-samples-main/node/ai-knowledge-assistant
dizine gidin.google-chat-samples/node/ai-knowledge-assistant
dizinine, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğinizclient_secrets.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ının kök dizini 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
client_secrets.json
package-lock.json
package.json
controllers/
model/
services/
test/
Google Cloud Console'da Menü > Cloud Functions'a gidin.
Chat uygulamanız için Google Cloud projesinin seçildiğinden emin olun.
İşlev Oluştur'u tıklayın.
İşlev oluştur sayfasında işlevinizi ayarlayın:
- Ortam bölümünde Cloud Run İşlevi'ni seçin.
- İşlev adı alanına
app
yazın. - Bölge'den
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 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ı alanında varsayılan metni silin ve
app
yazın.Kaynak kodu bölümünde Posta yüklemesi'ni seçin.
Hedef paket'te bir paket create veya seçin:
- Göz at'ı tıklayın.
- Paket seçin.
- Seç'i tıklayın.
Google Cloud, zip dosyasını yükleyip bu paketteki bileşen dosyalarını çıkarır. Cloud Functions, daha sonra bileşen dosyalarını Cloud Functions işlevine kopyalar.
Zip dosyası alanına, GitHub'dan indirdiğiniz, ayıklayıp yeniden sıkıştırdığınız zip dosyasını yükleyin:
- Göz at'ı tıklayın.
- Zip dosyasına gidip 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österilir: biri derleme, diğeri hizmet içindir. Her iki ilerleme göstergesi de kaybolup onay işaretiyle değiştirildiğinde işleviniz dağıtılmış ve kullanıma hazır demektir.
Sabit değerleri 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 kod bölümünde Satır içi düzenleyici'yi seçin.
- Satır içi düzenleyicide,
env.js
dosyasını açın ve düzenleyin:- project değerini Cloud projenizin kimliğine ayarlayın.
- location değerini Cloud Functions işlevinin bölgesi olarak ayarlayın (ör.
us-central1
).
Dağıt'ı tıklayın.
gcloud CLI
GitHub'dan kodu 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
dizinine, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğinizclient_secrets.json
dosyasını ekleyin.Ortam değişkenlerini ayarlamak için
env.js
dosyasını düzenleyin:- project değerini Cloud projenizin kimliğine ayarlayın.
- location değerini, Cloud Functions işlevinin bölgesine (ör.
us-central1
) ayarlayın.
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 (ör.us-central1
) eşleşecek şekilde Cloud Functions işlevinin bölge değeriyle değiştirin.
eventsApp
oluşturma ve dağıtma
Google Cloud konsolu
Google Cloud Console'da Menü > Cloud Functions'a gidin.
Chat uygulamanız için Google Cloud projesinin seçildiğinden emin olun.
İşlev Oluştur'u tıklayın.
İşlev oluştur sayfasında işlevinizi ayarlayın:
- Ortam'da Cloud Run İşlevi'ni seçin.
- İşlev adı alanına
eventsApp
yazın. - Bölge'den
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 konu adı, PROJECT Cloud proje kimliğinizin yer aldığı
projects/PROJECT/topics/events-api
biçimindedir. 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ünü Ver'i tıklayın.- İleri'yi tıklayın.
Çalışma zamanı'nda Node.js 20'yi seçin.
Giriş noktası'nda varsayılan metni silin ve
eventsApp
yazın.Kaynak kod bölümünde Cloud Storage'dan ZIP'i seçin.
Cloud Storage konumunda, Göz at'ı tıklayın.
app
Cloud Functions işlevini 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ı sayfası açılır ve işlevinizde üç ilerleme durumu göstergesi bulunur: biri derleme, diğeri hizmet ve diğeri tetikleyici için. Üç ilerleme göstergesinin tümü kaybolup onay işaretiyle değiştirildiğinde işleviniz dağıtılmış ve kullanıma hazır demektir.
Sabit değerleri 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 kod bölümünde Satır içi düzenleyici'yi seçin.
- Satır içi düzenleyicide,
env.js
dosyasını açın ve düzenleyin:- project değerini Cloud proje kimliğinize ayarlayın.
- location değerini Cloud Functions işlevinin bölgesi olarak ayarlayın (ör.
us-central1
).
Dağıt'ı tıklayın.
gcloud CLI
gcloud CLI'da, henüz orada değilseniz daha önce GitHub'dan klonladığınız bu AI bilgi asistanı Chat uygulamasının kodunu barındıran dizine geçin:
cd google-chat-samples/node/ai-knowledge-assistant
Kimlik doğrulama ve yetkilendirme için
google-chat-samples/node/ai-knowledge-assistant
dizinine, OAuth istemci kimliği kimlik bilgilerini oluşturduğunuzda indirdiğinizclient_secrets.json
dosyasını ekleyin.Ortam değişkenlerini ayarlamak için
env.js
dosyasını düzenleyin:- project değerini Cloud projenizin kimliğine ayarlayın.
- location değerini Cloud Functions işlevinin 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 (ör.us-central1
) eşleşecek şekilde Cloud Functions işlevinin bölge değeriyle değiştirin.
app
Cloud Functions işlevinin tetikleyici URL'sini kopyalayın
Google Cloud Console'da Chat uygulamasını yapılandırırken app
Cloud işlevinin tetikleyici URL'sini bir sonraki bölüme yapıştırın.
Google Cloud konsolu
Google Cloud konsolunda Menü > Cloud Functions'a gidin.
Cloud Functions listesinin Ad sütununda
app
simgesini tıklayın.Tetikle'yi tıklayın.
URL'yi kopyalayın.
gcloud CLI
app
Cloud Functions işlevini açıklayın:gcloud functions describe app
url
mülkünü kopyalayın.
Google Cloud Console'da Chat uygulamasını yapılandırma
Bu bölümde, Chat uygulamasının adı ve Chat etkileşim etkinliklerini gönderdiği Chat uygulamasının Cloud işlevinin tetikleyici URL'si dahil olmak üzere Chat uygulamanızla ilgili bilgilerle Google Cloud Console'da Chat API'nin nasıl yapılandırılacağı gösterilmektedir.
Google Cloud konsolunda Menü > Diğer ürünler > Google Workspace > Ürün Kitaplığı > Google Chat API > Yönet > Yapılandırma'yı tıklayın.
Uygulama adı alanına
AI knowledge assistant
yazın.Avatar URL'si alanına
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg
yazın.Açıklama alanına
Answers questions with AI
yazın.Etkileşimli özellikleri etkinleştir açma/kapatma düğmesini açık konuma getirin.
İşlevler bölümünde Alanlara ve grup görüşmelerine katıl'ı seçin.
Bağlantı ayarları bölümünde HTTP uç noktası URL'si'ni seçin.
HTTP uç nokta URL'si alanına,
https://
REGION-
PROJECT_ID.cloudfunctions.net/app
biçimindekiapp
Cloud Functions işlevindeki tetikleyici URL'yi yapıştırın. Burada REGION, Cloud Functions işlevinin bölgesidir (ör.us-central1
, PROJECT_ID ise oluşturduğunuz Cloud projesinin Proje Kimliği'dir).Görünürlük bölümünde, Bu Chat uygulamasını Workspace alanınızdaki belirli kişilere ve gruplara sun'u seçin ve e-posta adresinizi girin.
Dilerseniz Günlükler bölümünde Hataları günlüğe kaydet'i seçebilirsiniz.
Kaydet'i tıklayın. Bir yapılandırma kaydedilmiş mesajı görünür. Bu, Chat uygulamasının teste 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, mesaj içeren bir Chat alanında yapay zeka bilgi asistanı Chat uygulamasını test edin.
Yapay zeka bilgi asistanı Chat uygulamasını test etmenin birkaç yolu:
- Yapay zeka bilgi asistanı Chat uygulamasını mevcut bir Chat alanına ekleyin ve bu alanla alakalı sorular sorun.
- Bir Chat alanı oluşturun ve veri kaynağı olarak kullanmak için birkaç mesaj yayınlayın. Mesajlar, Gemini'dan
Answer 20 common onboarding questions employees ask their teams.
gibi bir istemle alınabilir. Dilerseniz Chat ile geliştirmeye genel bakış rehberindeki birkaç paragrafı yapıştırıp sorular da sorabilirsiniz.
Bu eğitimde, bir Chat alanı oluşturacağız ve Chat ile geliştirmeye genel bakış kılavuzundaki birkaç paragrafı bu alana yapıştıracağız.
Google Chat'i açın.
Chat alanı oluşturma:
> Alan oluştur'u tıklayın.
Yeni SohbetAlan adı alanına
Testing AI knowledge assistant app
yazın.Bu alan ne için? 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 iletileri ekleyin:
Bir web tarayıcısında, Chat ile geliştirmeye genel bakış kılavuzunu ziyaret edin.
Kılavuzun içeriğini kopyalayıp oluşturduğunuz Chat alanına yapıştırın.
Yapay zeka bilgi asistanı Chat uygulamasını ekleyin:
Mesaj oluşturma çubuğuna
@AI knowledge assistant
yazın ve görünen öneri menüsünde yapay zeka bilgi asistanı Chat uygulamasını seçipenter
tuşuna basın.Yapay zeka bilgi asistanı Chat uygulamasını alana 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 yetkilendirmeyi yapılandırmanız gerekir:
- Configure (Yapılandır) seçeneğini tıklayın.
- Bir Google Hesabı seçmenizi isteyen yeni bir tarayıcı penceresi veya sekmesi açılır. Test için kullanacağınız hesabı seçin.
- Yapay zeka bilgi asistanının Chat uygulamasının istediği izinleri inceleyin. İzin vermek için İzin ver'i tıklayın.
You may close this page now.
yazan bir mesaj görünüyor. Tarayıcı penceresini veya sekmesini kapatıp sohbet alanına dönün.
Bir soru sorun:
Mesaj yazma çubuğuna
What are Google Chat apps?
gibi bir soru yazınYapay zeka bilgi asistanı Chat uygulaması yanıtları.
Yanıt doğru veya yeterli değilse yapay zekanın ileti dizisi geçmişinin iyileştirilmesine yardımcı olmak için isteğe bağlı olarak
Yardım al'ı tıklayın. Yapay zeka bilgi asistanı Chat uygulaması, alan yöneticisinden bahseder ve soruyu yanıtlamasını ister. Bir dahaki sefere yapay zeka bilgi asistanı Chat uygulaması yanıtı bilecektir.
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ğrısı
Bu eğitimde, Chat uygulaması bir soruyu her yanıtladığında Chat API ile Message
kaynağındaki list
yönteminin çağrılmasına kıyasla performansı artırdığı 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 kotası sınırlarını aşmasına neden olabilir.
Ancak bir Chat alanının görüşme geçmişi çok uzun olursa Firestore'u kullanmak maliyetli olabilir.
Cloud Storage , Firestore'a alternatiftir. AI 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 Gemini ile tek seferde Vertex AI'a gönderilebilmesidir. Ancak dezavantajı, Cloud Storage'da bir nesneye ekleme işlemi yerine bu nesneyi değiştirmek yerine sohbet geçmişinin güncellenmesi için daha fazla çalışma yapılmasıdır. Mesaj geçmişini düzenli olarak güncelliyorsanız bu yaklaşım mantıklı olmayacaktır. Ancak mesaj geçmişini düzenli aralıklarla (örneğin, haftada bir kez) toplu olarak güncellemeniz önerilir.
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ç verir. Örneğin, kart mesajı görünmeyebilir.
Chat kullanıcı arayüzünde hata mesajı görüntülenmeyebilir. Ancak Chat uygulamaları için hata günlük kaydı etkinleştirildiğinde hataları düzeltmenize yardımcı olmak amacıyla açıklayıcı hata mesajları ve günlük verileri sunulur. Hataları görüntüleme, hata ayıklama ve düzeltme hakkında yardım için Google Chat hatalarını giderme başlıklı makaleyi inceleyin.
Temizleme
Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız Cloud projesini silmenizi öneririz.
- Google Cloud konsolunda Kaynakları yönetin sayfasına gidin. Menü > IAM ve Yönetici > Kaynakları Yönet'i tıklayın.
- Proje listesinde, silmek istediğiniz projeyi seçin ve ardından Sil simgesini tıklayın.
- İletişim kutusuna proje kimliğini yazın ve 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