Odpowiadanie na pytania na podstawie rozmów z Google Chat w aplikacji Gemini AI Chat

W tym samouczku pokazujemy, jak utworzyć aplikację Google Chat, która odpowiada na pytania na podstawie rozmów w pokojach czatu, korzystając z generatywnej AI opartej na Vertex AI w Gemini. Aplikacja do obsługi czatu wykorzystuje interfejs Google Workspace Event API oraz Pub/Sub, aby rozpoznawać pytania publikowane w pokojach czatu i odpowiadać na nie w czasie rzeczywistym, nawet jeśli użytkownicy o nich nie wspominają.

Aplikacja Google Chat wykorzystuje wszystkie wiadomości wysłane w pokoju jako źródło danych i bazę wiedzy: gdy ktoś zadaje pytanie, aplikacja Google Chat sprawdza udostępnione wcześniej odpowiedzi, a potem je udostępnia. Jeśli nie znaleziono odpowiedzi, wyświetlany jest komunikat o tym, że nie można odpowiedzieć. Przy każdej odpowiedzi użytkownicy mogą kliknąć przycisk polecenia akcesoriów, aby dodać @wzmiankę o menedżerze pokoju i poprosić o odpowiedź. Dzięki Gemini AI aplikacja Google Chat dostosowuje i powiększa swoją bazę wiedzy, stale ucząc się rozmów w pokojach, do których jest dodawana.

Oto jak działa aplikacja Google Chat w pokoju dla nowych pracowników i w miejscu pomocy:

  • Wzmianka o aplikacji Asystent wiedzy o AI dodaje ją do pokoju.
    Rysunek 1. Karol dodaje do pokoju czatu aplikację Google Chat pomagającą w wiedzy na temat AI.
  • Anna zadaje pytanie.
    Rysunek 2. Anna pyta, czy firma oferuje szkolenia z przemówień publicznych.
  • Aplikacja Google Chat pomagająca w umiejętności AI odpowiada na to pytanie.
    Rysunek 3. Aplikacja Google Chat z asystentem wiedzy na temat AI prosi Vertex AI w Gemini o udzielenie odpowiedzi na pytanie Dany na podstawie historii rozmów w pokoju czatu, a następnie udostępnia odpowiedź.

Wymagania wstępne

Cele

  • Stwórz aplikację do obsługi czatu, która będzie wykorzystywać generatywną AI do odpowiadania na pytania na podstawie wiedzy przekazywanej w rozmowach w pokoju czatu.
  • Generatywna AI:
    • Wykrywaj pytania pracowników i odpowiadaj na nie.
    • Ciągłe uczenie się z trwających rozmów w pokoju czatu.
  • Możesz słuchać wiadomości i odpowiadać na nie w pokoju czatu w czasie rzeczywistym, nawet jeśli aplikacja Google Chat nie wysyła wiadomości bezpośrednio.
  • Utrwalaj wiadomości przez zapis i odczyt w bazie danych Firestore.
  • Ułatwianie współpracy w pokoju czatu, wspominając o menedżerach pokoi, gdy nie udało się znaleźć odpowiedzi na pytanie.

Architektura

Poniższy diagram przedstawia architekturę zasobów Google Workspace i zasobów Google Cloud używanych przez aplikację Google Chat z Asystentem wiedzy o AI.

Schemat architektury aplikacji Google Chat z Asystentem wiedzy o AI

Aplikacja Google Chat z asystentem wiedzy na temat AI działa w ten sposób:

  • Użytkownik dodaje do pokoju czatu aplikację Google Chat z asystentem wiedzy o AI:

    1. Aplikacja Google Chat prosi użytkownika, który dodał ją do pokoju, o skonfigurowanie uwierzytelniania i autoryzacji.

    2. Aplikacja Google Chat pobiera wiadomości z pokoju, wywołując metodę spaces.messages.list w interfejsie Chat API, a następnie zapisuje pobrane wiadomości w bazie danych Firestore.

    3. Aplikacja Google Chat wywołuje metodę subscriptions.create w interfejsie Google Workspace Event API, aby rozpocząć nasłuchiwanie zdarzeń takich jak wiadomości w pokoju. Punkt końcowy powiadomień subskrypcji to temat Pub/Sub, który używa Eventarc do przekazywania zdarzenia do aplikacji Google Chat.

    4. Aplikacja Google Chat opublikuje wiadomość z wprowadzeniem w pokoju.

  • Użytkownik w pokoju czatu publikuje wiadomość:

    1. Aplikacja do obsługi czatu otrzymuje wiadomość w czasie rzeczywistym z tematu Pub/Sub.

    2. Aplikacja Google Chat doda wiadomość do bazy danych Firestore.

      Jeśli użytkownik później zmodyfikuje lub usunie wiadomość, aplikacja Google Chat otrzyma zaktualizowane lub usunięte zdarzenie w czasie rzeczywistym, a następnie zaktualizuje lub usunie wiadomość w bazie danych Firestore.

    3. Aplikacja Google Chat wysyła wiadomość do Vertex AI za pomocą Gemini:

      1. Prompt informuje Vertex AI z Gemini, by sprawdził, czy wiadomość zawiera pytanie. Jeśli tak, Gemini odpowie na pytanie na podstawie historii wiadomości pokoju czatu przechowywanej w Firestore, a aplikacja Google Chat wyśle wiadomość do pokoju czatu. Jeśli nie, nie odpowiadaj.

      2. Jeśli Vertex AI with Gemini udzieli odpowiedzi na to pytanie, aplikacja Google Chat opublikuje odpowiedź, wywołując w interfejsie Chat API metodę spaces.messages.create z użyciem uwierzytelniania aplikacji.

        Jeśli Vertex AI z Gemini nie może odpowiedzieć na to pytanie, aplikacja Google Chat publikuje wiadomość, że nie może znaleźć odpowiedzi na to pytanie w historii pokoju czatu.

        Wiadomości zawsze zawierają przycisk polecenia akcesoriów, który użytkownicy mogą kliknąć. Powoduje to @wzmiankę o menedżerze pokoju, który chce udzielić odpowiedzi.

  • Aplikacja Google Chat otrzymuje z interfejsu Google Workspace Event API powiadomienie dotyczące cyklu życia, że subskrypcja pokoju czatu wkrótce wygaśnie:

    1. Aplikacja Google Chat wysyła żądanie odnowienia subskrypcji, wywołując metodę subscriptions.patch w interfejsie Google Workspace Event API.
  • Aplikacja Google Chat zostanie usunięta z pokoju czatu:

    1. Aplikacja Google Chat usuwa subskrypcję, wywołując metodę subscriptions.delete w interfejsie Google Workspace Event API.

    2. Aplikacja Google Chat usuwa dane pokoju czatu z Firestore.

