Gemini AI Chat uygulamasıyla Chat görüşmelerine dayalı soruları yanıtlama

Bu eğiticide, Chat alanlarındaki görüşmelere dayalı olarak soruları yanıtlayan bir Google Chat uygulamasının nasıl oluşturulacağı gösterilmektedir. Chat uygulaması, Chat alanlarında yayınlanan soruları, bahsedilmediğinde bile gerçek zamanlı olarak tanımak ve yanıtlamak için Google Workspace Etkinlikleri API'si ile 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 cevap paylaşır. Yanıt bulunamazsa, yanıt veremeyeceği anlamına gelir. Kullanıcılar her yanıtta bir alan yöneticisinden @bahsetmek ve yanıt almak için aksesuar işlem düğmesini tıklayabilir. Google Chat uygulaması, Gemini AI'ı kullanarak, eklendiği alanlarda sürekli görüşmelere dayalı eğitimler yürütürken bilgi tabanını uyarlayıp büyütüyor.

Çalışanlar için ilk katılım ve destek alanlarında Chat uygulamasının işleyiş şekli şöyledir:

  • Yapay zeka destekli bilgi asistanı uygulamasından bahsedildiğinde bu uygulama bir alana eklenir.
    Şekil 1. Charlie, yapay zeka bilgi asistanı Chat uygulamasını bir Chat alanına ekliyor.
  • Dana soru soruyor.
    Şekil 2. Dana, şirketin topluluk önünde konuşma eğitimi sunup sunmadığını soruyor.
  • Yapay zeka destekli bilgi asistanı Chat uygulaması soruyu yanıtlar.
    Şekil 3. Yapay zeka bilgi asistanı Chat uygulaması, Vertex AI'dan Gemini ile Dana'nın sorusuna Chat alanının sohbet geçmişine dayanarak yanıt vermesini istiyor ve ardından yanıtı paylaşıyor.

Ön koşullar

Hedefler

  • Chat alanındaki görüşmelerde 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ında devam eden görüşmelerden sürekli olarak yeni şeyler öğrenebilirsiniz.
  • Chat uygulaması doğrudan mesaj gönderilmediğinde bile Chat alanındaki mesajları gerçek zamanlı olarak dinleyip yanıtlayın.
  • Mesajları bir Firestore veritabanına yazıp bu veritabanından okuyarak kalıcı hale getirin.
  • Yanıt bulamadığınız sorular olduğunda alan yöneticilerinden bahsederek Chat alanında ortak çalışmayı kolaylaştırın.

Mimari

Aşağıdaki şemada, AI bilgi yardımcısı Chat uygulaması tarafından kullanılan Google Workspace ve Google Cloud kaynaklarının mimarisi gösterilmektedir.

Yapay zeka bilgi asistanı Chat uygulamasının mimari şeması

