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ındaki görüşmelere dayalı soruları yanıtlayan bir Google Chat uygulaması oluşturma işlemi gösterilmektedir. Chat uygulaması, Google Workspace Events API'nin yanı sıra Pub/Sub'ı kullanarak Chat alanlarında yayınlanan soruları gerçek zamanlı olarak tanır ve yanıtlar. Bu işlem, Chat uygulaması bahsedilmese bile gerçekleştirilir.

Chat uygulaması, alanda gönderilen tüm mesajları veri kaynağı ve bilgi tabanı olarak kullanır. Bir kullanıcı soru sorduğunda Chat uygulaması, daha önce paylaşılan yanıtları kontrol edip birini paylaşır. Yanıt bulunamazsa yanıtlayamayacağını belirtir. Kullanıcılar, her yanıtta bir yardımcı işlem düğmesini tıklayarak alan yöneticisinden @bahsedebilir ve yanıt isteyebilir. Google Chat uygulaması, Gemini Yapay Zeka'yı kullanarak eklendiği alanlardaki sohbetler üzerinde sürekli eğitim aldıkça bilgi tabanını uyarlar ve geliştirir.

Chat uygulamasının, yeni çalışan oryantasyonu ve destek alanında işleyiş şekli:

  • Yapay zeka bilgi asistanı uygulamasından bahsettiğinizde bu uygulama alana eklenir.
    1. şekil. Can, yapay zeka bilgi asistanı Chat uygulamasını bir Chat alanına ekler.
  • Dana soru soruyor.
    Şekil 2. Dana, şirketin topluluk önünde konuşma eğitimi verip vermediğini soruyor.
  • Yapay zeka bilgi asistanı Chat uygulaması soruyu yanıtlar.
    3. Şekil. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanının sohbet geçmişine göre Dana'nın sorusunu yanıtlaması için Vertex AI with Gemini'ı yönlendirir ve ardından yanıtı paylaşır.

Ön koşullar

Hedefler

  • Chat alanı görüşmelerinde paylaşılan bilgilere göre soruları yanıtlamak için üretken yapay zekayı kullanan bir Chat uygulaması oluşturun.
  • Üretken yapay zeka ile:
    • Çalışanların sorularını tespit edip yanıtlayın.
    • Chat alanındaki devam eden görüşmelerden sürekli olarak bilgi edinir.
  • Chat uygulamasına doğrudan mesaj gönderilmediğinde bile Chat alanındaki mesajları gerçek zamanlı olarak dinleyip yanıtlayabilirsiniz.
  • Firestore veri tabanına yazarak ve Firestore veri tabanından okuyarak mesajları kalıcı hale getirin.
  • Bir soruya yanıt bulunamadığında alan yöneticilerinden bahsederek Chat alanında ortak çalışmayı kolaylaştırın.

Mimari

Aşağıdaki şemada, Google Workspace ve Google Cloud kaynaklarının, yapay zeka bilgi asistanı Chat uygulamasında kullanılan mimarisi gösterilmektedir.

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

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

  • Bir kullanıcı, Chat alanına yapay zeka bilgi asistanı Chat uygulamasını eklediğinde:

    1. Chat uygulaması, Chat alanına ekleyen kullanıcıdan kimlik doğrulama ve yetkilendirme işlemlerini 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 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 giriş mesajı gönderir.

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

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

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

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

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

      1. İstem, Vertex AI with Gemini'a iletide soru olup olmadığını kontrol etme talimatı veriyor. Bu durumda Gemini, soruyu Firestore'da tutulan Chat alanı mesaj geçmişine göre yanıtlar ve Google Chat uygulaması mesajı Chat alanına gönderir. Eşleşmiyorsa yanıt vermeyin.

      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.

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

        Mesajlar her zaman, kullanıcıların tıklayabileceği bir yardımcı işlem düğmesi içerir. Bu düğme, Chat uygulamasının bir alan yöneticisine @bahsetme işlemi yaparak yanıt vermesini ister.

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

    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'de 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 inceleme