Przyjrzyj się usługom, z których korzysta aplikacja Google Chat Asystent wiedzy o AI

Aplikacja Google Chat z Asystentem wiedzy o AI korzysta z tych usług Google Workspace i Google Cloud:

  • Vertex AI API z Gemini: platforma generatywnej AI obsługiwana przez Gemini. Aplikacja Google Chat, która jako asystent wiedzy AI, używa interfejsu Vertex AI API z Gemini do rozpoznawania i analizowania pytań pracowników oraz odpowiadania na nie.
  • Chat API: interfejs API do tworzenia aplikacji Google Chat, które odbierają zdarzenia interakcji z Google Chat, takie jak wiadomości, i reagują na nie. Aplikacja Google Chat, która wspiera wiedzę AI, używa interfejsu Chat API, aby:
    • Otrzymywać zdarzenia interakcji wysyłane przez Google Chat i odpowiadać na nie.
    • Wyświetl listę wiadomości wysłanych w pokoju.
    • Publikowanie odpowiedzi na pytania użytkowników w pokoju.
    • Skonfiguruj atrybuty określające sposób wyświetlania informacji w Google Chat, takie jak nazwa i obraz awatara.
  • Google Workspace Event API: ten interfejs API umożliwia subskrybowanie zdarzeń i zarządzanie powiadomieniami o zmianach w aplikacjach Google Workspace. Aplikacja Google Chat pomagająca w rozwijaniu wiedzy na temat sztucznej inteligencji używa interfejsu Google Workspace events API do nasłuchiwania wiadomości publikowanych w pokoju czatu. Dzięki temu może wykrywać pytania i odpowiadać na nie nawet wtedy, gdy o nich nie ma wzmianek.
  • Firestore: bezserwerowa baza danych dokumentów. Aplikacja Google Chat zawierająca asystent wiedzy o AI korzysta z Firestore do przechowywania danych o wiadomościach wysłanych w pokoju czatu.
  • Pub/Sub: Pub/Sub to asynchroniczna i skalowalna usługa do przesyłania wiadomości, która oddziela usługi generujące wiadomości z usług przetwarzających te wiadomości. Aplikacja Google Chat, która posiada asystent wiedzy na temat AI, używa Pub/Sub do odbierania zdarzeń subskrypcji z pokoi czatu.
  • Eventarc: Eventarc umożliwia tworzenie architektury opartych na zdarzeniach bez konieczności wdrażania, dostosowywania czy utrzymywania dotychczasowej infrastruktury. Aplikacja Google Chat, która wspomaga wiedzę AI, używa Eventarc do kierowania zdarzeń z Pub/Sub do pokoju czatu i funkcji w Cloud Functions, która odbiera i przetwarza zdarzenia subskrypcji.
  • Cloud Functions: lekka bezserwerowa usługa obliczeniowa, która umożliwia tworzenie jednozadaniowych, samodzielnych funkcji, które mogą reagować na interakcje z Google Chat i zdarzenia subskrypcji bez konieczności zarządzania serwerem lub środowiskiem wykonawczym. Aplikacja Google Chat dla asystenta wiedzy na temat AI korzysta z 2 funkcji w Cloud Functions o nazwach:
    • app: hostuj punkt końcowy HTTP, do którego Google Chat wysyła zdarzenia interakcji, i jako platformę obliczeniową do uruchamiania logiki, która przetwarza te zdarzenia i na nie reaguje.
    • eventsApp: odbiera i przetwarza zdarzenia z pokoju czatu, takie jak wiadomości z subskrypcji Pub/Sub.
    Do tworzenia i hostowania zasobów obliczeniowych Cloud Functions używa tych usług Google Cloud:
    • Cloud Build: w pełni zarządzana platforma ciągłej integracji, dostarczania i wdrażania, która uruchamia automatyczne kompilacje.
    • Cloud Run: w pełni zarządzane środowisko do uruchamiania aplikacji skonteneryzowanych.

