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

Ten samouczek pokazuje, jak utworzyć aplikację Google Chat, która odpowiada na pytania na podstawie rozmów w pokojach czatu za pomocą generatywnej AI od Vertex AI z Gemini. Aplikacja Google Chat korzysta z interfejsu Google Workspace Events API oraz Pub/Sub, aby rozpoznawać pytania publikowane w pokojach Google Chat i odpowiadać na nie w czasie rzeczywistym, nawet jeśli nie są one wymienione.

Aplikacja Google Chat używa wszystkich wiadomości wysłanych w pokoju jako źródła danych i bazy wiedzy: gdy ktoś zadaje pytanie, aplikacja sprawdza, czy istnieją wcześniej udostępnione odpowiedzi, a następnie udostępnia jedną z nich. Jeśli nie znajdzie odpowiedzi, powie, że nie może odpowiedzieć. W przypadku każdej odpowiedzi użytkownicy mogą kliknąć przycisk dodatkowej czynności, aby @wymienić menedżera pokoju i poprosić o odpowiedź. Dzięki AI Gemini aplikacja Google Chat dostosowuje i rozwija swoją bazę wiedzy, ponieważ stale się uczy na podstawie rozmów w pomieszczeniach, do których została dodana.

Oto jak aplikacja Google Chat działa w przestrzeni onboardingowej i pomocniczej dla pracowników:

  • Wspomnienie aplikacji z asystentem AI powoduje jej dodanie do pokoju.
    Rysunek 1. Charlie dodaje do pokoju czatu aplikację Google Chat z asystentem AI.
  • Dana zadaje pytanie.
    Rysunek 2. Dana pyta, czy firma oferuje szkolenia z występów publicznych.
  • Asystent na czacie oparty na AI odpowiada na pytanie.
    Rysunek 3. Asystent AI w aplikacji Chat prosi Vertex AI z Gemini o odpowiedź na pytanie Dana na podstawie historii rozmów w przestrzeni czatu, a potem udostępnia tę odpowiedź.

Wymagania wstępne

Cele

  • Utwórz aplikację Google Chat, która używa generatywnej AI do odpowiadania na pytania na podstawie wiedzy udostępnionej w rozmowach w pokojach czatu.
  • Dzięki generatywnej AI:
    • wykrywać pytania pracowników i na nie odpowiadać.
    • stale uczyć się na podstawie bieżących rozmów w pokoju czatu.
  • słuchać i odpowiadać na wiadomości w pokoju czatu w czasie rzeczywistym, nawet jeśli aplikacja Google Chat nie otrzymała wiadomości bezpośrednio.
  • zapisywać wiadomości przez zapisywanie i odczytywanie z bazy danych Firestore.
  • Ułatwić współpracę w pokoju czatu, wspominając menedżerów pokoju, gdy nie można znaleźć odpowiedzi na pytanie.

Architektura

Na poniższym diagramie przedstawiono architekturę zasobów Google Workspace i Google Cloud używanych przez aplikację Chat z asystentem AI.

Schemat architektury aplikacji do obsługi czatu z asystentem wykorzystującym sztuczną inteligencję

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

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

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

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

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

    4. Aplikacja Google Chat opublikuje wiadomość powitalną w pokoju.

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

    1. Aplikacja Chat otrzymuje wiadomość w czasie rzeczywistym z tematu Pub/Sub.

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

      Jeśli użytkownik później zmodyfikuje lub usunie wiadomość, aplikacja Google Chat otrzyma zdarzenie zaktualizowanej lub usuniętej wiadomości 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 instruuje Vertex AI z Gemini, aby sprawdził, czy wiadomość zawiera pytanie. Jeśli tak, Gemini odpowiada na pytanie na podstawie historii wiadomości w pokoju Chat przechowywanej w Firestore, a aplikacja Google Chat wysyła wiadomość do pokoju Chat. Jeśli nie, nie odpowiadaj.

      2. Jeśli Vertex AI z Gemini odpowie na pytanie, aplikacja Chat opublikuje odpowiedź, wywołując metodę spaces.messages.create w interfejsie API Chat za pomocą uwierzytelniania aplikacji.

        Jeśli Vertex AI z Gemini nie może odpowiedzieć na pytanie, aplikacja Chat wyświetli wiadomość informującą, że nie może znaleźć odpowiedzi na to pytanie w historii czatu.

        Wiadomości zawsze zawierają przycisk dodatkowego działania, który użytkownicy mogą kliknąć. Gdy to zrobią, aplikacja Czat @wymieni menedżera pokoju, prosząc go o odpowiedź.

  • Aplikacja Google Chat otrzymuje powiadomienie o cyklu życia z interfejsu Google Workspace Events API, że subskrypcja pokoju Google Chat wkrótce wygaśnie:

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

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

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