Yapay zeka bilgi asistanı Chat uygulaması aşağıdaki Google Workspace ve Google Cloud ürünlerini kullanır:

  • Gemini ile Vertex AI API: Gemini tarafından desteklenen bir üretken yapay zeka platformu. Yapay zeka bilgi asistanı Chat uygulaması, çalışanların sorularını tanımak, anlamak ve yanıtlamak için Gemini ile Vertex AI API'yi kullanır.
  • Chat API: Google Chat uygulamaları geliştirmek için kullanılan bir API. Bu uygulamalar, mesaj gibi Chat etkileşimi etkinliklerini alır ve bunlara yanıt verir. Yapay zeka bilgi asistanı Chat uygulaması, Chat API'yi kullanarak:
    • Chat tarafından gönderilen etkileşim etkinliklerini alıp yanıtlayabilirsiniz.
    • Bir alanda gönderilen mesajları listeleme
    • Alandaki kullanıcı sorularına yanıt gönderme
    • Sohbet'te nasıl görüneceğini belirleyen ad ve avatar resmi gibi özellikleri yapılandırın.
  • Google Workspace Events API: Bu API, Google Workspace uygulamalarındaki etkinliklere abone olmanıza ve değişiklik bildirimlerini yönetmenize olanak tanır. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanında yayınlanan mesajları dinlemek için Google Workspace Events API'yi kullanır. Bu sayede, kendisinden bahsedilmese bile soruları algılayıp yanıtlayabilir.
  • Firestore: Sunucusuz bir belge veritabanı. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanında gönderilen mesajlarla ilgili verileri depolamak için Firestore'u kullanır.
  • Pub/Sub: Pub/Sub, mesaj üreten hizmetleri bu mesajları işleyen hizmetlerden ayıran eşzamansız ve ölçeklenebilir bir mesajlaşma hizmetidir. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanlarından abonelik etkinlikleri almak için Pub/Sub'ı kullanır.
  • Eventarc: Eventarc, temel altyapıyı uygulamanız, özelleştirmeniz veya bakımını yapmanız gerekmeden etkinliğe dayalı mimariler oluşturmanıza olanak tanır. Yapay zeka bilgi asistanı Chat uygulaması, Eventarc'ı kullanarak Pub/Sub'dan gelen etkinlikleri bir Chat alanına ve abonelik etkinliklerini alan ve işleyen Cloud İşlevi'ne yönlendirir.
  • Cloud Functions: Sunucu veya çalışma zamanı ortamını yönetme gereği duymadan Chat etkileşimi ve abonelik etkinliklerine yanıt verebilen tek amaçlı, bağımsız işlevler oluşturmanıza olanak tanıyan hafif bir sunucusuz bilgi işlem hizmeti. Yapay zeka bilgi asistanı Chat uygulaması, aşağıdaki adlara sahip iki Cloud Functions işlevini kullanır:
    • app: Chat'in etkileşim etkinliklerini gönderdiği HTTP uç noktasını ve bu etkinlikleri işleyip yanıtlayan mantığı çalıştırmak için bir bilgi işlem platformu olarak barındırın.
    • eventsApp: Pub/Sub aboneliğinden gelen mesajlar gibi Chat alanı etkinliklerini alır ve işler.
    Cloud Functions, bilgi işlem 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, 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

  1. Google Cloud Console'da Menü > IAM & Admin > Proje Oluştur'a gidin.

    Proje oluşturma sayfasına gitme

  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 kimliği, proje oluşturulduktan sonra değiştirilemez. Bu nedenle, projenin kullanım ömrü boyunca ihtiyaçlarınızı karşılayacak bir kimlik seçin.

  3. Konum alanında, projeniz için olası konumları görüntülemek üzere Göz at'ı tıklayın. Ardından Seç'i tıklayın.
  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 KSA'ya (gcloud) erişin:

  • Cloud Shell: gcloud KSA'nın önceden ayarlandığı bir online terminal kullanmak için Cloud Shell'i etkinleştirin.
    Cloud Shell'i etkinleştirin.
  • Yerel kabuk: Yerel geliştirme ortamı kullanmak için gcloud CLI'yı yükleyin ve başlatın.
    Cloud projesi oluşturmak için gcloud projects create komutunu kullanın:
    gcloud projects create PROJECT_ID
    Oluşturmak istediğiniz projenin kimliğini ayarlayarak PROJECT_ID kısmını değiştirin.

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