Yapay zeka bilgi asistanı Chat uygulaması şu şekilde çalışır:

  • Bir kullanıcı, yapay zeka bilgi asistanı Chat uygulamasını bir Chat alanına ekler:

    1. Chat uygulaması, uygulamayı Chat alanına ekleyen kullanıcıdan kimlik doğrulama ve yetkilendirmeyi yapılandırmasını ister.

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

    3. Chat uygulaması, alandaki mesajlar gibi etkinlikleri izlemeye başlamak için Google Workspace Etkinlikleri API'sinde 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.

    4. Chat uygulaması, alanda bir tanıtım mesajı yayınlar.

  • Chat alanındaki bir kullanıcı mesaj yayınlar:

    1. Chat uygulaması, mesajı Pub/Sub konusundan gerçek zamanlı olarak alır.

    2. Chat uygulaması, mesajı Firestore veritabanına ekler.

      Bir kullanıcı daha sonra mesajı düzenler veya silerse Chat uygulaması, güncellenen veya silinen etkinliği gerçek zamanlı olarak alır ve ardından Firestore veritabanındaki mesajı günceller veya siler.

    3. Chat uygulaması, mesajı Gemini ile Vertex AI'a gönderir:

      1. İstem, Gemini ile Vertex AI'a mesajın soru içerip içermediğini kontrol etmesini söyler. Yanıtlanırsa Gemini, soruyu, Firestore'da saklanan Chat alanının mesaj geçmişine ve Google Chat uygulamasına göre yanıtlar. Ardından mesajı Chat alanına gönderir. Yoksa yanıt vermeyin.

      2. Gemini Destekli Vertex AI soruya cevap verirse Chat uygulaması, uygulama kimlik doğrulamasını kullanarak Chat API'de spaces.messages.create yöntemini çağırarak yanıtı yayınlar.

        Gemini Destekli Vertex AI soruyu yanıtlayamazsa Chat uygulaması, Chat alanının geçmişinde bu sorunun cevabının bulunamadığını belirten bir mesaj yayınlar.

        Mesajlarda her zaman kullanıcıların tıklayabileceği bir aksesuar işlem düğmesi bulunur. Bu düğme, Chat uygulamasının bir alan yöneticisinden @bahsederek yanıt vermesini ister.

  • Chat uygulaması, Google Workspace Etkinlikler API'sinden Chat alanı aboneliğinin süresinin dolmak üzere olduğuna dair bir yaşam döngüsü bildirimi alır:

    1. Chat uygulaması, Google Workspace Etkinlikleri API'sinde subscriptions.patch yöntemini çağırarak aboneliği yenileme isteği gönderir.
  • Chat uygulaması bir Chat alanından kaldırılır:

    1. Chat uygulaması, Google Workspace Etkinlikleri API'sinde subscriptions.delete yöntemini çağırarak aboneliği siler.

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

  • Gemini ile Vertex AI API: Gemini tarafından desteklenen ü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. AI bilgi asistanı Chat uygulaması Chat API'yi kullanarak:
    • Chat tarafından gönderilen etkileşim etkinliklerini alabilir ve yanıtlayabilirsiniz.
    • Bir alanda gönderilen mesajları listeleme.
    • Bir alanda kullanıcı sorularına verilen yanıtları yayınlayın.
    • Ad ve avatar resmi gibi, Chat'te nasıl görüneceğini belirleyen özellikleri yapılandırın.
  • Google Workspace Etkinlikleri API'si: Bu API, Google Workspace uygulamalarındaki etkinliklere abone olmanızı ve değişiklik bildirimlerini yönetmenizi sağlar. AI bilgi asistanı Chat uygulaması, Chat alanında yayınlanan mesajları dinleyerek kendisinden bahsedilmediğinde bile soruları algılayıp yanıtlayabilir.
  • Firestore: Sunucusuz belge veritabanı. AI bilgi asistanı Chat uygulaması, bir Chat alanında gönderilen mesajlarla ilgili verileri depolamak için Firestore'u kullanır.
  • Pub/Sub: Pub/Sub, bu mesajları işleyen hizmetlerden mesaj üreten hizmetleri ayıran, eşzamansız ve ölçeklenebilir bir mesajlaşma hizmetidir. AI 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 etkinlik odaklı mimariler oluşturmanıza olanak tanır. AI bilgi asistanı Chat uygulaması, etkinlikleri Pub/Sub'dan Chat alanına ve abonelik etkinliklerini alıp işleyen Cloud Functions işlevine yönlendirmek için Eventarc'ı kullanır.
  • Cloud Functions: Bir sunucuyu veya çalışma zamanı ortamını yönetme gereği olmadan Chat etkileşimine ve abonelik etkinliklerine yanıt verebilen tek amaçlı, bağımsız işlevler oluşturmanızı sağlayan hafif, sunucusuz bilgi işlem hizmetidir. AI bilgi asistanı Chat uygulaması, şu adlara sahip iki Cloud Functions işlevi kullanır:
    • app: Chat'in bu etkinlikleri işleyen ve bunlara yanıt veren mantığı çalıştırmak için işlem platformu olarak ve işlem platformu olarak etkileşim etkinlikleri gönderdiği HTTP uç noktasını barındırın.
    • eventsApp: Pub/Sub aboneliğinden mesajlar gibi Chat alanı etkinliklerini alır ve işler.
    Cloud Functions, işlem kaynakları oluşturmak ve barındırmak için aşağıdaki Google Cloud ürünlerini kullanır:
    • Cloud Build: Otomatik derlemeler çalıştıran, tümüyle yönetilen 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 Console

  1. Google Cloud konsolunda Menü > IAM ve Yönetici > Proje oluştur'a gidin.

    Proje Oluşturma bölümüne git

  2. Proje Adı alanına projeniz için açıklayıcı bir ad girin.

    İsteğe bağlı: Proje Kimliği'ni düzenlemek için Düzenle'yi tıklayın. Proje kimliği, proje oluşturulduktan sonra değiştirilemez. Bu nedenle, projenin ömrü boyunca ihtiyaçlarınızı karşılayan bir kimlik seçin.

  3. Konum alanında projeniz için potansiyel konumları görüntülemek üzere Göz at'ı tıklayın. Ardından Seç'i tıklayın.
  4. Create'i (Oluştur) 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: Halihazırda gcloud KSA bulunan bir online terminal kullanmak için Cloud Shell'i etkinleştirin.
    Cloud Shell'i etkinleştir
  • Yerel Kabuk: Yerel bir geliştirme ortamı kullanmak için gcloud KSA'yı yükleyin ve initialize.
    Bulut projesi oluşturmak için "gcloud projects create" komutunu kullanın:
    gcloud projects create PROJECT_ID
    Oluşturmak istediğiniz projenin kimliğini ayarlayarak PROJECT_ID komutunu değiştirin.