Sprawdzanie produktów używanych przez aplikację Chat z asystentem wiedzy AI

Aplikacja Chat z asystentem wykorzystuje te usługi Google Workspace i Google Cloud:

  • Vertex AI API z Gemini: Platforma generatywnej AI oparta na Gemini. Asystent wiedzy AI Aplikacja do obsługi czatu korzysta z interfejsu Vertex AI API z Gemini do rozpoznawania, rozumienia i odpowiadania na pytania pracowników.
  • Chat API: interfejs API do tworzenia aplikacji Google Chat, które odbierają i odpowiadają na zdarzenia interakcji z Google Chat, takie jak wiadomości. Aplikacja do obsługi czatu z asystentem wiedzy opartym na AI korzysta z Chat API, aby:
    • otrzymywać i odpowiadać na zdarzenia interakcji wysyłane przez Google Chat;
    • lista wiadomości wysłanych w pokoju;
    • publikować odpowiedzi na pytania użytkowników w pokoju;
    • Skonfiguruj atrybuty, które określają wygląd czatu, takie jak nazwa i obraz awatara.
  • Google Workspace Events API: ten interfejs API umożliwia subskrybowanie zdarzeń i zarządzanie powiadomieniami o zmianach w aplikacjach Google Workspace. Aplikacja Google Chat z asystentem opartym na AI korzysta z interfejsu Google Workspace Events API, aby nasłuchiwać wiadomości publikowanych w pokoju Google Chat. Dzięki temu może wykrywać pytania i odpowiadać na nie, nawet jeśli nie zostały bezpośrednio zadane.
  • Firestore: bezserwerowa baza danych dokumentów. Asystent AI Aplikacja Google Chat używa 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 od usług je przetwarzających. Aplikacja Google Chat z asystentem opartym na AI korzysta z Pub/Sub do otrzymywania zdarzeń subskrypcji z pokoi czatu.
  • Eventarc: Eventarc umożliwia tworzenie architektur opartych na zdarzeniach bez konieczności implementowania, dostosowywania ani utrzymywania infrastruktury podstawowej. Aplikacja do obsługi czatu z asystentem opartym na AI korzysta z Eventarc do kierowania zdarzeń z Pub/Sub do przestrzeni czatu oraz do funkcji Cloud Functions, która odbiera i przetwarza zdarzenia subskrypcji.
  • Cloud Functions: lżejszy bezserwerowy usługa obliczeniowa, która umożliwia tworzenie samodzielnych funkcji o ściśle zdefiniowanym przeznaczeniu, które mogą reagować na zdarzenia związane z interakcją z czatem i subskrypcją bez konieczności zarządzania serwerem lub środowiskiem wykonawczym. Aplikacja Chat z asystentem AI korzysta z 2 funkcji Cloud Functions o tych nazwach:
    • app: hostować punkt końcowy HTTP, do którego Google Chat wysyła zdarzenia interakcji, oraz działać jako platforma obliczeniowa do uruchamiania logiki, która przetwarza te zdarzenia i na nie reaguje.
    • eventsApp: odbiera i przetwarza zdarzenia w pokojach czatu, takie jak wiadomości z subskrypcji Pub/Sub.
    Cloud Functions używa tych usług Google Cloud do tworzenia i hostowania zasobów obliczeniowych:
    • Cloud Build: w pełni zarządzana platforma do ciągłej integracji, dostarczania i wdrażania, która obsługuje automatyczne kompilacje.
    • Cloud Run: w pełni zarządzane środowisko do uruchamiania aplikacji w kontenerach.

Przygotowywanie środowiska