Przygotowywanie środowiska

W tej sekcji dowiesz się, jak utworzyć i skonfigurować projekt Google Cloud na potrzeby aplikacji Google Chat.

Tworzenie projektu Google Cloud

Konsola Google Cloud

  1. W konsoli Google Cloud kliknij Menu > Administracja > Utwórz projekt.

    Otwórz stronę Utwórz projekt

  2. W polu Nazwa projektu wpisz opisową nazwę projektu.

    Opcjonalnie: aby edytować identyfikator projektu, kliknij Edytuj. Po utworzeniu projektu nie można zmienić identyfikatora, więc wybierz taki, który spełnia Twoje potrzeby przez cały okres istnienia projektu.

  3. W polu Lokalizacja kliknij Przeglądaj, aby wyświetlić potencjalne lokalizacje swojego projektu. Następnie kliknij Wybierz.
  4. Kliknij Utwórz. W konsoli Google Cloud otworzy się strona panelu, a w ciągu kilku minut zostanie utworzony projekt.

interfejs wiersza poleceń gcloud

Uzyskaj dostęp do interfejsu wiersza poleceń Google Cloud („gcloud”) w jednym z tych środowisk programistycznych:

  • Cloud Shell: aby używać terminala online ze skonfigurowanym już interfejsem wiersza poleceń gcloud, aktywuj Cloud Shell.
    Aktywuj Cloud Shell
  • Local Shell (Powłoka lokalna): aby używać lokalnego środowiska programistycznego, zainstaluj i initialize interfejs wiersza poleceń gcloud.
    Aby utworzyć projekt Cloud, użyj polecenia `gcloud projects create`:
    gcloud projects create PROJECT_ID
    Zastąp PROJECT_ID, ustawiając identyfikator projektu, który chcesz utworzyć.

Włączanie płatności w projekcie Cloud

Konsola Google Cloud

  1. W konsoli Google Cloud otwórz Rozliczenia. Kliknij Menu > Płatności > Moje projekty.

    Otwórz stronę Płatności w moich projektach

  2. W sekcji Wybierz organizację wybierz organizację powiązaną z Twoim projektem Google Cloud.
  3. W wierszu projektu otwórz menu Działania (), kliknij Zmień płatności i wybierz konto rozliczeniowe Cloud.
  4. Kliknij Ustaw konto.

interfejs wiersza poleceń gcloud

  1. Aby wyświetlić listę dostępnych kont rozliczeniowych, uruchom polecenie:
    gcloud billing accounts list
  2. Połącz konto rozliczeniowe z projektem Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Zastąp następujące elementy:

    • PROJECT_ID to identyfikator projektu projektu Cloud, w którym chcesz włączyć płatności.
    • BILLING_ACCOUNT_ID to identyfikator konta rozliczeniowego, które ma zostać połączone z projektem Google Cloud.

Włącz interfejsy API

Konsola Google Cloud

  1. W konsoli Google Cloud włącz interfejsy Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Event API, Eventarc API oraz Cloud Run Admin API.

    Włączanie interfejsów API

  2. Sprawdź, czy interfejsy API włączasz w odpowiednim projekcie Cloud, a następnie kliknij Dalej.

  3. Sprawdź, czy włączasz właściwe interfejsy API, a następnie kliknij Włącz.

interfejs wiersza poleceń gcloud

  1. W razie potrzeby ustaw bieżący projekt Cloud na ten utworzony:

    gcloud config set project PROJECT_ID
    

    Zastąp PROJECT_ID identyfikatorem projektu utworzonego projektu Cloud.

  2. Włącz interfejsy Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Event API, Eventarc API oraz Cloud Run Admin API:

    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
    

Konfigurowanie uwierzytelniania i autoryzacji

Uwierzytelnianie i autoryzacja zapewnia aplikacji Google Chat dostęp do zasobów w Google Workspace i Google Cloud.

W tym samouczku publikujesz aplikację Google Chat wewnętrznie, aby można było używać informacji zastępczych. Zanim opublikujesz aplikację Google Chat na zewnątrz, zastąp informacje zastępcze rzeczywistymi informacjami na ekranie zgody.

  1. W konsoli Google Cloud kliknij Menu > Interfejsy API i usługi > Ekran akceptacji OAuth.

    Otwórz ekran zgody OAuth

  2. W sekcji Typ użytkownika wybierz Wewnętrzny i kliknij Utwórz.

  3. W polu Nazwa aplikacji wpisz AI knowledge assistant.

  4. W sekcji Adres e-mail pomocy technicznej dla użytkowników wybierz swój adres e-mail lub odpowiednią grupę dyskusyjną Google.

  5. W sekcji Informacje kontaktowe dewelopera wpisz swój adres e-mail.

  6. Kliknij Save and Continue.

  7. Kliknij Dodaj lub usuń zakresy. Pojawi się panel z listą zakresów dla każdego interfejsu API włączonego w projekcie Cloud.

  8. W sekcji Dodaj zakresy ręcznie wklej ten zakres:

    • https://www.googleapis.com/auth/chat.messages
  9. Kliknij Dodaj do tabeli.

  10. Kliknij Aktualizuj.

  11. Kliknij Save and Continue.

  12. Przejrzyj podsumowanie rejestracji aplikacji i kliknij Powrót do panelu.