Cloud projesi için faturalandırmayı etkinleştirin

Google Cloud Console

  1. Google Cloud konsolunda Faturalandırma'ya gidin. Menü > Faturalandırma > Projelerim'i tıklayın.

    Projelerim için Faturalandırma sayfasına git

  2. Kuruluş seçin bölümünde Google Cloud projenizle ilişkili kuruluşu seçin.
  3. 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.
  4. Hesap belirle'yi tıklayın.

gcloud CLI

  1. Kullanılabilir faturalandırma hesaplarını listelemek için şu komutu çalıştırın:
    gcloud billing accounts list
  2. 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 Console

  1. Google Cloud konsolunda 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 etkinleştirme

  2. API'leri doğru Cloud projesinde etkinleştirdiğinizi onaylayın ve İleri'yi tıklayın.

  3. Doğru API'leri etkinleştirmekte olduğunuzu onaylayın ve Etkinleştir'i tıklayın.

gcloud CLI

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

  2. 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 yetkilendirmeyi ayarlama

Kimlik doğrulama ve yetkilendirme, Chat uygulamasının Google Workspace ve Google Cloud'daki kaynaklara erişmesini sağlar.

Bu eğiticide, Google Chat uygulamasını dahili olarak yayınlayacaksınız. Dolayısıyla yer tutucu bilgilerinin kullanılması sorun yaratmaz. Google Chat uygulamasını harici olarak yayınlamadan önce yer tutucu bilgileri izin ekranındaki gerçek bilgilerle değiştirin.

  1. Google Cloud konsolunda Menü > API'ler ve Hizmetler > OAuth izin ekranı'na gidin.

    OAuth izin ekranına gidin

  2. Kullanıcı türü bölümünde, Dahili'yi seçin ve Oluştur'u tıklayın.

  3. Uygulama adı alanına AI knowledge assistant yazın.

  4. Kullanıcı destek e-postası alanında e-posta adresinizi veya uygun bir Google grubunu seçin.

  5. Geliştirici iletişim bilgileri altında e-posta adresinizi girin.

  6. Kaydet ve Devam Et'i tıklayın.

  7. Kapsam Ekle veya Kaldır'ı tıklayın. Cloud projenizde etkinleştirdiğiniz her API için kapsam listesinin bulunduğu bir panel görünür.

  8. Kapsamları manuel olarak ekle bölümüne aşağıdaki kapsamı yapıştırın:

    • https://www.googleapis.com/auth/chat.messages
  9. Tabloya Ekle'yi tıklayın.

  10. Güncelle'yi tıklayın.

  11. Kaydet ve Devam Et'i tıklayın.

  12. Uygulama kaydı özetini inceleyin, ardından Kontrol Paneline Dön'ü tıklayın.

OAuth istemci kimliği kimlik bilgileri oluştur

  1. Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin.

    Kimlik Bilgileri'ne git

  2. Kimlik Bilgileri Oluştur > OAuth istemci kimliği'ni tıklayın.

  3. Uygulama türü > Web uygulaması'nı tıklayın.

  4. Ad alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.

  5. Yetkilendirilmiş yönlendirme URI'leri altında URI ekle'yi tıklayın.

  6. URIs 1'de aşağıdakileri yazın:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    Aşağıdakini değiştirin:

    • REGION: Cloud Functions işlevinin bölgesi (ör. us-central1). Daha sonra iki Cloud Functions işlevi oluşturduğunuzda, bu işlevlerin bölgelerini bu değere ayarlamanız gerekir.
    • PROJECT_ID: Oluşturduğunuz Cloud projesinin Proje Kimliği.
  7. Create'i (Oluştur) tıklayın.

  8. OAuth istemcisi oluşturuldu penceresinde, JSON dosyasını indir'i tıklayın.

  9. İndirilen dosyayı client_secrets.json olarak kaydedin. Daha sonra iki Cloud Functions işlevi oluşturduğunuzda her dağıtıma client_secrets.json dosyasını eklersiniz.

  10. OK (Tamam) seçeneğini tıklayın.