Z tej sekcji dowiesz się, jak utworzyć i skonfigurować projekt Google Cloud dla aplikacji Google Chat.

Tworzenie projektu Google Cloud

Google Cloud Console

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

    Otwórz stronę Utwórz projekt

  2. W polu Nazwa projektu wpisz nazwę projektu.

    Opcjonalnie: aby edytować identyfikator projektu, kliknij Edytuj. Po utworzeniu projektu nie można zmienić jego identyfikatora. Wybierz więc identyfikator, który będzie odpowiadał Twoim potrzebom przez cały czas trwania projektu.

  3. W polu Lokalizacja kliknij Przeglądaj, aby wyświetlić potencjalne lokalizacje dla projektu. Następnie kliknij Wybierz.
  4. Kliknij Utwórz. Konsola Google Cloud przejdzie do strony Panelu, a Twój projekt zostanie utworzony w ciągu kilku minut.

interfejs wiersza poleceń gcloud

W jednym z tych środowisk programistycznych uzyskaj dostęp do interfejsu wiersza poleceń Google Cloud (gcloud):

  • Cloud Shell: aby korzystać z terminala online z już skonfigurowanym interfejsem gcloud CLI, aktywuj Cloud Shell.
    Aktywuj Cloud Shell
  • Interfejs lokalny: aby korzystać z lokalnego środowiska programistycznego, zainstaluj i inicjuj interfejs wiersza poleceń gcloud.
    Aby utworzyć projekt Cloud, użyj polecenia gcloud projects create:
    gcloud projects create PROJECT_ID
    Zastąp PROJECT_ID identyfikatorem projektu, który chcesz utworzyć.

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

Google Cloud Console

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

    Otwórz stronę Płatności w sekcji Moje projekty

  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ń ustawienia płatności i wybierz konto rozliczeniowe Cloud Billing.
  4. Kliknij Skonfiguruj konto.

interfejs wiersza poleceń gcloud

  1. Aby wyświetlić listę dostępnych kont rozliczeniowych, wykonaj te czynności:
    gcloud billing accounts list
  2. Aby połączyć 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 chcesz połączyć z projektem Google Cloud.

Włącz interfejsy API

Google Cloud Console

  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 Events API, Eventarc API i Cloud Run Admin API.

    Włącz interfejsy API

  2. Sprawdź, czy interfejsy API są włączone w prawidłowym projekcie Cloud, a potem kliknij Dalej.

  3. Sprawdź, czy włączasz odpowiednie interfejsy API, a potem kliknij Włącz.

interfejs wiersza poleceń gcloud

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

    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 Events API, Eventarc API i 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 umożliwia aplikacji Google Chat dostęp do zasobów w Google Workspace i Google Cloud.

W tym samouczku opublikujesz aplikację Google Chat wewnętrznie, więc możesz użyć informacji zastępczych. Zanim opublikujesz aplikację Google Chat na zewnątrz, zastąp informacje zastępcze prawdziwymi informacjami na ekranie akceptacji.

  1. W konsoli Google Cloud otwórz Menu  > > Identyfikacja marki.

    Przejdź do sekcji Promowanie marki

  2. Jeśli masz już skonfigurowaną aplikację, możesz skonfigurować te ustawienia ekranu zgody OAuth: Identyfikacja marki, Odbiorcy i Dostęp do danych. Jeśli zobaczysz komunikat jeszcze nie skonfigurowano, kliknij Rozpocznij:

    1. W sekcji Informacje o aplikacji w polu Nazwa aplikacji wpisz AI knowledge assistant.
    2. W polu Adres e-mail użytkownika wybierz swój adres e-mail lub odpowiednią grupę Google.
    3. Kliknij Dalej.
    4. W sekcji Odbiorcy wybierz Wewnętrzny. Jeśli nie możesz wybrać opcji Wewnętrzny, wybierz Zewnętrzny.
    5. Kliknij Dalej.
    6. W sekcji Dane kontaktowe wpisz adres e-mail, na który będą wysyłane powiadomienia o zmianach w projekcie.
    7. Kliknij Dalej.
    8. W sekcji Zakończ zapoznaj się z zasadami dotyczącymi danych użytkownika w usługach interfejsu API Google, a potem, jeśli się z nimi zgadzasz, kliknij Akceptuję zasady dotyczące danych użytkownika w usługach interfejsu API Google.
    9. Kliknij Dalej.
    10. Kliknij Utwórz.
    11. Jeśli jako typ użytkownika wybierzesz Zewnętrzny, dodaj użytkowników testowych:
      1. Kliknij Odbiorcy.
      2. W sekcji Użytkownicy testowi kliknij Dodaj użytkowników.
      3. Wpisz swój adres e-mail i adresy innych autoryzowanych użytkowników testowych, a następnie kliknij Zapisz.
  3. Kliknij Dostęp do danych > Dodaj lub usuń zakresy. Pojawi się panel z listą zakresów dostępu do każdego interfejsu API włączonego w projekcie Google Cloud.

    1. W sekcji Ręczne dodawanie zakresów wklej ten zakres:

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

    3. Kliknij Aktualizuj.

    4. Po wybraniu zakresów wymaganych przez aplikację na stronie Dostęp do danych kliknij Zapisz.