Utwórz dane uwierzytelniające identyfikator klienta OAuth

  1. W konsoli Google Cloud kliknij Menu > Interfejsy API i usługi > Dane logowania.

    Otwórz stronę Dane logowania

  2. Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.

  3. Kliknij Typ aplikacji > Aplikacja internetowa.

  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.

  5. W sekcji Autoryzowane identyfikatory URI przekierowania kliknij Dodaj URI.

  6. W identyfikatorach URI 1 wpisz:

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

    Zastąp następujące elementy:

    • REGION: region funkcji w Cloud Functions, np. us-central1. Później, podczas tworzenia tych 2 funkcji w Cloud Functions, musisz ustawić ich region na tę wartość.
    • PROJECT_ID: identyfikator utworzonego projektu Cloud.
  7. Kliknij Utwórz.

  8. W oknie Utworzono klienta OAuth kliknij Pobierz JSON.

  9. Zapisz pobrany plik jako client_secrets.json. Później, podczas tworzenia tych 2 funkcji w Cloud Functions, do każdego wdrożenia dołączysz plik client_secrets.json.

  10. Kliknij OK.

Tworzenie tematu Pub/Sub

Temat Pub/Sub współpracuje z interfejsem Google Workspace Event API, aby subskrybować zdarzenia w pokoju czatu, takie jak wiadomości, i powiadamiać aplikację Google Chat w czasie rzeczywistym.

Tworzenie tematu Pub/Sub:

Konsola Google Cloud

  1. W konsoli Google Cloud kliknij Menu > Pub/Sub.

    Otwórz Pub/Sub

  2. Kliknij Utwórz temat.

  3. W polu Identyfikator tematu wpisz events-api.

  4. Odznacz Dodaj subskrypcję domyślną.

  5. W sekcji Szyfrowanie wybierz Klucz szyfrowania zarządzany przez Google.

  6. Kliknij Utwórz. Pojawi się temat Pub/Sub.

  7. Aby ten temat Pub/Sub działał razem, przyznaj użytkownikowi uprawnień do obsługi czatu uprawnienia do publikowania w temacie Pub/Sub:

    1. W panelu events-api w sekcji UPRAWNIENIA kliknij Dodaj podmiot zabezpieczeń.

    2. W sekcji Dodaj podmioty zabezpieczeń w polu Nowe podmioty zabezpieczeń wpisz chat-api-push@system.gserviceaccount.com.

    3. W sekcji Przypisz role w obszarze Wybierz rolę kliknij Pub/Sub > Pub/Sub Publisher.

    4. Kliknij Zapisz.

interfejs wiersza poleceń gcloud

  1. Utwórz temat Pub/Sub o identyfikatorze tematu events-api:

    gcloud pubsub topics create events-api
    
  2. Przyznaj użytkownikowi uprawnień do Google Chat uprawnienia do publikowania w temacie Pub/Sub:

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

Tworzenie bazy danych Firestore

Baza danych Firestore, która będzie utrzymywać i pobierać dane z pokoi czatu, np. wiadomości. Nie definiujesz modelu danych, który jest domyślnie ustawiany w przykładowym kodzie przez pliki model/message.js i services/firestore-service.js.

Baza danych aplikacji Google Chat z asystentem wiedzy na temat AI korzysta z modelu danych NoSQL na podstawie dokumentów uporządkowanych w kolekcje. Więcej informacji znajdziesz w artykule o modelu danych Firestore.

Ten diagram przedstawia przegląd modelu danych aplikacji Google Chat i asystenta wiedzy o AI:

Model danych bazy danych Firestore.

Folder główny zawiera 2 kolekcje:

  1. spaces, gdzie każdy dokument reprezentuje pokój czatu, do którego została dodana aplikacja Google Chat. Każda wiadomość jest reprezentowana przez dokument z kolekcji podrzędnej messages.

  2. users, gdzie każdy dokument reprezentuje użytkownika, który dodał aplikację Google Chat do pokoju.

Wyświetlanie definicji kolekcji, dokumentów i pól

spaces

Pokój czatu zawierający aplikację Google Chat z asystentem wiedzy na temat AI.

Pola
Document IDString
Unikalny identyfikator konkretnego pokoju. Część nazwy zasobu pokoju w Google Chat API.
messagesSubcollection of Documents (messages)
Wiadomości wysłane w pokoju czatu. Odpowiada wartość Document ID elementu message w Firebase.
spaceNameString
Unikalna nazwa pokoju w Google Chat API. Odpowiada to nazwie zasobu pokoju w interfejsie Chat API.