Pub/Sub konusu oluşturma

Pub/Sub konusu, bir Chat alanında mesajlar gibi etkinliklere abone olmak ve Chat uygulamasını gerçek zamanlı olarak bilgilendirmek için Google Workspace Etkinlikleri API'siyle birlikte çalışır.

Pub/Sub konusunu oluşturmak için aşağıdaki adımları uygulayın:

Google Cloud Console

  1. Google Cloud konsolunda Menü > Pub/Sub'a gidin.

    Pub/Sub'a git

  2. Konu Oluştur'u tıklayın.

  3. Konu Kimliği alanına events-api yazın.

  4. Varsayılan abonelik ekle'nin seçimini kaldırın.

  5. Şifreleme altında, Google tarafından yönetilen şifreleme anahtarı'nı seçin.

  6. Create'i (Oluştur) tıklayın. Pub/Sub konusu görünür.

  7. Bu Pub/Sub konusu ve Google Workspace Etkinlikleri API'sinin birlikte çalışması için Chat IAM kullanıcısına Pub/Sub konusuna yayın yapma izni verin:

    1. events-api panelindeki İZİNLER bölümünde Ana Hesap Ekle'yi tıklayın.

    2. Ana hesap ekle bölümünde Yeni ana hesaplar alanına chat-api-push@system.gserviceaccount.com yazın.

    3. Rol atama bölümünde Bir rol seçin bölümünde Pub/Sub > Pub/Sub Yayıncısı'nı seçin.

    4. Kaydet'i tıklayın.

gcloud CLI

  1. events-api konu kimliğine sahip bir Pub/Sub konusu oluşturun:

    gcloud pubsub topics create events-api
    
  2. 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ı oluşturma

Chat alanlarından mesajlar gibi verileri kalıcı olarak alıp getirir. Örnek kodda model/message.js ve services/firestore-service.js dosyaları tarafından dolaylı olarak ayarlanan veri modelini tanımlamazsınız.

AI bilgi yardımcısı Chat uygulama veritabanı, koleksiyonlar halinde düzenlenmiş belgelerine dayalı bir NoSQL veri modeli kullanır. Daha fazla bilgi edinmek için Firestore veri modeli bölümüne bakın.

Aşağıdaki şemada, AI bilgi asistanının Chat uygulamasının veri modeline genel bir bakış sunulmaktadır:

Firestore veritabanının veri modeli.

Kök, iki koleksiyon içerir:

  1. spaces olarak ayarlanır. Burada her doküman, Chat uygulamasının eklendiği bir Chat alanını temsil eder. Her mesaj, messages alt koleksiyonunda bir belgeyle temsil edilir.

  2. users etiketindeki her bir 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 destekli bilgi asistanı Chat uygulamasının yer aldığı bir Chat alanı.

Alanlar
Document IDString
Belirli bir alanın benzersiz kimliği. Alanın Chat API'deki kaynak adının bir parçasıdır.
messagesSubcollection of Documents (messages)
Chat alanında gönderilen mesajlar. Firebase'deki message öğesinin Document ID değerine karşılık gelir.
spaceNameString
Chat API'deki alanın benzersiz adı. Alanın Chat API'deki kaynak adına karşılık gelir.

messages

Chat alanında gönderilen mesajlar.

Alanlar
Document IDString
Belirli bir mesajın benzersiz kimliği.
nameString
Chat API'deki mesajın benzersiz adı. İletinin Chat API'deki kaynak adına karşılık gelir.
textString
İletinin metin gövdesi.
timeString (Timestamp format)
Mesajın oluşturulduğu saat.

users

Yapay zeka destekli bilgi asistanı Chat uygulamasını bir Chat alanına ekleyen kullanıcılar

Alanlar
Document IDString
Belirli bir kullanıcının benzersiz kimliği.
accessTokenString
Google Workspace API'lerini çağırmak için kullanılan, OAuth 2.0 kullanıcı yetkilendirmesi sırasında verilen erişim jetonu.
refreshTokenString
OAuth 2.0 kullanıcı yetkilendirmesi sırasında verilen yenileme jetonu.

Firestore veritabanını oluşturmak için aşağıdaki adımları uygulayın:

Google Cloud Console

  1. Google Cloud konsolunda Menü > Firestore'a gidin.

    Firestore'a git

  2. Create database'i (Veritabanı oluştur) tıklayın.

  3. Firestore modunuzu seçin'de Yerel mod'u tıklayın.

  4. Devam'ı tıklayın.

  5. Veritabanını yapılandırın:

    1. Veritabanınızı adlandırın bölümünde Veritabanı Kimliği'ni (default) olarak bırakın.

    2. Konum türü altında Bölge'yi seçin.

    3. Bölge'de 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.

  6. Create database'i (Veritabanı oluştur) tıklayın.

gcloud CLI

  • Native mode'da bir Firestore veritabanı oluşturun:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native
    

    LOCATION kısmını us-central1 gibi bir Firestore bölgesinin adıyla değiştirin. En iyi performans için Chat uygulamasının Cloud Functions'ı ile aynı konumu 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ı derleyip dağıtmaya hazırsınız. Bu bölümde şunları yapacaksınız:

  1. İki Cloud Functions işlevi oluşturup dağıtın. Biri Chat etkileşim etkinliklerine, diğeri Pub/Sub etkinliklerine yanıt vermek için kullanılır.
  2. Google Chat API yapılandırma sayfasında bir Chat uygulaması oluşturup dağıtın.

Cloud Functions işlevleri oluşturma ve dağıtma

Bu bölümde, şu adla iki Cloud Functions işlevi oluşturup dağıtacaksınız:

  • app: Chat'ten alınan etkinlikleri HTTP istekleri olarak yanıtlayan Chat uygulamasının kodunu barındırır ve çalıştırır.
  • eventsApp: Pub/Sub'dan mesajlar gibi Chat alanı etkinliklerini alır ve işler.

Bu Cloud Functions, AI bilgi yardımcısı Chat uygulamasının uygulama mantığını birlikte oluşturur.

İsteğe bağlı olarak, Cloud Functions işlevleri oluşturmadan önce GitHub'da barındırılan örnek kodu gözden geçirmek ve bu kodu yakından tanımak için birkaç dakikanızı ayırın.

GitHub'da göster

app oluşturun ve dağıtın

Google Cloud Console

  1. Kodu GitHub'dan bir zip dosyası olarak indirin.

    Zip dosyasını indirme

  2. İndirilen ZIP dosyasını çıkarın.

    Çıkarılan klasör, Google Workspace örnek deposunun tamamını içerir.

  3. Çıkarılan klasörde google-chat-samples-main/node/ai-knowledge-assistant dizinine gidin.

  4. Kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgilerini oluştururken indirdiğiniz client_secrets.json dosyasını google-chat-samples/node/ai-knowledge-assistant dizinine ekleyin.

  5. ai-knowledge-assistant klasörünün içindekileri bir zip dosyasında sıkıştırın.

    Zip dosyasının kök dizini şu 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/
  6. Google Cloud konsolunda Menü > Cloud Functions'a gidin.

    Cloud Functions'a gidin

    Chat uygulamanız için Google Cloud projesinin seçildiğinden emin olun.

  7. İşlev Oluştur'u tıklayın.

  8. İşlev oluştur sayfasında işlevinizi ayarlayın:

    1. Ortam'da 2. nesil'i seçin.
    2. İşlev adı alanına app yazın.
    3. 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 bilgilerini oluştururken yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir.
    4. Tetikleyici türü'nde HTTPS'yi seçin.
    5. Kimlik Doğrulama altında, Kimliği doğrulanmayan çağrılara izin ver'i seçin.
    6. İleri'yi tıklayın.
  9. Çalışma zamanı bölümünde Node.js 20'yi seçin.

  10. Giriş noktası bölümünde varsayılan metni silin ve app değerini girin.

  11. Kaynak kodu bölümünde Zip yükleme'yi seçin.

  12. Hedef paket bölümünde bir paket oluşturun veya seçin:

    1. Göz at'ı tıklayın.
    2. Bir paket seçin.
    3. Select'i (Seç) tıklayın.

    Google Cloud, zip dosyasını yükler ve bu paketteki bileşen dosyalarını çıkarır. Cloud Functions daha sonra bileşen dosyalarını Cloud Functions işlevine kopyalar.

  13. GitHub'dan indirdiğiniz, çıkarttığınız ve yeniden sıkıştırdığınız zip dosyasını Zip dosyası'na yükleyin:

    1. Göz at'ı tıklayın.
    2. ZIP dosyasına gidin ve dosyayı seçin.
    3. 'ı tıklayın.
  14. Deploy'u (Dağıt) tıklayın.

    Cloud Functions ayrıntıları sayfası açılır ve işleviniz, biri derleme, diğeri hizmet için olmak üzere iki ilerleme durumu göstergesiyle birlikte görüntülenir. Her iki ilerleme göstergesi de kaybolup onay işaretiyle değiştirildiğinde, işleviniz dağıtılmış ve hazır hale gelir.

  15. Örnek kodu sabit değerler belirleyecek şekilde düzenleyin:

    1. Cloud Functions işlevi ayrıntıları sayfasında Düzenle'yi tıklayın.
    2. İleri'yi tıklayın.
    3. Kaynak kodu bölümünde Satır içi düzenleyici'yi seçin.
    4. Satır içi düzenleyicide env.js dosyasını açıp düzenleyin:
      1. project değerini Cloud projesi kimliğinize ayarlayın.
      2. location değerini Cloud Functions işlevinin bölgesine (ör. us-central1) ayarlayın.
  16. Deploy'u (Dağıt) tıklayın.