Tworzenie danych logowania do identyfikatora klienta OAuth

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

    Przejdź do danych 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 wyświetlana tylko w konsoli Google Cloud.

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

  6. W polu Identyfikatory URI 1 wpisz:

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

    Zastąp następujące elementy:

    • REGION: region funkcji Cloud Functions, np. us-central1. Później, gdy utworzysz 2 funkcje Cloud Functions, musisz ustawić dla nich region na tę wartość.
    • PROJECT_ID: identyfikator projektu utworzonego przez Ciebie projektu Cloud.
  7. Kliknij Utwórz.

  8. W oknie Utworzono klienta OAuth kliknij Pobierz plik JSON.

  9. Zapisz pobrany plik jako client_secrets.json. Później, gdy utworzysz 2 funkcje Cloud Functions, dodasz plik client_secrets.json do każdej implementacji.

  10. Kliknij OK.

Tworzenie tematu Pub/Sub

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

Aby utworzyć temat Pub/Sub:

Google Cloud Console

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

    Otwórz stronę Pub/Sub

  2. Kliknij Utwórz temat.

  3. W polu Identyfikator tematu wpisz events-api.

  4. Odznacz opcję Dodaj subskrypcję domyślną.

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

  6. Kliknij Utwórz. Wyświetli się temat Pub/Sub.

  7. Aby ten temat Pub/Sub i interfejs Google Workspace Events API mogły ze sobą współpracować, przyznaj użytkownikowi z uprawnieniami IAM w Google Chat 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 polu Wybierz rolę wybierz Pub/Sub > Publikujący Pub/Sub.

    4. Kliknij Zapisz.

interfejs wiersza poleceń gcloud

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

    gcloud pubsub topics create events-api
  2. Przyznaj użytkownikowi z uprawnieniami IAM czatu 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 przechowuje i pobiera dane z pokoi czatu, takie jak wiadomości. Nie definiujesz modelu danych, który jest ustawiany domyślnie w przykładowym kodzie za pomocą plików model/message.jsservices/firestore-service.js.

Baza danych aplikacji do czatu z asystentem opartym na AI korzysta z modelu danych NoSQL opartego na dokumentachuporządkowanych w kolekcji. Więcej informacji znajdziesz w artykule Model danych Firestore.

Na poniższym diagramie znajdziesz omówienie modelu danych aplikacji Chat z asystentem AI:

Model danych bazy danych Firestore.

Element ROOT zawiera 2 zbiory:

  1. spaces, gdzie każdy dokument reprezentuje pokój Google Chat, do którego dodana jest aplikacja Google Chat. Każda wiadomość jest reprezentowana przez dokument w podzbiorze messages.

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

Wyświetlanie definicji kolekcji, dokumentów i polów

spaces

Pokój czatu z aplikacją Google Chat, która wykorzystuje AI do udzielania odpowiedzi.

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

messages

wiadomości wysyłanych w pokoju czatu;

Pola
Document IDString
Unikalny identyfikator konkretnej wiadomości.
nameString
Niepowtarzalna nazwa wiadomości w Chat API. Odpowiada nazwie zasobu wiadomości w Chat API.
textString
Tekst wiadomości.
timeString (Timestamp format)
Czas utworzenia wiadomości.

