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

Bu eğitimde, Gemini ile Vertex AI tarafından desteklenen üretken yapay zeka ile Chat alanlarında yapılan görüşmelere dayalı soruları yanıtlayan bir Google Chat uygulamasının nasıl oluşturulacağı gösterilmektedir. Chat uygulaması, Chat alanlarında sorulan soruları atıfta bulunulmasa bile gerçek zamanlı olarak tanıyıp 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 bankası olarak kullanır: Bir kullanıcı soru sorduğunda Chat uygulaması daha önce paylaşılan yanıtları kontrol eder ve bunlardan birini paylaşır. Yanıt bulunamazsa yanıt verilemediğini söyler. Kullanıcılar her yanıtta bir alan yöneticisini @mention ederek yanıt isteğinde bulunmak için ek işlem düğmesini tıklayabilir. Google Chat uygulaması, Gemini Yapay Zeka'yı kullanarak eklendiği alanlardaki sohbetlerde sürekli olarak eğitim aldığı için bilgi tabanını uyarlar ve büyütür.

Chat uygulaması, çalışan oryantasyonu ve destek alanında şu şekilde çalışır:

  • Yapay zeka bilgi asistanı uygulamasından bahsetmek, uygulamayı alana ekler.
    Şekil 1. Can, Chat alanına yapay zeka bilgi asistanı Chat uygulamasını ekler.
  • Dana bir soru sorar.
    Şekil 2. Dana, şirketin topluluğa konuşma eğitimi verip vermediğini sorar.
  • Yapay zeka bilgi asistanı Chat uygulaması soruyu yanıtlar.
    Ş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

Hedefler

  • Chat alanındaki görüşmelerde paylaşılan bilgilere dayalı 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ına doğrudan mesaj gönderilmediğinde bile Chat alanındaki mesajları anlık olarak dinleyip yanıtlayabilirsiniz.
  • 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, Chat uygulamasının yapay zeka bilgi asistanı 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:

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

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

    2. Chat uygulaması, Chat API'deki spaces.messages.list yöntemini çağırarak alanın mesajlarını getirir ve getirilen mesajları bir Firestore veritabanında depolar.

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

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

  • Chat alanındaki bir kullanıcı mesaj yayınladığında:

    1. Chat uygulaması, mesajı Pub/Sub konusundan anlık olarak alır.

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

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

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

      1. İstem, Vertex AI'ya Gemini ile iletideki soru olup olmadığını kontrol etmesini söyler. 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.

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

        Gemini ile Vertex AI soruyu yanıtlayamazsa Chat uygulaması, Chat alanının geçmişinde bu soruya yanıt bulamadığını belirten bir mesaj yayınlar.

        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:

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

    1. Chat uygulaması, Google Workspace Events API'deki 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ı tarafından kullanılan ürünleri inceleme

Yapay zeka destekli 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ışan sorularını tanımak, anlamak ve yanıtlamak için Gemini ile birlikte 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ıp yanıtlayabilir.
    • 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 bir belge veritabanı. Chat uygulamasındaki yapay zeka bilgi asistanı, Chat alanında gönderilen mesajlarla ilgili verileri saklamak 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 mesaj 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 yönetmek zorunda kalmadan etkinlik odaklı mimariler oluşturmanıza olanak tanır. Yapay zeka bilgi asistanı Chat uygulaması, Pub/Sub'daki etkinlikleri bir Chat alanına yönlendirmek için Eventarc'ı ve abonelik etkinliklerini alan ve işleyen Cloud İşlevi'ni 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. Yapay zeka bilgi asistanı Chat uygulaması şu adlarda iki Cloud Functions 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ır.
    • eventsApp: Pub/Sub aboneliğinden mesajlar gibi Chat alanı etkinliklerini alır ve işler.
    Cloud Functions, bilişim kaynaklarını 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 bir sürekli entegrasyon, iletim ve dağıtım platformu.
    • Cloud Run: Container mimarisine alınmış uygulamaları çalıştırmak için tümüyle yönetilen bir ortamdır.

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

  1. Google Cloud Console'da Menü > IAM ve Yönetici > Proje Oluştur'a gidin.

    Proje Oluştur'a gidin

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

  3. Projeniz için olası konumları görüntülemek üzere Konum alanında Göz at'ı tıklayın. Ardından Seç'i tıklayın.
  4. 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 CLI'si önceden ayarlanmış bir internet terminali 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çin gcloud projects create komutunu kullanın:
    gcloud projects create PROJECT_ID
    Oluşturmak istediğiniz projenin kimliğini ayarlayarak PROJECT_ID değerini değiştirin.

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