gcloud CLI

  1. GitHub'daki kodu klonlayın:

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. Bu yapay zeka bilgi asistanı Chat uygulamasının kodunun bulunduğu dizine geçin:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. Kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgilerini oluştururken indirdiğiniz client_secrets.json dosyasını google-chat-samples/node/ai-knowledge-assistant dizinine ekleyin.

  4. Ortam değişkenlerini ayarlamak için env.js dosyasını düzenleyin:

    1. project değerini Cloud projesi kimliğiniz olarak ayarlayın.
    2. location değerini Cloud Functions işlevinin bölgesine (ör. us-central1) ayarlayın.
  5. 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
    

    env.js dosyasındaki us-central1 gibi bir kümeyle eşleştirmek için REGION değerini Cloud Functions işlevinin bölge değeriyle değiştirin.

eventsApp oluşturun ve dağıtın

Google Cloud Console

  1. Google Cloud konsolunda Menü > Cloud Functions'a gidin.

    Cloud Functions'a gidin

    Chat uygulamanız için Google Cloud projesinin seçildiğinden emin olun.

  2. İşlev Oluştur'u tıklayın.

  3. İşlev oluştur sayfasında işlevinizi ayarlayın:

    1. Ortam'da 2. nesil'i seçin.
    2. İşlev adı alanına eventsApp yazın.
    3. 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 bilgilerini oluştururken yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir.
    4. Tetikleyici türü'nde Cloud Pub/Sub'ı seçin.
    5. Cloud Pub/Sub konusunda, oluşturduğunuz Pub/Sub konu adını seçin. Konu adı projects/PROJECT/topics/events-api biçimindedir. Burada PROJECT, Cloud proje kimliğinizdir.
    6. 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.
    7. İleri'yi tıklayın.
  4. Çalışma zamanı bölümünde Node.js 20'yi seçin.

  5. Giriş noktası bölümünde varsayılan metni silin ve eventsApp değerini girin.

  6. Kaynak kodu bölümünde, Cloud Storage'dan posta kodu'nu seçin.

  7. Cloud Storage konumu bölümünde Browse'u (Göz at) tıklayın.

  8. app Cloud Functions işlevini oluştururken zip dosyasını yüklediğiniz paketi seçin.

  9. Yüklediğiniz zip dosyasını tıklayın.

  10. Select'i (Seç) tıklayın.

  11. Deploy'u (Dağıt) tıklayın.

    Cloud Functions ayrıntıları sayfası açılır ve işleviniz için üç ilerleme göstergesi gösterilir: biri derleme, diğeri hizmet ve diğeri tetikleyici. Üç ilerleme göstergesinin tümü kaybolup onay işaretiyle değiştirildiğinde işleviniz dağıtılmış ve hazır hale gelir.

  12. Örnek kodu sabit değerler belirleyecek şekilde düzenleyin:

    1. Cloud Functions işlevi ayrıntıları sayfasında Düzenle'yi tıklayın.
    2. İleri'yi tıklayın.
    3. Kaynak kodu bölümünde Satır içi düzenleyici'yi seçin.
    4. Satır içi düzenleyicide env.js dosyasını açıp düzenleyin:
      1. project değerini Cloud projesi kimliğinize ayarlayın.
      2. location değerini Cloud Functions işlevinin bölgesine (ör. us-central1) ayarlayın.
  13. Deploy'u (Dağıt) tıklayın.