users

Użytkownicy, którzy dodali do pokoju czatu aplikację Google Chat z asystentem opartym na 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 API Google Workspace.
refreshTokenString
Token odświeżania przyznany podczas autoryzacji użytkownika OAuth 2.0.

Aby utworzyć bazę danych Firestore:

Google Cloud Console

  1. W konsoli Google Cloud wybierz 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 Nazwa bazy danych pozostaw pole Identyfikator bazy danych puste.(default)

    2. W sekcji Typ lokalizacji wybierz Region.

    3. W polu Region określ region bazy danych, np. us-central1. Aby uzyskać najlepszą wydajność, wybierz tę samą lokalizację lub lokalizację znajdującą się w pobliżu aplikacji Chat.

  6. Kliknij Utwórz bazę danych.

interfejs wiersza poleceń gcloud

  • Tworzenie bazy danych Firestore w trybie natywnym:

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

    Zastąp LOCATION nazwą regionu Firehose, np. us-central1. Aby uzyskać najlepszą wydajność, wybierz tę samą lokalizację lub lokalizację zbliżoną do lokalizacji funkcji Cloud Functions 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. Jeden do odpowiadania na zdarzenia interakcji z czatem, a drugi do odpowiadania 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 reaguje na zdarzenia otrzymywane z Google Chat jako żądania HTTP.
  • eventsApp: odbiera i przetwarza wydarzenia z pokoju czatu, takie jak wiadomości z Pub/Sub.

Razem te funkcje Cloud Functions tworzą logikę aplikacji asystenta wiedzy AI w aplikacji Chat.

Opcjonalnie, przed utworzeniem funkcji Cloud Functions zapoznaj się ze przykładowym kodem hostowanym na GitHubie.

Wyświetl w GitHubie

Tworzenie i wdrażanie app

Google Cloud Console

  1. Pobierz kod z GitHuba jako plik ZIP.

    Pobierz plik ZIP

  2. Wyodrębnij pobrany plik ZIP.

    Wyodrębniony folder zawiera całą repozytorium przykładowych danych 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 uwierzytelniających 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 Funkcja Cloud Run.
    2. W polu Nazwa funkcji wpisz app.
    3. W polu Region wybierz region, np. us-central1. Region ten musi być zgodny z regionem ustawionym w autoryzowanym identyfikatorze URI przekierowania podczas tworzenia danych uwierzytelniających identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.
    4. Jako Typ aktywatora wybierz 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ń tekst domyślny i wpisz app.

  11. W sekcji Kod źródłowy kliknij Prześlij plik ZIP.

  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 i wyodrębnia pliki komponentów w tym zasobie. Następnie Cloud Functions kopiuje pliki komponentów do funkcji w Cloud Functions.

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

    1. Kliknij Przeglądaj.
    2. Znajdź i wybierz plik ZIP.
    3. Kliknij Otwórz.
  14. Kliknij Wdróż.

    Otworzy się strona Szczegóły Cloud Functions, na której zobaczysz swoją funkcję z 2 wskaźnikami postępu: jeden dla wersji, a drugi dla usługi. Gdy oba wskaźniki postępu znikną i zostanie zastąpione przez znacznik wyboru, funkcja zostanie wdrożona i będzie gotowa do użycia.

  15. Zmień 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 plik env.js i go edytuj:
      1. Ustaw wartość project na identyfikator projektu Cloud.
      2. Ustaw wartość location na region funkcji 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 zawierającego kod tej aplikacji do pomocy AI w Google Chat:

    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 uwierzytelniających klienta OAuth na potrzeby uwierzytelniania i autoryzacji.

  4. Aby ustawić zmienne środowiskowe, otwórz plik env.js:

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

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

    Zastąp wartość REGION wartością regionu Cloud Functions, aby odpowiadała wartości ustawionej w pliku env.js, np. us-central1.

Tworzenie i wdrażanie eventsApp