messages

Wiadomości wysłane w pokoju czatu.

Pola
Document IDString
Unikalny identyfikator konkretnej wiadomości.
nameString
Unikalna nazwa wiadomości w interfejsie Chat API. Odpowiada to nazwie zasobu wiadomości w interfejsie Chat API.
textString
Treść wiadomości.
timeString (Timestamp format)
Godzina utworzenia wiadomości.

users

Użytkownicy, którzy dodali do pokoju czatu aplikację Google Chat z asystentem wiedzy na temat AI.

Pola
Document IDString
Unikalny identyfikator konkretnego użytkownika.
accessTokenString
Token dostępu przyznany podczas autoryzacji użytkownika OAuth 2.0 używany do wywoływania interfejsów Google Workspace API.
refreshTokenString
Token odświeżania przyznany podczas autoryzacji użytkownika OAuth 2.0.

Aby utworzyć bazę danych Firestore:

Konsola Google Cloud

  1. W konsoli Google Cloud kliknij Menu > Firestore.

    Otwórz Firestore

  2. Kliknij Utwórz bazę danych.

  3. W sekcji Wybierz tryb Firestore kliknij Tryb natywny.

  4. Kliknij Dalej.

  5. Skonfiguruj bazę danych:

    1. W polu Nazwij bazę danych pozostaw w polu Identyfikator bazy danych wartość (default).

    2. W sekcji Typ lokalizacji wybierz Region.

    3. W polu Region określ region bazy danych, na przykład us-central1. Aby uzyskać najlepszą wydajność, wybierz tę samą lub w pobliżu lokalizację odpowiadającą Cloud Functions w aplikacji Google Chat.

  6. Kliknij Utwórz bazę danych.

interfejs wiersza poleceń gcloud

  • Utwórz bazę danych Firestore w trybie natywnym:

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

    Zastąp LOCATION nazwą regionu Firestore, np. us-central1. Aby uzyskać najlepszą wydajność, wybierz tę samą lub w pobliżu lokalizację co dla funkcji w Cloud Functions w aplikacji Google Chat.

Tworzenie i wdrażanie aplikacji Google Chat

Po utworzeniu i skonfigurowaniu projektu Google Cloud możesz skompilować i wdrożyć aplikację Google Chat. W tej sekcji wykonaj te czynności:

  1. Utwórz i wdróż 2 funkcje w Cloud Functions. Jedna do reagowania na zdarzenia interakcji w Google Chat, a druga na zdarzenia Pub/Sub.
  2. Utwórz i wdróż aplikację do obsługi czatu na stronie konfiguracji interfejsu Google Chat API.

Tworzenie i wdrażanie funkcji w Cloud Functions

W tej sekcji utworzysz i wdrożysz 2 funkcje w Cloud Functions o nazwach:

  • app: hostuje i uruchamia kod aplikacji Google Chat, który odpowiada na zdarzenia otrzymywane z Google Chat w formie żądań HTTP.
  • eventsApp: odbiera i przetwarza zdarzenia z pokoju czatu, takie jak wiadomości z Pub/Sub.

Razem te funkcje w Cloud Functions składają się na logikę aplikacji aplikacji Google Chat zawierającej asystenta wiedzy opartej na AI.

Opcjonalnie, zanim utworzysz funkcje w Cloud Functions, poświęć chwilę na zapoznanie się z przykładowym kodem hostowanym w GitHubie.

Wyświetl w GitHubie

Utwórz i wdróż aplikację app