Google Cloud konsolu

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

    Projelerim için Faturalandırma'ya gidin

  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 Billing hesabını seçin.
  4. Hesap belirle'yi tıklayın.

gcloud CLI

  1. Mevcut faturalandırma hesaplarını listelemek için şu komutu çalıştırın:
    gcloud billing accounts list
  2. Bir faturalandırma hesabını Google Cloud projesine 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 projesine bağlanacak faturalandırma hesabı kimliğidir.

API'leri etkinleştirme

Google Cloud konsolu

  1. 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 Yönetici API'yi etkinleştirin.

    API'leri etkinleştirme

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

  3. Doğru API'leri etkinleştirdiğinizden emin olduktan sonra 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 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.

  1. Google Cloud Console'da Menü > > Markalaşma'ya gidin.

    Markalama'ya gidin

  2. 'ü daha önce yapılandırdıysanız Marka, Kitle ve Veri Erişimi'nde aşağıdaki OAuth izin ekranı ayarlarını yapılandırabilirsiniz. Henüz yapılandırılmadı yazan bir mesaj görürseniz Başlayın'ı tıklayın:

    1. Uygulama Bilgileri bölümündeki Uygulama adı alanına AI knowledge assistant yazın.
    2. Kullanıcı desteği e-postası bölümünde e-posta adresinizi veya uygun bir Google grubunu seçin.
    3. İleri'yi tıklayın.
    4. Kitle bölümünde Dahili'yi seçin. Dahili'yi seçemiyorsanız Harici'yi seçin.
    5. İleri'yi tıklayın.
    6. İletişim bilgileri bölümünde, projenizde yapılan değişikliklerle ilgili bildirim alabileceğiniz bir e-posta adresi girin.
    7. İleri'yi tıklayın.
    8. Son 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.
    9. Devam'ı tıklayın.
    10. Oluştur'u tıklayın.
    11. Kullanıcı türü için Harici'yi seçtiyseniz test kullanıcıları ekleyin:
      1. Kitle'yi tıklayın.
      2. Test kullanıcıları bölümünde Kullanıcı ekle'yi tıklayın.
      3. E-posta adresinizi ve diğer yetkili test kullanıcılarını girip Kaydet'i tıklayın.
  3. Veri Erişimi > Kapsam Ekle veya Kaldır'ı tıklayın. Google Cloud projenizde etkinleştirdiğiniz her API'nin kapsamlarının listesini içeren bir panel görünür.

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

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

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

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

  1. Google Cloud Console'da Menü > API'ler ve Hizmetler > Kimlik bilgileri'ne gidin.

    Kimlik Bilgileri'ne gidin

  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, kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.

  5. Yetkilendirilmiş yönlendirme URI'leri bölümünde URI ekle'yi tıklayın.

  6. URI'ler 1 alanına şunları 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'ı oluştururken bölge ayarlarını bu değere ayarlamanız gerekir.
    • PROJECT_ID: Oluşturduğunuz Cloud projesinin proje kimliği.
  7. Oluştur'u tıklayın.

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

  9. İndirilen dosyayı client_secrets.json olarak kaydedin. Daha sonra, iki Cloud Functions'ı oluştururken client_secrets.json dosyasını her dağıtıma dahil edersiniz.

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

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

    Pub/Sub'a gitme

  2. Create Topic'i (Konu Oluştur) tıklayın.

  3. Topic ID (Konu Kimliği) alanına events-api yazın.

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

  5. Şifreleme bölümünde Google tarafından yönetilen şifreleme anahtarı'nı seçin.

  6. Oluştur'u tıklayın. Pub/Sub konusu gösterilir.

  7. Bu Pub/Sub konusunun ve Google Workspace Events API'nin birlikte çalışması için Chat IAM kullanıcısına Pub/Sub konusuna gönderi yayınlama izni verin:

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

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

    3. Roller atayın bölümündeki Bir rol seçin'de 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 konusunda 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ı, Chat alanlarından mesajlar gibi verileri saklar ve alır. Örnek kodda model/message.js ve services/firestore-service.js dosyaları tarafından dolaylı olarak ayarlanan veri modelini tanımlamazsınız.