Google Cloud konsolu

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

    Projelerim için Faturalandırma'ya gitme

  2. Bir 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. Bir faturalandırma hesabını Google Cloud projesiyle bağlama:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

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

    • PROJECT_ID, faturalandırmayı etkinleştirmek istediğiniz Cloud projesinin proje kimliğidir.
    • BILLING_ACCOUNT_ID, Google Cloud projesiyle ilişkilendirilecek faturalandırma hesabı kimliğidir.

API'leri etkinleştirme

Google Cloud konsolu

  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 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ştirdiğinizden emin olun ve Etkinleştir'i tıklayın.

gcloud CLI

  1. Gerekirse mevcut Cloud projesini oluşturduğunuz projeyle değiştirin:

    gcloud config set project PROJECT_ID

    PROJECT_ID kısmını, oluşturduğunuz Cloud projesinin proje kimliği ile değiştirin.

  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ınlayacağınız için yer tutucu bilgiler kullanabilirsiniz. Google Chat uygulamasını harici olarak yayınlamadan önce izin ekranındaki yer tutucu bilgileri gerçek bilgilerle değiştirin.

  1. Google Cloud Console'da Menü > > Markalama'ya gidin.

    Markalama'ya gidin

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

    1. App Information (Uygulama Bilgileri) bölümündeki App name (Uygulama adı) alanına AI knowledge assistant yazın.
    2. Kullanıcı destek 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. Bitir bölümünde Google API Hizmetleri Kullanıcı Verileri Politikası'nı inceleyin ve kabul ediyorsanız Google API Hizmetleri: Kullanıcı Verileri Politikası'nı kabul ediyorum'u seçin.
    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 yetkili diğer test kullanıcılarını girip Kaydet'i tıklayın.
  3. Veri Erişimi > Kapsam Ekleme veya Kaldırma'yı tıklayın. Google Cloud projenizde etkinleştirdiğiniz her API'nin kapsamlarının listesini içeren bir panel gösterilir.

    1. Kapsamları manuel olarak ekleme 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 bölümüne aşağıdakileri yazın:

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

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

    • REGION: Cloud Function'ın bölgesi (ör. us-central1). Daha sonra iki Cloud Functions işlevini oluşturduğunuzda bunların bölgesini bu değere ayarlamanız gerekir.
    • PROJECT_ID: Oluşturduğunuz Cloud projesinin proje kimliği.
  7. Oluştur'u tıklayın.

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

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

  10. Tamam'ı tıklayın.

Pub/Sub konusu oluşturma

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

Pub/Sub konusunu şu şekilde oluşturabilirsiniz:

Google Cloud konsolu

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

    Pub/Sub'a git

  2. Konu Oluştur'u 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örünür.

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

    1. events-api panelindeki PERMISSIONS (İzinler) bölümünde Add Principal'ı (Ana Hesap Ekle) tıklayın.

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

    3. Rol 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. Konu kimliği events-api olan bir Pub/Sub konusu oluşturun:

    gcloud pubsub topics create events-api
  2. Chat IAM kullanıcısına Pub/Sub konusuna yayınlama izni verin:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

Firestore veritabanını oluşturma

Firestore veritabanı, Chat alanlarındaki verileri (ör. mesajlar) kalıcı olarak saklar ve alır. model/message.js ve services/firestore-service.js dosyalarıyla örnek kodda örtülü olarak ayarlanan veri modelini tanımlamıyorsunuz.