Konsola Google Cloud

  1. Pobierz kod z GitHuba jako plik ZIP.

    Pobierz plik ZIP

  2. Wyodrębnij pobrany plik ZIP.

    Wyodrębniony folder zawiera całe repozytorium przykładów z Google Workspace.

  3. W wyodrębnionym folderze przejdź do katalogu google-chat-samples-main/node/ai-knowledge-assistant.

  4. W katalogu google-chat-samples/node/ai-knowledge-assistant dodaj plik client_secrets.json pobrany podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.

  5. Skompresuj zawartość folderu ai-knowledge-assistant do pliku ZIP.

    Katalog główny pliku ZIP musi zawierać te pliki i foldery:

    • .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. W konsoli Google Cloud otwórz Menu > Cloud Functions.

    Otwórz Cloud Functions

    Upewnij się, że wybrany jest projekt Google Cloud dla aplikacji Google Chat.

  7. Kliknij Utwórz funkcję.

  8. Na stronie Utwórz funkcję skonfiguruj funkcję:

    1. W sekcji Środowisko wybierz 2 generacji.
    2. W polu Nazwa funkcji wpisz app.
    3. W polu Region wybierz region, np. us-central1. Musi on być zgodny z regionem ustawionym w autoryzowanym identyfikatorze URI przekierowania podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.
    4. W sekcji Typ aktywatora kliknij HTTPS.
    5. W sekcji Uwierzytelnianie wybierz Zezwalaj na nieuwierzytelnione wywołania.
    6. Kliknij Dalej.
  9. W sekcji Środowisko wykonawcze wybierz Node.js 20.

  10. W polu Punkt wejścia usuń domyślny tekst i wpisz app.

  11. W sekcji Kod źródłowy wybierz Kod pocztowy.

  12. W sekcji Zasobnik docelowy utwórz lub wybierz zasobnik:

    1. Kliknij Przeglądaj.
    2. Wybierz zasobnik.
    3. Kliknij Wybierz.

    Google Cloud przesyła plik ZIP do i rozpakowuje pliki komponentu w tym zasobniku. a potem pliki komponentu są kopiowane do tej funkcji w Cloud Functions.

  13. W pliku ZIP prześlij wyodrębniony i ponownie skompresowany plik ZIP pobrany z GitHuba:

    1. Kliknij Przeglądaj.
    2. Przejdź do pliku ZIP i wybierz go.
    3. Kliknij Otwórz.
  14. Kliknij Wdróż.

    Otworzy się strona Szczegóły funkcji w Cloud Functions, a Twoja funkcja będzie miała 2 wskaźniki postępu: jeden dla kompilacji, a drugi dla usługi. Gdy oba wskaźniki postępu znikną i zostaną zastąpione znacznikiem wyboru, funkcja zostanie wdrożona i gotowa do użycia.

  15. Zmodyfikuj przykładowy kod, aby ustawić stałe:

    1. Na stronie Szczegóły funkcji w Cloud Functions kliknij Edytuj.
    2. Kliknij Dalej.
    3. W sekcji Kod źródłowy wybierz Edytor wbudowany.
    4. W edytorze wbudowanym otwórz i zmodyfikuj plik env.js:
      1. Ustaw wartość project na identyfikator projektu Cloud.
      2. Ustaw wartość location na region funkcji w Cloud Functions, np. us-central1.
  16. Kliknij Wdróż.

interfejs wiersza poleceń gcloud

  1. Sklonuj kod z GitHuba:

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. Przejdź do katalogu z kodem tej aplikacji do obsługi czatu opartej na AI:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. W katalogu google-chat-samples/node/ai-knowledge-assistant dodaj plik client_secrets.json pobrany podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.

  4. Aby ustawić zmienne środowiskowe, edytuj plik env.js:

    1. Ustaw wartość project na identyfikator projektu Cloud.
    2. Ustaw wartość location na region funkcji w Cloud Functions, np. us-central1.
  5. Wdróż funkcję w Cloud Functions w Google Cloud:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated
    

    Zastąp REGION wartością regionu funkcji w Cloud Functions, aby dopasować go do regionu ustawionego w pliku env.js, np. us-central1.

Utwórz i wdróż aplikację eventsApp

Konsola Google Cloud

  1. W konsoli Google Cloud otwórz Menu > Cloud Functions.

    Otwórz Cloud Functions

    Upewnij się, że wybrany jest projekt Google Cloud dla aplikacji Google Chat.

  2. Kliknij Utwórz funkcję.

  3. Na stronie Utwórz funkcję skonfiguruj funkcję:

    1. W sekcji Środowisko wybierz 2 generacji.
    2. W polu Nazwa funkcji wpisz eventsApp.
    3. W polu Region wybierz region, np. us-central1. Musi on być zgodny z regionem ustawionym w autoryzowanym identyfikatorze URI przekierowania podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.
    4. W sekcji Typ aktywatora wybierz Cloud Pub/Sub.
    5. W temacie Cloud Pub/Sub wybierz utworzoną przez siebie nazwę tematu Pub/Sub w formacie projects/PROJECT/topics/events-api, gdzie PROJECT to identyfikator projektu Cloud.
    6. Jeśli zobaczysz komunikat zaczynający się od Service account(s) might not have enough permissions to deploy the function with the selected trigger., kliknij Przyznaj wszystkie.
    7. Kliknij Dalej.
  4. W sekcji Środowisko wykonawcze wybierz Node.js 20.

  5. W polu Punkt wejścia usuń domyślny tekst i wpisz eventsApp.

  6. W sekcji Kod źródłowy wybierz Zip z Cloud Storage.

  7. W sekcji Lokalizacja Cloud Storage kliknij Przeglądaj.

  8. Wybierz zasobnik, do którego został przesłany plik ZIP podczas tworzenia funkcji app w Cloud Functions.

  9. Kliknij przesłany plik ZIP.

  10. Kliknij Wybierz.

  11. Kliknij Wdróż.

    Otworzy się strona Szczegóły funkcji w Cloud Functions z 3 wskaźnikami postępu: jeden dla kompilacji, jeden dla usługi i jeden dla aktywatora. Gdy wszystkie 3 wskaźniki postępu znikną i zastąpione znacznikiem wyboru, funkcja jest wdrożona i gotowa.

  12. Zmodyfikuj przykładowy kod, aby ustawić stałe:

    1. Na stronie Szczegóły funkcji w Cloud Functions kliknij Edytuj.
    2. Kliknij Dalej.
    3. W sekcji Kod źródłowy wybierz Edytor wbudowany.
    4. W edytorze wbudowanym otwórz i zmodyfikuj plik env.js:
      1. Ustaw wartość project na identyfikator projektu Cloud.
      2. Ustaw wartość location na region funkcji w Cloud Functions, np. us-central1.
  13. Kliknij Wdróż.