Google Cloud Console

  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 Funkcja Cloud Run.
    2. W polu Nazwa funkcji wpisz eventsApp.
    3. W polu Region wybierz region, np. us-central1. Region ten musi być zgodny z regionem ustawionym w autoryzowanym identyfikatorze URI przekierowania podczas tworzenia danych uwierzytelniających identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.
    4. W polu Typ reguły wybierz Cloud Pub/Sub.
    5. W sekcji Temat Cloud Pub/Sub wybierz utworzoną nazwę tematu Pub/Sub. Nazwa ma format projects/PROJECT/topics/events-api, gdzie PROJECT to identyfikator Twojego 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ń tekst domyślny i wpisz eventsApp.

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

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

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

  9. Kliknij przesłany plik ZIP.

  10. Kliknij Wybierz.

  11. Kliknij Wdróż.

    Otworzy się strona Szczegóły Cloud Functions, na której zobaczysz swoją funkcję 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 zostanie zastąpione przez ikonę potwierdzenia, funkcja zostanie wdrożona i będzie gotowa do użycia.

  12. Zmień 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 plik env.js i go edytuj:
      1. Ustaw wartość project na identyfikator projektu Cloud.
      2. Ustaw wartość location na region funkcji Cloud Functions, np. us-central1.
  13. Kliknij Wdróż.

interfejs wiersza poleceń gcloud

  1. W interfejsie wiersza poleceń gcloud przejdź do katalogu zawierającego kod aplikacji Chat asystenta AI, którą wcześniej sklonowałaś/sklonowałeś 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 uwierzytelniających klienta OAuth na potrzeby uwierzytelniania i autoryzacji.

  3. Aby ustawić zmienne środowiskowe, otwórz plik env.js:

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

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

    Zastąp wartość REGION wartością regionu Cloud Functions, aby odpowiadała wartości ustawionej w pliku env.js, np. us-central1.

Skopiuj adres URL app funkcji w Cloud Functions.

Adres URL wyzwalacza funkcji app w Cloud Functions wklejasz w następnej sekcji, gdy skonfigurujesz aplikację Google Chat w konsoli Google Cloud.

Google Cloud Console

  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 adres 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 znajdziesz instrukcje konfigurowania interfejsu Chat API w konsoli Google Cloud za pomocą informacji o aplikacji do obsługi czatu, w tym jej nazwy i adresu URL funkcji wywołania w chmurze, do której wysyła ona zdarzenia interakcji z czatem.

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

    Otwórz konfigurację 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 go włączyć.

  6. W sekcji Funkcje wybierz Dołączanie do pokoi i rozmów grupowych.

  7. W sekcji Ustawienia połączenia kliknij URL punktu końcowego HTTP.

  8. W polu URL punktu końcowego HTTP wklej adres URL aktywatora z funkcji Cloud app sformatowany w postaci https://REGION-PROJECT_ID.cloudfunctions.net/app, gdzie REGION to region funkcji Cloud, np. us-central1, a PROJECT_ID to identyfikator projektu utworzonego projektu Cloud.

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

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

  11. Kliknij Zapisz. Wyświetli się wiadomość o zapisanej konfiguracji, co oznacza, że aplikacja Google Chat jest gotowa do testowania.

Testowanie aplikacji Google Chat

Przetestuj aplikację Google Chat z asystentem na bazie AI w pokoju Google Chat, zadając pytania, na które może ona udzielić odpowiedzi.

Oto kilka sposobów testowania asystenta AI w aplikacji Chat:

  • Dodaj do istniejącego pokoju czatu aplikację Google Chat z asystentem AI i zadawaj pytania dotyczące tego pokoju.
  • Utwórz pokój czatu i opublikuj kilka wiadomości, które będą służyć jako źródło danych. Wiadomości mogą pochodzić z Gemini z promptem takim jak Answer 20 common onboarding questions employees ask their teams.. Możesz też wkleić kilka akapitów z przewodnika Tworzenie za pomocą czatu, a potem zadać pytania na ich temat.