Yapay zeka bilgi asistanı Chat uygulaması veritabanı, belgelere dayalı bir NoSQL veri modeli kullanır. Bu belgeler, koleksiyonlar halinde düzenlenir. Daha fazla bilgi için Firestore veri modeli bölümünü inceleyin.

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

Firestore veritabanının veri modeli.

Kök, iki koleksiyon içerir:

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

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

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

spaces

Yapay zeka bilgi asistanı Chat uygulamasının bulunduğu bir Chat alanı.

Alanlar
Document IDString
Belirli bir alanın benzersiz kimliği. Chat API'deki alanın kaynak adının bir bölümü.
messagesSubcollection of Documents (messages)
Chat alanında gönderilen mesajlar Firebase'deki message Document ID ile eşleşir.
spaceNameString
Chat API'deki alanın benzersiz adı. Chat API'deki alanın kaynak adıyla eşleşir.

messages

Chat alanında gönderilen mesajlar

Alanlar
Document IDString
Belirli bir iletinin benzersiz kimliği.
nameString
Chat API'deki bir iletinin benzersiz adı. Chat API'deki iletinin kaynak adıyla eşleşir.
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 gitme

  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 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ı elde etmek için Chat uygulamasının Cloud Functions işlevleriyle aynı veya yakındaki konumu 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 Firestore bölgesi adını (ör. us-central1) yazın. En iyi performans için Chat uygulamasının Cloud Functions işlevleriyle aynı veya yakındaki konumu seçin.

Chat uygulamasını oluşturma ve dağıtma

Google Cloud projeniz oluşturulup yapılandırıldığına göre artık Chat uygulamasını oluşturup dağıtmaya hazırsınız. Bu bölümde şunları yapacaksınız:

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

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

Bu bölümde, aşağıdaki adlara sahip iki Cloud Functions işlevi oluşturup dağıtacaksınız:

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

Bu Cloud Functions'lar birlikte, yapay zeka bilgi asistanı Chat uygulamasının uygulama mantığını oluşturur.

İsteğe bağlı olarak, Cloud Functions işlevlerini oluşturmadan önce GitHub'da barındırılan örnek kodu inceleyip kendinizi bu kodla ilgili bilgilendirin.

GitHub'da göster

app oluşturma ve dağıtma

Google Cloud konsolu

  1. Kodu GitHub'dan ZIP dosyası olarak indirin.

    Zip dosyasını indirme

  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. google-chat-samples/node/ai-knowledge-assistant dizininde, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğiniz credentials.json dosyasını ekleyin.

  5. ai-knowledge-assistant klasörünün içeriğini bir ZIP dosyası olarak sıkıştırın.

    Zip dosyası aşağıdaki dosya ve klasörleri içermelidir:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • credentials.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Google Cloud Console'da Menü > Cloud Functions'a gidin.

    Cloud Functions'a gitme

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

  7. Create Function'ı (İşlev oluştur) tıklayın.

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

    1. Ortam'da Cloud Run iş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 bilgileri oluşturduğunuzda 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 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ı bölümünde varsayılan metni silin ve app girin.

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

  12. Hedef pakette, bir paket oluşturun veya 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ı bu pakete yükler ve bileşen dosyalarını ayıklar. Ardından Cloud Functions, bileşen dosyalarını Cloud Functions'a kopyalar.

  13. Zip dosyası bölümünde, GitHub'dan indirip çıkardığınız ve yeniden sıkıştırdığınız ZIP dosyasını yükleyin:

    1. Göz at'ı tıklayın.
    2. ZIP dosyasına gidip bu 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örünür: biri derleme, diğeri hizmet için. Her iki ilerleme göstergesi de kaybolup yerini onay işaretine bıraktığında işleviniz dağıtılmış ve hazır demektir.

  15. Sabitleri 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 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 proje kimliğinize ayarlayın.
      2. location değerini Cloud Functions'ın us-central1 gibi bölgesi olarak ayarlayın.
  16. Dağıt'ı tıklayın.