interfejs wiersza poleceń gcloud

  1. W interfejsie wiersza poleceń gcloud przejdź do katalogu, w którym znajduje się kod tej aplikacji Google Chat z asystentem wiedzy na temat AI, która została wcześniej sklonowana z GitHuba:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. W katalogu google-chat-samples/node/ai-knowledge-assistant dodaj plik client_secrets.json pobrany podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.

  3. Aby ustawić zmienne środowiskowe, edytuj plik env.js:

    1. Ustaw wartość project na identyfikator projektu Cloud.
    2. Ustaw wartość location na region funkcji w Cloud Functions, np. us-central1.
  4. Wdróż funkcję w Cloud Functions w Google Cloud:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api
    

    Zastąp REGION wartością regionu funkcji w Cloud Functions, aby dopasować go do regionu ustawionego w pliku env.js, np. us-central1.

Skopiuj URL aktywatora funkcji app w Cloud Functions

Adres URL aktywatora funkcji app w Cloud Functions wklejasz w następnej sekcji podczas konfigurowania aplikacji Google Chat w konsoli Google Cloud.

Konsola Google Cloud

  1. W konsoli Google Cloud otwórz Menu > Cloud Functions.

    Otwórz Cloud Functions

  2. W kolumnie Nazwa na liście funkcji w Cloud Functions kliknij app.

  3. Kliknij Reguła.

  4. Skopiuj URL.

interfejs wiersza poleceń gcloud

  1. Opisz funkcję app w Cloud Functions:

    gcloud functions describe app
    
  2. Skopiuj właściwość url.

Konfigurowanie aplikacji Google Chat w konsoli Google Cloud

W tej sekcji dowiesz się, jak skonfigurować interfejs Chat API w konsoli Google Cloud przy użyciu informacji o aplikacji do obsługi czatu, w tym jej nazwy i adresu URL aktywatora funkcji w Cloud Functions, do której wysyła ona zdarzenia interakcji z Google Chat.

  1. W konsoli Google Cloud kliknij Menu > Więcej usług > Google Workspace > Biblioteka usług > Google Chat API > Zarządzaj > Konfiguracja.

    Otwórz stronę konfiguracji interfejsu Chat API

  2. W polu Nazwa aplikacji wpisz AI knowledge assistant.

  3. W polu URL awatara wpisz https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. W polu Opis wpisz Answers questions with AI.

  5. Kliknij przełącznik Włącz funkcje interaktywne, aby ustawić go w pozycji włączenia.

  6. W sekcji Funkcjonalność wybierz Dołącz do pokoi i rozmów grupowych.

  7. W sekcji Ustawienia połączenia wybierz URL aplikacji.

  8. W polu URL aplikacji wklej adres URL aktywatora z funkcji app w Cloud Functions w formacie https://REGION-PROJECT_ID.cloudfunctions.net/app, gdzie REGION to region funkcji w Cloud Functions, np. us-central1, a PROJECT_ID to identyfikator projektu utworzonego przez Ciebie projektu Cloud.

  9. W sekcji Widoczność wybierz Udostępnij tę aplikację do obsługi czatu określonym osobom i grupom w domenie Workspace i wpisz swój adres e-mail.

  10. Opcjonalnie w sekcji Logi wybierz Loguj błędy w usłudze Logging.

  11. Kliknij Zapisz. Pojawi się komunikat z zapisaną konfiguracją, co oznacza, że aplikacja Google Chat jest gotowa do przetestowania.

Testowanie aplikacji Google Chat

Testuj aplikację Google Chat z asystentem wiedzy na temat AI w pokoju czatu z wiadomościami, zadając pytania, na które może odpowiedzieć aplikacja Google Chat z asystentem wiedzy o AI.

Oto kilka sposobów na przetestowanie aplikacji Google Chat zawierającej asystenta wiedzy o AI:

  • dodać aplikację Google Chat pomagającą w rozwijaniu wiedzy na temat AI do istniejącego pokoju czatu i zadawać związane z nim pytania;
  • Utwórz pokój czatu i opublikuj kilka wiadomości, aby wykorzystać go jako źródło danych. Wiadomości można pobierać z Gemini za pomocą promptu takiego jak Answer 20 common onboarding questions employees ask their teams. Możesz też wkleić kilka akapitów przewodnika Tworzenie za pomocą Google Chat – omówienie, a potem zadawać pytania.