W tym samouczku utworzymy pokój czatu i wkleimy kilka akapitów z przewodnika Omówienie tworzenia aplikacji w Google Chat.

  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 może uzyskać dostęp do pokoju.

    5. Kliknij Utwórz.

  3. Dodawanie wiadomości do użycia jako źródła danych:

    1. W przeglądarce otwórz przewodnik Omówienie tworzenia aplikacji w Google Chat.

    2. Skopiuj i wklej treść przewodnika do utworzonego pokoju czatu.

  4. Dodaj do aplikacji Google Chat asystenta AI:

    1. Na pasku tworzenia wiadomości wpisz @AI knowledge assistant, a w wyświetlonym menu sugestii wybierz aplikację Chat z asystentem AI i kliknij enter.

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

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

      1. Kliknij Skonfiguruj.
      2. Otworzy się nowe okno lub nowa karta przeglądarki z prośbą o wybranie konta Google. Wybierz konto, którego dotyczy test.
      3. Sprawdź uprawnienia, o które prosi aplikacja Chat, czyli asystent wiedzy oparty na AI. Aby przyznać uprawnienia, kliknij Zezwól.
      4. Pojawi się komunikat You may close this page now.. Zamknij okno lub kartę przeglądarki i wróć do czatu.
  5. Zadaj pytanie:

    1. Na pasku tworzenia wiadomości wpisz pytanie, na przykład: What are Google Chat apps?

    2. Asystent na czacie oparty na AI udziela odpowiedzi.

    3. Jeśli odpowiedź nie jest wystarczająca lub nieprawidłowa, możesz pomóc AI w ulepszaniu historii rozmów, klikając Uzyskaj pomoc. Asystent AI w aplikacji Google Chat prosi o odpowiedź menedżera pokoju. Następnym razem aplikacja Google Chat z asystentem AI będzie znać odpowiedź.

Uwagi, alternatywne rozwiązania architektoniczne i dalsze kroki

W tej sekcji omawiamy inne sposoby tworzenia aplikacji do czatu z asystentem opartym na AI.

Firestore, Cloud Storage lub wywołanie List Messages w interfejsie Chat API

W tym samouczku zalecamy przechowywanie danych pokoju Google Chat, takich jak wiadomości, w bazie danych Firestore, ponieważ poprawia to wydajność w porównaniu z wywoływaniem metody list zasobu Message za pomocą interfejsu API Google Chat za każdym razem, gdy aplikacja Google Chat odpowiada na pytanie. Ponadto wielokrotne wywoływanie interfejsulist messages może spowodować, że aplikacja do obsługi czatu osiągnie limity interfejsu API.

Jeśli jednak historia rozmowy w pokoju czatu stanie się zbyt długa, korzystanie z Firestore może stać się kosztowne.

Cloud Storage to alternatywa dla Firestore. Każda przestrzeń, w której aktywny jest asystent wiedzy AI w aplikacji Google Chat, ma własny obiekt. Każdy obiekt to plik tekstowy zawierający wszystkie wiadomości w danej przestrzeni. Zaletą tego podejścia jest to, że pełna zawartość pliku tekstowego może zostać przekazana do Vertex AI z Gemini od razu, ale wadą jest to, że aktualizacja historii konwersacji wymaga więcej pracy, ponieważ nie można dodawać do obiektu w Cloud Storage, tylko go zastępować. Takie podejście nie ma sensu, jeśli regularnie aktualizujesz historię wiadomości, ale jest dobrym wyborem, jeśli okresowo, np. raz w tygodniu, aktualizujesz ją zbiorczo.

Rozwiązywanie problemów

Gdy aplikacja Google Chat lub karta zwraca błąd, interfejs Google Chat wyświetla komunikat „Coś poszło nie tak”. lub „Nie udało się przetworzyć Twojej prośby”. Czasami interfejs czatu nie wyświetla żadnego komunikatu o błędzie, ale aplikacja Google Chat lub karta powoduje nieoczekiwany wynik, na przykład może nie wyświetlić się wiadomość na karcie.

Komunikat o błędzie może się nie wyświetlać w interfejsie czatu, ale gdy włączone jest rejestrowanie błędów w przypadku aplikacji czatu, dostępne są opisowe komunikaty o błędach i dane dziennika, które pomogą Ci je naprawić. Informacje o wyświetlaniu, debugowaniu i poprawianiu błędów znajdziesz w artykule Rozwiązywanie problemów z błędami Google Chat.

Czyszczenie danych

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, zalecamy usunięcie projektu Google 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 potem kliknij Usuń .
  3. W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.