gcloud CLI

  1. Kodu GitHub'dan 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. google-chat-samples/node/ai-knowledge-assistant dizininde, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğiniz credentials.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ğiniz olarak 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 eşleşecek şekilde Cloud Functions işlevinin region değeriyle (ör. us-central1) değiştirin.

eventsApp oluşturma ve dağıtma

Google Cloud konsolu

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

    Cloud Functions'a gitme

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

  2. Create Function'ı (İşlev oluştur) tıklayın.

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

    1. Ortam'da Cloud Run iş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 bilgileri 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 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üne İzin 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 girin.

  6. Kaynak kodu 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 Function'ı 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 de tetikleyici için. Üç ilerleme göstergesi de kaybolup yerini onay işareti aldığında işleviniz dağıtılmış ve hazır demektir.

  12. Sabitleri 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 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 proje kimliğinize ayarlayın.
      2. location değerini Cloud Functions'ın us-central1 gibi bölgesi olarak ayarlayın.
  13. Dağıt'ı tıklayın.

gcloud CLI

  1. gcloud CLI'da henüz orada değilseniz daha önce GitHub'dan klonladığınız bu yapay zeka bilgi asistanı Chat uygulamasının kodunu içeren dizine geçin:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. google-chat-samples/node/ai-knowledge-assistant dizininde, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğiniz credentials.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ğiniz olarak 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 eşleşecek şekilde Cloud Functions işlevinin region değeriyle (ör. us-central1) değiştirin.

app Cloud Functions tetikleme URL'sini kopyalayın.

Google Cloud Console'da Chat uygulamasını yapılandırırken bir sonraki bölümde app Cloud Function'ın tetikleyici URL'sini yapıştırırsınız.

Google Cloud konsolu

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

    Cloud Functions'a gitme

  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, Google Cloud Console'da Chat API'nin nasıl yapılandırılacağı açıklanmaktadır. Chat uygulamanızla ilgili bilgiler (Chat uygulamasının adı ve Chat etkileşimi etkinliklerini gönderdiği Chat uygulamasının Cloud Function'ının tetikleyici URL'si dahil) yer alır.

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

    Chat API yapılandırmasına gitme

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

  3. Avatar URL'si bölümüne https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg yazın.

  4. Açıklama bölümüne Answers questions with AI yazın.

  5. Etkileşimli özellikleri etkinleştir açma/kapatma düğmesini açık konumuna 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ç nokta URL'si'ni seçin.

  8. HTTP uç nokta URL'si bölümüne, app Cloud Functions işlevinden tetikleyici URL'sini yapıştırın. URL, https://REGION-PROJECT_ID.cloudfunctions.net/app biçiminde olmalıdır. Burada REGION, Cloud Functions işlevinin bölgesi (ör. us-central1), PROJECT_ID ise oluşturduğunuz Cloud projesinin proje kimliğidir.

  9. Görünürlük bölümünde Bu sohbet uygulamasını Workspace alanınızdaki belirli kişiler ve gruplar için kullanılabilir hale getir'i seçip e-posta adresinizi girin.

  10. İsteğe bağlı olarak, Günlükler bölümünde Hataları günlüğe kaydetme'yi seçin.

  11. Kaydet'i tıklayın. Yapılandırma kaydedildi mesajı görünür. Bu, Sohbet uygulamasının test edilmeye hazır olduğu anlamına gelir.

Chat uygulamasını test etme

Yapay zeka bilgi asistanı Chat uygulamasının yanıtlayabileceği sorular sorarak bu uygulamayı mesaj içeren bir Chat alanında test edin.

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

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