Na potrzeby tego samouczka utwórzmy pokój czatu i wkleimy kilka akapitów przewodnika Tworzenie pokoju czatu.

  1. Otwórz Google Chat.

    Otwórz Google Chat

  2. Tworzenie pokoju czatu:

    1. Kliknij Nowy czat > Utwórz pokój.

    2. W polu Nazwa pokoju wpisz Testing AI knowledge assistant app.

    3. W sekcji Do czego służy ten pokój? wybierz Współpraca.

    4. W sekcji Ustawienia dostępu wybierz, kto ma mieć dostęp do pokoju.

    5. Kliknij Utwórz.

  3. Dodaj wiadomości, które mają być używane jako źródło danych:

    1. W przeglądarce otwórz przewodnik z omówieniem programowania z Google Chat.

    2. Skopiuj treść przewodnika i wklej ją w utworzonym pokoju czatu.

  4. Dodaj aplikację Google Chat pomagającą w wiedzy na temat AI:

    1. Na pasku tworzenia wiadomości wpisz @AI knowledge assistant, a następnie w wyświetlonym menu sugestii wybierz aplikację Google Chat Asystent wiedzy o AI i naciśnij enter.

    2. Pojawi się komunikat z pytaniem, czy chcesz dodać do pokoju aplikację Google Chat z asystentem wiedzy na temat AI. Kliknij Dodaj do pokoju.

    3. Jeśli po raz pierwszy dodajesz aplikację Google Chat do pokoju, musisz skonfigurować uwierzytelnianie i autoryzację:

      1. Kliknij Skonfiguruj.
      2. Otworzy się nowe okno lub nowa karta przeglądarki z prośbą o wybranie konta Google. Wybierz konto, którego chcesz użyć do testowania.
      3. sprawdzić uprawnienia, o które prosi asystent wiedzy o AI od aplikacji Google Chat. Aby je przyznać, kliknij Zezwól.
      4. Pojawi się komunikat You may close this page now.. Zamknij okno lub kartę przeglądarki i wróć do pokoju czatu.
  5. Zadaj pytanie:

    1. Na pasku tworzenia wiadomości wpisz pytanie, np. What are Google Chat apps?

    2. Aplikacja Google Chat pomagająca w umiejętnościach AI udziela odpowiedzi.

    3. Opcjonalnie, jeśli odpowiedź nie jest dokładna lub nie wystarczy, aby ulepszyć historię rozmów AI, kliknij Uzyskaj pomoc. Aplikacja Google Chat, asystent wiedzy o AI, wspomina o menedżerze pokoju i prosi go o udzielenie odpowiedzi na pytanie. Następnym razem aplikacja Google Chat z asystentem wiedzy o AI zna odpowiedź.

Uwagi do rozważenia, wybór alternatywnej architektury i kolejne kroki

W tej sekcji opisujemy inne sposoby tworzenia aplikacji Google Chat – asystenta wiedzy o AI.

Firestore, Cloud Storage lub wywoływanie komunikatów listy w Google Chat API

W tym samouczku zaleca się przechowywanie w bazie danych Firestore danych z pokoju czatu, takich jak wiadomości, ponieważ zwiększa to wydajność w porównaniu z wywoływaniem metody list w zasobie Message za pomocą interfejsu Chat API za każdym razem, gdy aplikacja Google Chat odpowie na pytanie. Poza tym wielokrotne wywoływanie funkcji list messages może spowodować osiągnięcie przez aplikację Google Chat limitów interfejsu API.

Jeśli jednak historia rozmów w pokoju czatu stanie się zbyt długa, używanie Firestore może być kosztowne.

Alternatywą dla Firestore jest Cloud Storage . Każdy pokój, w którym jest aktywna aplikacja Google Chat z asystentem wiedzy AI, otrzymuje własny obiekt, a każdy obiekt to plik tekstowy zawierający wszystkie wiadomości z pokoju. Zaletą tego podejścia jest to, że całą zawartość pliku tekstowego można przesłać do Vertex AI za pomocą Gemini jednocześnie, ale wadą jest to, że aktualizacja historii rozmowy wymaga więcej pracy, ponieważ nie można dołączyć do obiektu w Cloud Storage, tylko go zastąpić. To podejście nie ma sensu, jeśli regularnie aktualizujesz historię wiadomości, ale lepiej je aktualizować, jeśli okresowo aktualizujesz ją zbiorczo, na przykład raz w tygodniu.

Rozwiązywanie problemów

Gdy aplikacja lub karta Google Chat zwróci błąd, interfejs czatu wyświetli komunikat „Coś poszło nie tak” lub „Nie udało się przetworzyć Twojej prośby”. Czasami w interfejsie Google Chat nie pojawia się żaden komunikat o błędzie, ale aplikacja lub karta Google Chat zwraca nieoczekiwany wynik, na przykład komunikat na karcie może się nie pojawić.

Mimo że komunikat o błędzie może nie wyświetlać się w interfejsie Google Chat, dostępne są opisowe komunikaty o błędach i dane dziennika, które pomogą Ci naprawić błędy występujące po włączeniu logowania błędów w aplikacjach do obsługi czatu. Informacje o wyświetlaniu, debugowaniu i naprawianiu błędów znajdziesz w artykule Rozwiązywanie problemów z Google Chat i ich naprawianie.

Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, zalecamy usunięcie projektu Cloud.

  1. W konsoli Google Cloud otwórz stronę Zarządzanie zasobami. Kliknij Menu > Administracja > Zarządzaj zasobami.

    Otwórz menedżera zasobów

  2. Na liście projektów wybierz projekt, który chcesz usunąć, a następnie kliknij Usuń .
  3. W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.