gcloud CLI

  1. gcloud KSA'da, henüz orada değilseniz daha önce GitHub'dan klonladığınız bu AI bilgi asistanı Chat uygulamasının kodunun bulunduğu dizine geçin:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. Kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgilerini oluştururken indirdiğiniz client_secrets.json dosyasını google-chat-samples/node/ai-knowledge-assistant dizinine ekleyin.

  3. Ortam değişkenlerini ayarlamak için env.js dosyasını düzenleyin:

    1. project değerini Cloud projesi kimliğiniz olarak ayarlayın.
    2. location değerini Cloud Functions işlevinin bölgesine (ör. us-central1) ayarlayın.
  4. 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
    

    env.js dosyasındaki us-central1 gibi bir kümeyle eşleştirmek için REGION değerini 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 bir sonraki bölüme app Cloud Functions işlevinin tetikleyici URL'sini yapıştıracaksınız.

Google Cloud Console

  1. Google Cloud konsolunda Menü > Cloud Functions'a gidin.

    Cloud Functions'a gidin

  2. Cloud Functions listesinin Ad sütununda app simgesini tıklayın.

  3. Tetikleyici'yi tıklayın.

  4. URL'yi kopyalayın.

gcloud CLI

  1. app Cloud Functions işlevini açıklayın:

    gcloud functions describe app
    
  2. url özelliğini 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 Functions işlevinin tetikleyici URL'si de dahil olmak üzere Chat uygulamanızla ilgili bilgilerle Google Cloud Console'daki Chat API'yi nasıl yapılandıracağınız gösterilmektedir.

  1. Google Cloud Console'da Menü > Diğer ürünler > Google Workspace > Ürün Kitaplığı > Google Chat API > Yönet > Yapılandırma'yı tıklayın.

    Chat API yapılandırmasına git

  2. Uygulama adı alanına AI knowledge assistant yazın.

  3. Avatar URL'si alanına https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg yazın.

  4. Açıklama alanına Answers questions with AI yazın.

  5. Etkileşimli özellikleri etkinleştir düğmesini açık konuma getirin.

  6. İşlevler bölümünde Alanlara ve grup görüşmelerine katıl'ı seçin.

  7. Bağlantı ayarları bölümünde Uygulama URL'si'ni seçin.

  8. Uygulama URL'si alanına Tetikleyici URL'sini app Cloud Functions işlevinden https://REGION-PROJECT_ID.cloudfunctions.net/app şeklinde biçimlendirilmiş olarak yapıştırın. Burada REGION, Cloud Functions'ın bulunduğu bölgedir. Örneğin us-central1, PROJECT_ID oluşturduğunuz Cloud projesinin Proje Kimliğidir.

  9. Görünürlük bölümünde, Bu Chat uygulamasını Workspace alanınızdaki belirli kişiler ve gruplar tarafından kullanılabilir yap'ı seçip e-posta adresinizi girin.

  10. İsterseniz Günlükler bölümünde Hataları Logging'e kaydet'i seçin.

  11. Kaydet'i tıklayın. Yapılandırmanın kaydedildiği bir mesaj görünür. Bu, Chat uygulamasının teste hazır olduğu anlamına gelir.

Chat uygulamasını test etme

Chat alanında mesajlar içeren yapay zeka bilgi asistanı Chat uygulamasının yanıt verebileceği sorular sorarak yapay zeka bilgi asistanı Chat uygulamasını test edin.

Yapay zeka bilgi asistanı Chat uygulamasını test etmenin birkaç yolu vardır:

  • AI bilgi asistanı Chat uygulamasını mevcut bir Chat alanına ekleyip bu alanla alakalı sorular sorun.
  • Bir Chat alanı oluşturun ve veri kaynağı olarak kullanmak üzere birkaç mesaj yayınlayın. Mesajlar Gemini'dan şunun gibi bir istemle alınabilir: Answer 20 common onboarding questions employees ask their teams. Dilerseniz Chat ile geliştirme özelliğine genel bakış kılavuzundaki birkaç paragrafı yapıştırıp bununla ilgili sorular da sorabilirsiniz.

