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 zekadan yararlanarak Chat alanlarındaki sohbetlere dayalı soruları yanıtlayan bir Google Chat uygulamasının nasıl geliştirileceği anlatılmaktadır. Chat uygulaması, bahsedilmediğinde bile Chat alanlarında yayınlanan soruları gerçek zamanlı olarak tanımak ve yanıtlamak için Google Workspace Events API'yi ve Pub/Sub'ı kullanır.

Chat uygulaması, alanda gönderilen tüm mesajları veri kaynağı ve bilgi tabanı olarak kullanır. Birisi soru sorduğunda, Chat uygulaması daha önce paylaşılan yanıtları kontrol eder ve ardından bir tane paylaşır. Yanıt bulunamazsa yanıt verilemez demektir. Kullanıcılar her yanıtta, bir aksesuarın işlem düğmesini tıklayarak bir alan yöneticisinden @bahsedebilir ve yanıt isteyebilir. Gemini AI'ı kullanan Google Chat uygulaması, eklendiği alanlardaki sohbetlere göre sürekli olarak eğitim alırken bilgi tabanını uyarlayıp büyütür.

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

  • Yapay zeka 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.
  • Derya bir soru sorar.
    Şekil 2. Derya, şirketin topluluk önünde konuşma eğitimi sunup sunmadığını soruyor.
  • Soruyu yapay zeka bilgi asistanı Chat uygulaması yanıtlar.
    Şekil 3. Yapay zeka bilgi asistanı Chat uygulaması, Chat alanının sohbet geçmişine dayanarak Derya'nın sorusuna yanıt vermesi için Gemini ile Vertex AI'dan istemde bulunuyor ve ardından yanıtı paylaşıyor.

Ön koşullar

Hedefler

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

Mimari

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

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

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

  • Kullanıcı, AI 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ı alır ve alınan mesajları bir Firestore veritabanında depolar.

    3. Chat uygulaması, alandaki mesajlar gibi etkinlikleri dinlemeye başlamak için Google Workspace Events API'de subscriptions.create yöntemini çağırır. Aboneliğin bildirim uç noktası, etkinliği Chat uygulamasına yönlendirmek için Eventarc'ı kullanan bir Pub/Sub konusudur.

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

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

    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 etmesi için talimat verir. Bu durumda Gemini, Chat alanının Firestore'da saklanan mesaj geçmişine ve Google Chat uygulamasına göre soruyu yanıtlar. Ardından, mesajı Chat alanına gönderir. Aksi halde yanıt vermeyin.

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

        Gemini ile Vertex AI soruyu yanıtlayamazsa Chat uygulaması, Chat alanının geçmişinde bu sorunun cevabını bulamayacağını belirten bir mesaj gönderir.

        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 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'de subscriptions.patch yöntemini çağırarak aboneliğin yenilenmesi için bir istek gönderir.
  • Chat uygulaması bir Chat alanından kaldırılır:

    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 inceleyin

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

  • Vertex AI API: Gemini destekli bir üretken yapay zeka platformu. AI bilgi asistanı Chat uygulaması, çalışanların sorularını tanımak, anlamak ve yanıtlamak için Gemini ile Vertex AI API'yi kullanır.
  • Chat API: Mesajlar gibi Chat etkileşim etkinliklerini alan ve yanıtlayan Google Chat uygulamaları geliştirmek için kullanılan bir API. AI bilgi asistanı Chat uygulaması, Chat API'yi kullanarak:
    • Chat tarafından gönderilen etkileşim etkinliklerini alın ve yanıtlayın.
    • Alanda gönderilen mesajları listeler.
    • Alanda kullanıcı sorularına verilen yanıtları yayınlayın.
    • Chat'te nasıl görüneceğini belirleyen özellikleri (ör. ad ve avatar resmi) yapılandırın.
  • Google Workspace Events API: Bu API, etkinliklere abone olmanıza ve Google Workspace uygulamalarındaki değişiklik bildirimlerini yönetmenize olanak tanır. AI bilgi asistanı Chat uygulaması, Chat alanında yayınlanan mesajları dinlemek için Google Workspace Events API'yi kullanır. Böylece söz konusu olmasa bile soruları algılayıp yanıtlayabilir.
  • Firestore: Sunucusuz belge veritabanı. AI bilgi asistanı Chat uygulaması, Chat alanında gönderilen mesajlarla ilgili verileri depolamak için Firestore'u kullanır.
  • Pub/Sub: Pub/Sub, mesaj üreten hizmetleri bu mesajları işleyen hizmetlerden ayıran, eşzamansız ve ölçeklenebilir bir mesajlaşma hizmetidir. 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 etkinliğe dayalı mimariler oluşturmanıza olanak tanır. AI bilgi asistanı Chat uygulaması, etkinlikleri Pub/Sub'dan Chat alanına ve abonelik etkinliklerini alan ve işleyen Cloud Functions işlevine yönlendirmek için Eventarc'ı kullanır.
  • Cloud Functions: Sunucu veya çalışma zamanı ortamını yönetmeye gerek kalmadan Chat etkileşimine ve abonelik etkinliklerine yanıt verebilen tek amaçlı, bağımsız işlevler oluşturmanıza olanak tanıyan basit, sunucusuz bir bilgi işlem hizmetidir. AI bilgi asistanı Chat uygulaması, şu adlara sahip iki Cloud Functions işlevini kullanır:
    • app: Chat'in bu etkinlikleri işleyen ve bunlara yanıt veren bir mantık çalıştırmak için işlem platformu olarak etkileşim etkinlikleri gönderdiği HTTP uç noktasını barındırın.
    • eventsApp: Pub/Sub aboneliğinden gelen mesajlar gibi Chat alanı etkinliklerini alır ve işler.
    Cloud Functions, 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 Console

  1. Google Cloud konsolunda 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ğ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ıza uygun bir kimlik seçin.

  3. Konum alanında, projenizin olası konumlarını görüntülemek için Göz at'ı tıklayın. Ardından Seç'i tıklayın.
  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 CLI'nin halihazırda kurulu olduğu 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 CLI'ı yükleyin ve initialize.
    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 öğesini 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 İç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 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ği'dir.
    • 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 ardından Sonraki'yi tıklayın.

  3. Doğru API'leri etkinleştirdiğinizden emin olun ve ardından 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ınlayacağınız için yer tutucu bilgilerini kullanabilirsiniz. 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 ardından Oluştur'u tıklayın.

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

  4. Kullanıcı desteği e-postası bölümünde, e-posta adresinizi veya uygun bir Google grubunu seçin.

  5. Geliştirici iletişim bilgileri bölümünün altına 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 kapsamların listesini içeren bir panel gösterilir.

  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. Add to Table'ı (Tabloya Ekle) tıklayın.

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

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

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