Yapay zeka bilgi asistanı Chat uygulaması veritabanı, koleksiyonlar halinde düzenlenmiş belgelere dayalı bir NoSQL veri modeli kullanır. Daha fazla bilgi için Firestore veri modeli başlıklı makaleyi inceleyin.

Aşağıdaki şema, Chat uygulamasının yapay zeka bilgi asistanı veri modeline genel bir bakıştır:

Firestore veritabanının veri modeli.

Kök iki koleksiyon içerir:

  1. spaces, her belge Chat uygulamasının eklendiği bir Chat alanını temsil eder. Her mesaj, messages alt koleksiyonundaki bir doküman tarafından temsil edilir.

  2. users, her doküman bir Chat uygulaması alanına Chat uygulaması ekleyen bir kullanıcıyı temsil eder.

Koleksiyon, doküman ve alan tanımlarını görüntüleme

spaces

Yapay zeka destekli bilgi asistanı Chat uygulamasını içeren bir Chat alanı.

Alanlar
Document IDString
Belirli bir alanın benzersiz kimliği. Chat API'de alanın kaynak adının bir parçası.
messagesSubcollection of Documents (messages)
Chat alanında gönderilen mesajlar. Firebase'deki message öğesinin Document ID özelliğine karşılık gelir.
spaceNameString
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 IDString
Belirli bir mesajın benzersiz kimliği.
nameString
Chat API'deki bir mesajın benzersiz adı. Chat API'deki mesajın kaynak adına karşılık gelir.
textString
İletinin metin gövdesi.
timeString (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 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:

Google Cloud konsolu

  1. Google Cloud Console'da Menü > Firestore'a gidin.

    Firestore'a gidin

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

  3. Firestore modunuzu seçin bölümünde Yerel mod'u tıklayın.

  4. Devam'ı tıklayın.

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

    1. Veritabanınıza bir ad verin bölümünde, Veritabanı Kimliği'ni (default) olarak bırakın.

    2. Konum türü bölümünde Bölge'yi seçin.

    3. Bölge'de, veritabanınız için bir bölge belirtin (ör. us-central1). En iyi performans için Chat uygulamasının Cloud Functions'iyle aynı veya yakın bir konum seçin.

  6. 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şturulup yapılandırıldığına göre Chat uygulamasını oluşturmaya ve dağıtmaya hazırsınız. Bu bölümde şunları yaparsı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.
  2. Google Chat API yapılandırma sayfasında bir Chat uygulaması oluşturun ve dağıtın.

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

Bu bölümde, aşağıdaki adlarda iki Cloud Functions işlevi oluşturup dağıtırsı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'lar birlikte Chat uygulamasının yapay zeka bilgi asistanı 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.

GitHub'da göster

app oluşturma ve dağıtma

Google Cloud konsolu

  1. GitHub'dan kodu zip dosyası olarak indirin.

    Zip dosyasını indirin

  2. İndirilen ZIP dosyasını ayıklayın.

    Ayıklanan klasör, Google Workspace örnekleri deposunun tamamını içerir.

  3. Ayıklanan klasörde google-chat-samples-main/node/ai-knowledge-assistant dizinine gidin.

  4. 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ğiniz client_secrets.json dosyasını ekleyin.

  5. ai-knowledge-assistant klasörünün içeriğini 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/
  6. Google Cloud Console'da 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 oluşturun:

    1. Ortam bölümünde Cloud Run İşlevi'ni 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şturduğunuzda yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir.
    4. Tetikleyici türü bölümünde HTTPS'yi seçin.
    5. Kimlik doğrulama bölümünde 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ı alanında varsayılan metni silin ve app yazın.

  11. Kaynak kod bölümünde Sıkıştırılmış dosya yükle'yi seçin.

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

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

    Google Cloud, zip dosyasını yükler ve bu paketteki bileşen dosyalarını çıkarır. Ardından Cloud Functions, bileşen dosyalarını Cloud Functions'a kopyalar.

  13. Sıkıştırılmış dosya alanına, GitHub'dan indirdiğiniz, ayıklayıp yeniden sıkıştırdığınız zip dosyasını yükleyin:

    1. Göz at'ı tıklayın.
    2. Zip dosyasına gidip dosyayı seçin.
    3. 'ı tıklayın.
  14. 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çin. Her iki ilerleme göstergesi de kaybolup onay işaretiyle değiştirildiğinde işleviniz dağıtılmış ve kullanıma hazırdır.

  15. Sabitler ayarlamak için örnek kodu düzenleyin:

    1. Cloud Function ayrıntıları sayfasında Düzenle'yi tıklayın.
    2. İleri'yi tıklayın.
    3. Kaynak kod 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 proje kimliğinize ayarlayın.
      2. location değerini Cloud Functions'ın bölgesi olarak ayarlayın (ör. us-central1).
  16. Dağıt'ı tıklayın.

gcloud CLI

  1. GitHub'dan kodu kopyalayın:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Bu yapay zeka bilgi asistanı Chat uygulamasının kodunu içeren dizine geçin:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. 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ğiniz client_secrets.json dosyasını ekleyin.

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

    1. project değerini Cloud proje kimliğinizle ayarlayın.
    2. location değerini Cloud Functions'ın bölgesi olarak ayarlayın (ör. us-central1).
  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

    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

  1. Google Cloud Console'da 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 oluşturun:

    1. Ortam bölümünde Cloud Run İşlevi'ni 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şturduğunuzda yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir.
    4. Tetikleyici türü bölümünde Cloud Pub/Sub'ı seçin.
    5. 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.
    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ı alanında varsayılan metni silin ve eventsApp yazın.

  6. Kaynak kod bölümünde Cloud Storage'dan ZIP'i seçin.

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

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

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

  10. Seç'i tıklayın.

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

  12. Sabitler ayarlamak için örnek kodu düzenleyin:

    1. Cloud Function ayrıntıları sayfasında Düzenle'yi tıklayın.
    2. İleri'yi tıklayın.
    3. Kaynak kod 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 proje kimliğinize ayarlayın.
      2. location değerini Cloud Functions'ın bölgesi olarak ayarlayın (ör. us-central1).
  13. Dağıt'ı tıklayın.

gcloud CLI

  1. gcloud CLI'de, henüz bu dizine geçmediyseniz 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
  2. 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ğiniz client_secrets.json dosyasını ekleyin.

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

    1. project değerini Cloud proje kimliğinizle ayarlayın.
    2. location değerini Cloud Functions'ın bölgesi olarak ayarlayın (ör. us-central1).
  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

    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

  1. Google Cloud Console'da Menü > Cloud Functions'a gidin.

    Cloud Functions'a gidin

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

  3. Tetikle'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 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.

  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 gidin

  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 açma/kapatma düğmesini açık konuma getirin.

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

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

  8. HTTP uç noktası URL'si alanına, app Cloud Functions'deki Tetikleyici URL'sini https://REGION-PROJECT_ID.cloudfunctions.net/app biçiminde yapıştırın. Burada REGION, Cloud Functions'in bölgesidir (ör. us-central1) ve 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şilere ve gruplara sun'u seçin ve e-posta adresinizi girin.

  10. İsteğe bağlı olarak Günlükler bölümünde Günlüğe hata kaydet'i seçin.

  11. Kaydet'i tıklayın. Yapılandırmanın kaydedildiği mesajı gösterilir. 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ı sohbet uygulamasını test etmenin birkaç yolu aşağıda verilmiştir:

  • Yapay zeka bilgi asistanı Chat uygulamasını mevcut bir Chat alanına ekleyin ve bu alanla ilgili sorular sorun.
  • Chat alanı oluşturun ve veri kaynağı olarak kullanmak için birkaç mesaj yayınlayın. Mesajlar, Answer 20 common onboarding questions employees ask their teams. gibi bir istemle Gemini'den alınabilir. Dilerseniz Chat ile geliştirmeye genel bakış kılavuzundaki birkaç paragrafı yapıştırıp bunlarla ilgili sorular da sorabilirsiniz.

Bu eğitimde, bir Chat alanı oluşturacağız ve Chat ile geliştirmeye genel bakış kılavuzundaki birkaç paragrafı yapıştıracağız.

  1. Google Chat'i açın.

    Google Chat'e gidin

  2. Chat alanı oluşturma:

    1. Yeni Sohbet > 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ılacak? 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. Oluştur'u tıklayın.

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

    1. Web tarayıcısında Chat ile geliştirmeye genel bakış kılavuzunu ziyaret edin.

    2. Kılavuzun 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ünen öneri menüsünde yapay zeka bilgi asistanı Chat uygulamasını seçin ve enter tuşuna basın.

    2. Yapay zeka bilgi asistanı sohbet uygulamasını alana eklemek isteyip istemediğinizi soran bir mesaj görünür. 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. Yapılandır'ı tıklayın.
      2. Bir Google Hesabı seçmenizi isteyen yeni bir tarayıcı penceresi veya sekmesi açılır. Test ettiğiniz hesabı seçin.
      3. Yapay zeka bilgi asistanı sohbet uygulamasının istediği izinleri inceleyin. İzin vermek için İzin ver'i tıklayın.
      4. You may close this page now. mesajı gösterilir. Tarayıcı penceresini veya sekmesini kapatıp sohbet alanına dönün.
  5. Bir soru sorun:

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

    2. Yapay zeka bilgi asistanı Chat uygulaması yanıt verir.

    3. İsteğe bağlı olarak, yanıt doğru veya yeterli değilse yapay zekanın sohbet geçmişinin iyileşmesine yardımcı olmak için Yardım alın'ı 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 alternatif bir çözümdür. Yapay zeka bilgi asistanı Chat uygulamasının etkin olduğu her alan kendi nesnesini alı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 beslenebilmesidir. Dezavantajı ise Cloud Storage'daki bir nesneye ekleme yapamadığınız ve yalnızca nesneyi değiştirebildiğiniz için sohbet geçmişini güncellemenin daha fazla iş gerektirmesidir. Mesaj geçmişini düzenli olarak güncelliyorsanız bu yaklaşım mantıklı değildir ancak mesaj geçmişini düzenli olarak (ör. haftada bir) toplu olarak güncelliyorsanız iyi bir seçim 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ç verir. Örneğin, kart mesajı görünmeyebilir.

Chat kullanıcı arayüzünde hata mesajı gösterilmeyebilir ancak Chat uygulamaları için hata günlüğü 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, 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.

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

    Resource Manager'a gidin

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