Bu eğiticide, Chat alanı oluşturup Chat ile geliştirmeye genel bakış kılavuzundaki birkaç paragrafı yapıştıralım.

  1. Google Chat'i açın.

    Google Chat'e gidin

  2. Chat alanı oluşturma:

    1. Yeni Chat > Alan oluştur'u tıklayın.

    2. Alan adı alanına Testing AI knowledge assistant app yazın.

    3. Bu alan ne için kullanılıyor? bölümünde Ortak çalışma'yı seçin.

    4. Erişim ayarları bölümünde, alana kimlerin erişebileceğini seçin.

    5. Create'i (Oluştur) tıklayın.

  3. Veri kaynağı olarak kullanılacak iletileri ekleyin:

    1. Bir web tarayıcısında, Chat ile geliştirme özelliğine genel bakış kılavuzunu ziyaret edin.

    2. Rehberin içeriğini kopyalayıp oluşturduğunuz Chat alanına yapıştırın.

  4. Yapay zeka bilgi asistanı Chat uygulamasını ekleyin:

    1. Mesaj oluşturma çubuğuna @AI knowledge assistant yazın ve görüntülenen öneri menüsünde AI bilgi asistanı Sohbet uygulamasını seçin ve enter tuşuna basın.

    2. Yapay zeka bilgi asistanı Chat uygulamasını alana eklemek isteyip istemediğinizi soran bir mesaj gösterilir. Alana ekle'yi tıklayın.

    3. Chat uygulamasını bir alana ilk kez ekliyorsanız Chat uygulaması için kimlik doğrulama ve yetkilendirmeyi yapılandırmanız gerekir:

      1. Configure (Yapılandır) seçeneğini tıklayın.
      2. Google Hesabı seçmenizi isteyen yeni bir tarayıcı penceresi veya sekmesi açılır. Test ettiğiniz hesabı seçin.
      3. Chat uygulamasının istediği izinleri inceleyin. İzin vermek için İzin ver'i tıklayın.
      4. You may close this page now. yazan bir mesaj görünür. Tarayıcı penceresini veya sekmeyi kapatıp Chat alanına dönün.
  5. Bir soru sorun:

    1. Mesaj oluşturma çubuğuna What are Google Chat apps? gibi bir soru yazın

    2. Yapay zeka destekli bilgi asistanı Chat uygulaması cevap verir.

    3. İsteğe bağlı olarak, yanıt doğru veya yeterli değilse yapay zekanın görüşme geçmişinin iyileştirilmesine yardımcı olmak için Yardım al'ı tıklayın. Yapay zeka bilgi asistanı Chat uygulaması bir alan yöneticisinden bahsederek soruyu yanıtlamasını istiyor. Bir dahaki sefere, yapay zeka bilgi asistanı Sohbet uygulaması yanıtı öğrenecektir.

Dikkat edilmesi gereken noktalar, alternatif mimari seçenekleri ve sonraki adımlar

Bu bölümde, yapay zeka bilgi asistanının Chat uygulamasını geliştirmenin diğer yolları ele alınmaktadır.

Firestore, Cloud Storage veya Chat API'de List Messages çağırma

Bu eğiticide, Chat uygulaması bir soruya her yanıt verdiğinde Chat API ile Message kaynağında list yönteminin çağrılmasıyla karşılaştırıldığında performansı artırdığı için mesajlar gibi Chat alanı verilerinin Firestore veritabanında depolanması önerilir. Ayrıca list messages ürününün tekrar tekrar çağrılması, Chat uygulamasının API kota sınırlarına ulaşmasına neden olabilir.

Ancak, Chat alanının görüşme geçmişi çok uzarsa Firestore kullanımı maliyetli olabilir.

Cloud Storage , Firestore'un alternatifidir. Chat uygulamasının etkin olduğu her alan, yapay zeka bilgi asistanı tarafından kullanılır. 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 Vertex AI'a tek seferde aktarılabilmesidir. Ancak dezavantaj, Cloud Storage'da bir nesneye ekleme yapamayacağınız ve yalnızca değiştirme işlemi yapacağınız için sohbet geçmişinin güncellenmesinin daha fazla çalışma gerektirmesidir. Mesaj geçmişini düzenli olarak güncelliyorsanız bu yaklaşım anlamlı olmaz ancak mesaj geçmişini haftada bir kez gibi düzenli aralıklarla toplu olarak güncellemeniz önerilir.

Sorun giderme

Bir Google Chat uygulaması veya kart hata döndürdüğünde Chat arayüzünde "Bir sorun oluştu." veya "İsteğiniz işleme alınamıyor" mesajı gösterilir. 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ük kaydı etkinken hataları düzeltmenize yardımcı olacak açıklayıcı hata mesajları ve günlük verileri mevcuttur. Hataları görüntüleme, hata 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ğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız Cloud projesini silmenizi öneririz.

  1. Google Cloud konsolunda Kaynakları yönetin sayfasına gidin. Menü > IAM ve Yönetici > Kaynakları Yönet'i tıklayın.

    Resource Manager'a git

  2. Proje listesinden silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
  3. İletişim kutusuna proje kimliğini yazın, ardından projeyi silmek için Kapat'ı tıklayın.