OAuth istemci kimliği kimlik bilgileri oluşturma

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

    Kimlik bilgilerine git

  2. Kimlik Bilgisi 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 konsolunda gösterilir.

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

  6. URI 1'e aşağıdakileri yazın:

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

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

    • REGION: Cloud Functions işlevinin bulunduğu bölge (ö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'u indir'i tıklayın.

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

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

Pub/Sub konusunu oluşturma

Pub/Sub konusu, Google Workspace Events API ile birlikte çalışarak Chat alanındaki mesajlar gibi etkinliklere abone olur ve Chat uygulamasına gerçek zamanlı olarak bildirim gönderir.

Pub/Sub konusunun nasıl oluşturulacağı aşağıda açıklanmıştır:

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 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üntülenir.

  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 yayın yapma izni verin:

    1. events-api panelinde İZİNLER altında Ana Hesap Ekle'yi tıklayın.

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

    3. Rol atama bölümünde, 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ını oluşturma

Firestore veritabanını kalıcı olarak sağlar ve Chat alanlarından mesajlar gibi verileri alır. model/message.js ve services/firestore-service.js dosyaları tarafından örnek kodda dolaylı olarak ayarlanan veri modelini tanımlamazsınız.

AI bilgi asistanı Chat uygulaması veritabanı, koleksiyonlar halinde düzenlenmiş belgeleri temel alan bir NoSQL veri modeli kullanır. Daha fazla bilgi edinmek için Firestore veri modeli bölümünü inceleyin.

Aşağıdaki şemada, yapay zeka bilgi asistanı 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 içinde 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ı Chat alanına ekleyen kullanıcıyı temsil eder.

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

spaces

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

Alanlar
Document 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 ile 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 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 saat.

users

Yapay zeka 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ı aşağıdaki gibi oluşturabilirsiniz:

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 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ızı adlandırın bölümünde Veritabanı Kimliği'ni (default) olarak bırakın.

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

    3. Region (Bölge) bölümünde, veritabanınız için us-central1 gibi bir bölge belirtin. En iyi performans için Chat uygulamasının Cloud Functions ile aynı veya yakındaki konumu seçin.

  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 değerini us-central1 gibi bir Firestore bölgesi adıyla değiştirin. En iyi performans için Chat uygulamasının Cloud Functions ile aynı veya yakındaki konumu seçin.

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

Google Cloud projeniz oluşturulduğuna ve yapılandırıldığına göre Chat uygulamasını derleyip dağıtmaya hazırsınız. Bu bölümde aşağıdakileri yapacaksınız:

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

Cloud Functions oluşturma ve dağıtma

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

  • app: Chat'ten alınan etkinliklere HTTP istekleri olarak yanıt veren 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 işlevleri birlikte AI bilgi asistanı Chat uygulamasının uygulama mantığını oluşturur.

İsteğe bağlı olarak, Cloud Functions'ı oluşturmadan önce biraz zaman ayırarak GitHub'da barındırılan örnek kodu inceleyin ve bu kod hakkında bilgi edinin.

GitHub'da göster

app oluşturup dağıtın

Google Cloud Console

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

    Zip dosyasını indirme

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

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

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

  4. google-chat-samples/node/ai-knowledge-assistant dizinine, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğiniz client_secrets.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ı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 konsolunda Menü > Cloud Functions'a gidin.

    Cloud Functions'a git

    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 bölümünde 2. nesil'i seçin.
    2. İşlev adı alanına app yazın.
    3. Bölge'den us-central1 gibi bir bölge seçin. Bu bölge, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir.
    4. Tetikleyici türü bölümü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ı'nda Node.js 20'yi seçin.

  10. Giriş noktası'nda varsayılan metni silin ve app yazın.

  11. Kaynak kodu bölümünde Posta yüklemesi'ni seçin.

  12. Hedef paket'te bir paket oluşturun veya seçin:

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

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

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

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

    Cloud Functions ayrıntı sayfası açılır ve işlevinizde biri derleme, diğeri hizmet için olmak üzere iki ilerleme göstergesi gösterilir. Her iki ilerleme göstergesi de kaybolduğunda ve yerine bir onay işareti konulduğunda işleviniz dağıtılır ve hazır olur.

  15. Sabit değerleri ayarlamak için örnek kodu 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çın ve düzenleyin:
      1. project değerini Cloud projenizin kimliğine ayarlayın.
      2. location değerini, Cloud Functions işlevinin bölgesine (ör. us-central1) ayarlayın.
  16. Dağıt'ı tıklayın.

gcloud CLI

  1. GitHub'dan 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. google-chat-samples/node/ai-knowledge-assistant dizinine, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğ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 projenizin kimliğine 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
    

    REGION değerini, env.js dosyasında ayarlanan us-central1 gibi, Cloud Functions işlevinin bölgesi değeriyle değiştirin.

eventsApp oluşturup dağıtın

Google Cloud Console

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

    Cloud Functions'a git

    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 bölümünde 2. nesil'i seçin.
    2. İşlev adı alanına eventsApp yazın.
    3. Bölge'den us-central1 gibi bir bölge seçin. Bu bölge, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda yetkili yönlendirme URI'sinde ayarladığınız bölgeyle eşleşmelidir.
    4. Tetikleyici türü bölümünde Cloud Pub/Sub'ı seçin.
    5. Cloud Pub/Sub konusu'nda, oluşturduğunuz Pub/Sub konu adını seçin. Bu ad projects/PROJECT/topics/events-api biçimindedir. 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ı'nda Node.js 20'yi seçin.

  5. Giriş noktası'nda varsayılan metni silin ve eventsApp yazın.

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

  7. Cloud Storage konumunda, 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. Dağıt'ı tıklayın.

    Cloud Functions ayrıntı sayfası açılır ve işleviniz için biri derleme, diğeri hizmet ve diğeri tetikleyici için olmak üzere üç ilerleme durumu göstergesi gösterilir. Üç ilerleme göstergesi de kaybolduğunda ve yerine bir onay işareti konulduğunda işleviniz dağıtılmış ve hazır demektir.

  12. Sabit değerleri ayarlamak için örnek kodu 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çın ve düzenleyin:
      1. project değerini Cloud projenizin kimliğine ayarlayın.
      2. location değerini, Cloud Functions işlevinin bölgesine (ör. us-central1) 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 AI bilgi asistanı Chat uygulamasının kodunu barındıran dizine geçin:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. google-chat-samples/node/ai-knowledge-assistant dizinine, kimlik doğrulama ve yetkilendirme için OAuth istemci kimliği kimlik bilgileri oluşturduğunuzda indirdiğ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 projenizin kimliğine 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
    

    REGION değerini, env.js dosyasında ayarlanan us-central1 gibi, Cloud Functions işlevinin bölgesi 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ırın.

Google Cloud Console

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

    Cloud Functions'a git

  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 uygulamanızın adı ve Chat uygulamasının Chat etkileşim etkinliklerini gönderdiği Cloud Functions işlevinin tetikleyici URL'si de dahil olmak üzere Chat uygulamanızla ilgili bilgilerle Google Cloud Console'da Chat API'yi nasıl yapılandırabileceğiniz gösterilmektedir.

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

    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 tıklayarak 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. App URL'ye, https://REGION-PROJECT_ID.cloudfunctions.net/app biçimindeki app Cloud Functions işlevindeki tetikleyici URL'yi yapıştırın. Burada REGION, Cloud Functions işlevinin bulunduğu bölgedir (us-central1 gibi), PROJECT_ID oluşturduğunuz Cloud projesinin Proje Kimliği'dir.

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

  10. Dilerseniz Günlükler bölümünde Hataları günlüğe kaydet'i seçebilirsiniz.

  11. Kaydet'i tıklayın. Bir yapılandırma kaydedilmiş mesajı görünür. Bu, Chat uygulamasının teste hazır olduğu anlamına gelir.

Chat uygulamasını test etme

Chat alanında, yapay zeka bilgi asistanı Chat uygulamasının yanıtlayabileceği sorular sorarak AI bilgi asistanı Chat uygulamasını test edin.

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

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

Bu eğitim için bir Chat alanı oluşturup Chat ile geliştirmeye genel bakış kılavuzundan birkaç paragrafı yapıştıralım.

  1. Google Chat'i açın.

    Google Chat'e git

  2. Chat alanı oluşturma:

    1. Yeni Chat > 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? 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 iletileri ekleyin:

    1. Bir web tarayıcısında, Chat ile geliştirmeye 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 yazma çubuğuna @AI knowledge assistant yazın ve görüntülenen öneri menüsüne girin, yapay zeka bilgi asistanı Chat 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 sekme açılır. Test için kullanacağınız hesabı seçin.
      3. Yapay zeka bilgi asistanının 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üyor. Tarayıcı penceresini veya sekmesini kapatıp Chat alanına dönün.
  5. Bir soru sorun:

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

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

    3. Yanıt doğru veya yeterli değilse yapay zekanın ileti dizisi geçmişinin iyileştirilmesine yardımcı olmak için isteğe bağlı olarak Yardım al'ı tıklayın. Yapay zeka bilgi asistanı Chat uygulaması, bir alan yöneticisinden bahsediyor ve soruyu cevaplamasını istiyor. Bir dahaki sefere, yapay zeka bilgi asistanı Chat uygulaması yanıtı bilecektir.

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

Bu bölümde, yapay zeka bilgi asistanı Chat uygulamasını oluşturmanın diğer yolları incelenmektedir.

Firestore, Cloud Storage veya Chat API'de Liste Mesajlarını çağırma

Bu eğitim, 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 bir Firestore veritabanında depolanmasını önerir. Ayrıca list messages hizmetinin 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 sohbet geçmişi çok uzun hale gelirse Firestore kullanmak maliyetli olabilir.

Cloud Storage , Firestore'a alternatiftir. AI bilgi asistanı Chat uygulamasının etkin olduğu her alan kendi nesnesini alır ve her nesne, alandaki tüm mesajları içeren bir metin dosyasıdır. Bu yaklaşımın avantajı, metin dosyasının tüm içeriğinin Gemini ile tek seferde Vertex AI'a aktarılmasıdır. Ancak dezavantajı, Cloud Storage'da bir nesneye ekleme işlemi yerine bu nesneyi değiştirmek yerine sohbet geçmişinin güncellenmesi için daha fazla çalışma yapılmasıdır. Mesaj geçmişini düzenli olarak güncelliyorsanız bu yaklaşım mantıklı olmayacaktır. Ancak mesaj geçmişini düzenli olarak (örneğin, haftada bir kez) toplu olarak güncellemeniz önerilir.

Sorun giderme

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

Chat kullanıcı arayüzünde hata mesajı görüntülenmese de Chat uygulamaları için hata günlük kaydı etkinleştirildiğinde hataları düzeltmenize yardımcı olmak amacıyla açıklayıcı hata mesajları ve günlük verileri sunulur. Hataları görüntüleme, hata ayıklama ve düzeltme konusunda yardım almak 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 listesinde, silmek istediğiniz projeyi seçin ve ardından Sil simgesini tıklayın.
  3. İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.