Bu eğitimde, Chat alanı oluşturalım ve Chat ile geliştirme genel bakış rehberinden birkaç paragraf yapıştıralım.

  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ı bölümüne 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ştirme 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. İleti oluşturma çubuğuna @AI knowledge assistant yazın. Görünen öneri menüsünde, yapay zeka bilgi asistanı Chat uygulamasını seçip enter tuşuna basın.

    2. Alana yapay zeka bilgi asistanı Chat uygulamasını 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 yetkilendirme işlemlerini yapılandırmanız gerekir:

      1. Yapılandır'ı tıklayın.
      2. Yeni bir tarayıcı penceresi veya sekmesi açılır ve sizden bir Google Hesabı seçmeniz istenir. Test ettiğiniz hesabı seçin.
      3. Yapay zeka bilgi asistanı 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. mesajı gösterilir. Tarayıcı penceresini veya sekmesini kapatıp sohbet alanına dönün.
  5. Bir soru sorun:

    1. İleti oluşturma çubuğuna aşağıdaki gibi bir soru yazın: What are Google Chat apps?

    2. Yapay zeka bilgi asistanı Chat uygulamasının yanıtları

    3. İsteğe bağlı olarak, yanıt doğru veya yeterli değilse yapay zekanın konuşma geçmişinin iyileşmesine yardımcı olmak için Yardım al'ı tıklayın. Yapay zeka bilgi asistanı Chat uygulaması, alan yöneticisinden bahsediyor ve soruyu yanıtlamasını istiyor. Bir dahaki sefere, yapay zeka bilgi asistanı Chat uygulaması yanıtı bilecek.

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

Bu bölümde, yapay zeka bilgi asistanı Chat uygulamasının oluşturulabileceği diğer yöntemler incelenmektedir.

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

Bu eğitimde, Chat uygulaması bir soruyu her yanıtladığında Chat API ile Message kaynağında list yöntemini çağırmaya kıyasla performansı iyileştirdiği için mesajlar gibi Chat alanı verilerinin Firestore veritabanında depolanması önerilir. Ayrıca, list messages işlevinin tekrar tekrar çağrılması, Chat uygulamasının API kota sınırlarına ulaşmasına neden olabilir.

Ancak bir Chat alanının etkileşim geçmişi çok uzun olursa Firestore'u kullanmak maliyetli olabilir.

Cloud Storage Firestore'a alternatif olarak kullanılabilir. Yapay zeka bilgi asistanı Chat uygulamasının etkin olduğu her alan kendi nesnesini alır ve her nesne, alandaki tüm mesajları içeren bir metin dosyasıdır. Bu yaklaşımın avantajı, metin dosyasının tüm içeriğinin Vertex AI ile Gemini'a tek seferde aktarılabilmesidir. Ancak Cloud Storage'daki bir nesneye ekleme yapamayacağınız, yalnızca değiştirebileceğiniz için görüşme geçmişini güncellemek daha fazla çalışma gerektirir. Bu yaklaşım, mesaj geçmişini düzenli olarak güncelliyorsanız mantıklı değildir. Ancak mesaj geçmişini toplu olarak ve düzenli aralıklarla (ör. haftada bir kez) güncelliyorsanız iyi bir seçenek olabilir.

Sorun giderme

Bir Google Chat uygulaması veya kartı hata döndürdüğünde Chat arayüzünde "Bir hata oluştu" mesajı gösterilir. veya "İsteğiniz işlenemiyor." Bazen Chat kullanıcı arayüzünde hata mesajı gösterilmez ancak Chat uygulaması veya kartı beklenmedik bir sonuç üretir. Örneğin, kart mesajı görünmeyebilir.

Chat kullanıcı arayüzünde hata mesajı gösterilmese de Chat uygulamaları için hata günlüğü kaydı etkinleştirildiğinde hataları düzeltmenize yardımcı olacak açıklayıcı hata mesajları ve günlük verileri kullanılabilir. Hataları görüntüleme, hataları ayıklama ve düzeltme konusunda yardım için Google Chat hatalarını giderme ve düzeltme başlıklı makaleyi inceleyin.

Temizleme

Bu eğitimde kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini önlemek istiyorsanız Cloud projesini silmenizi öneririz.

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

    Resource Manager'a gitme

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