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 używa interfejsu Google Workspace Events API oraz Pub/Sub do rozpoznawania i odpowiadania w czasie rzeczywistym na pytania publikowane w pokojach czatu, nawet jeśli nie są one wymienione.

Aplikacja Google Chat wykorzystuje wszystkie wiadomości wysyłane w pokoju jako źródło danych i bazę wiedzy: gdy ktoś zadaje pytanie, aplikacja Google Chat sprawdza, czy odpowiedzi udzieliły wcześniej odpowiedzi, i je udostępnia. Jeśli nie można znaleźć odpowiedzi, informuje, że nie może udzielić odpowiedzi. Pod każdą odpowiedzią użytkownicy mogą kliknąć przycisk akcji, aby @wspomnieć menedżera pokoju i poprosić o odpowiedź. Dzięki sztucznej inteligencji Gemini aplikacja Google Chat dostosowuje i rozwija swoją bazę wiedzy, nieustannie trenując na podstawie rozmów w pomieszczeniach, do których została dodana.

Oto jak aplikacja Google Chat działa w obszarze wprowadzania i wsparcia pracowników:

  • Wspomnienie o aplikacji Asystent wiedzy o AI dodaje ją do pokoju.
    Rysunek 1. Charlie dodaje do pokoju czatu aplikację Google Chat z asystentem AI.
  • Dana zadaje pytanie.
    Rysunek 2. Daria pyta, czy firma oferuje szkolenia z wymowy.
  • Aplikacja Google Chat Asystent wiedzy o AI odpowiada na pytanie.
    Rysunek 3. Aplikacja Google Chat – asystent wiedzy AI na podstawie historii rozmów w pokoju czatu prosi Vertex AI o udzielenie odpowiedzi na pytanie, a następnie udostępnia odpowiedź.

Wymagania wstępne

Cele

  • Stwórz aplikację do obsługi czatu, która wykorzystuje generatywną AI do odpowiadania na pytania na podstawie wiedzy przekazanej podczas rozmów w pokoju 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.
  • Nasłuchuj wiadomości i odpowiadaj na nie w czasie rzeczywistym w pokoju czatu, nawet jeśli aplikacja Google Chat nie wysyła wiadomości bezpośrednio.
  • Utrwalaj wiadomości przez zapisywanie i odczytywanie 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 Google Chat Asystent wiedzy o AI

Aplikacja Google Chat Asystent wiedzy o AI działa tak:

  • 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 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 Events API, aby zacząć nasłuchiwać zdarzeń, takich jak wiadomości w pokoju. Punkt końcowy powiadomień subskrypcji to temat Pub/Sub, który używa Eventarc, aby przekazać zdarzenie do aplikacji Google Chat.

    4. Aplikacja Google Chat publikuje wprowadzenie 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 doda 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 Google Chat opublikuje odpowiedź, wywołując metodę spaces.messages.create w interfejsie Chat API z użyciem 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 otrzyma z interfejsu Google Workspace Events API powiadomienie dotyczące cyklu życia informujące, że subskrypcja pokoju czatu wkrótce wygaśnie:

    1. Aplikacja Google Chat wysyła prośbę o odnowienie subskrypcji, wywołując metodę subscriptions.patch w interfejsie Google Workspace Events 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 Events API.

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

Sprawdzanie produktów używanych przez aplikację Chat, która jest asystentem AI

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

  • Vertex AI API z Gemini: platforma generatywnej AI oparta na technologii Gemini. Asystent wiedzy AI Aplikacja do 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 Google Chat Asystent wiedzy o AI używa interfejsu Chat API do:
    • Otrzymuj zdarzenia interakcji z Google Chat i odpowiadaj na nie.
    • lista wiadomości wysłanych w pokoju;
    • publikować 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 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 wymienione.
  • Firestore: bezserwerowa baza danych dokumentów. Aplikacja Google Chat asystenta wiedzy AI używa Firestore do przechowywania danych o wiadomościach wysyłanych w pokoju czatu.
  • Pub/Sub: Pub/Sub to asynchroniczna i skalowalna usługa do przesyłania wiadomości, która oddziela usługi tworzące wiadomości od usług je przetwarzających. Aplikacja Google Chat Asystent wiedzy o AI używa Pub/Sub do odbierania zdarzeń subskrypcji z pokoi czatu.
  • Eventarc: Eventarc umożliwia tworzenie architektur opartych na zdarzeniach bez konieczności implementowania, dostosowywania ani utrzymywania infrastruktury. Aplikacja Google Chat asystenta wiedzy AI używa Eventarc, aby kierować zdarzenia z Pub/Sub do pokoju czatu i funkcji w 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 Google Chat Asystent wiedzy o AI korzysta z 2 funkcji w Cloud Functions o nazwach:
    • app: hostowanie punktu końcowego HTTP, do którego Google Chat wysyła zdarzenia interakcji, oraz platforma obliczeniowa 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.
    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, na której uruchamiane są automatyczne kompilacje.
    • Cloud Run: w pełni zarządzane środowisko do uruchamiania aplikacji skonteneryzowanych.

Przygotowywanie środowiska

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

Utwórz projekt Google Cloud

Google Cloud Console

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

    Otwórz stronę Utwórz projekt

  2. W polu Project Name (Nazwa projektu) wpisz opisową nazwę projektu.

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

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

interfejs wiersza poleceń gcloud

W jednym z tych środowisk programistycznych uzyskaj dostęp do Google Cloud CLI (gcloud):

  • Cloud Shell: aby używać terminala online ze skonfigurowanym już interfejsem wiersza poleceń gcloud, aktywuj Cloud Shell.
    Aktywuj Cloud Shell
  • Powłoka lokalna: aby używać lokalnego środowiska programistycznego, zainstaluj i zainicjuj 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.
  4. Kliknij Skonfiguruj konto.

interfejs wiersza poleceń gcloud

  1. Aby wyświetlić listę dostępnych kont rozliczeniowych:
    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 chcesz połączyć z projektem Google Cloud.

Włączanie interfejsów 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 we właściwym 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 publikujesz aplikację Google Chat wewnętrznie, więc możesz użyć informacji zastępczych. Zanim opublikujesz aplikację Google Chat na zewnątrz, zastąp dane obiektu zastępczego prawdziwymi informacjami wyświetlanymi na ekranie zgody.

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

    Otwórz ekran zgody OAuth

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

  3. W polu Nazwa aplikacji wpisz AI knowledge assistant.

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

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

  6. Kliknij Zapisz i kontynuuj.

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

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

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

  10. Kliknij Aktualizuj.

  11. Kliknij Zapisz i kontynuuj.

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

Tworzenie danych logowania do identyfikatora klienta OAuth

  1. W konsoli Google Cloud otwórz 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 widoczna 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ć ich 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 Przypisywanie ról w sekcji Wybierz rolę kliknij Pub/Sub > Pub/Sub Publisher.

    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 zachowuje i pobiera dane z pokoi czatu, np. 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 AI korzysta z modelu danych NoSQL opartego na dokumentach uporządkowanych w kolekcjach. Więcej informacji znajdziesz w artykule na temat modelu danych Firestore.

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

Model danych bazy danych Firestore.

Poziom 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 w podzbiorze messages.

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

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

spaces

Pokój czatu zawierający aplikację Google Chat Asystent wiedzy o AI.

Pola
Document IDString
Unikalny identyfikator określonej 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 wysł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
Treść 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 otwórz 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 Identyfikator bazy danych jako (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ą lokalizację lub lokalizację znajdującą się w pobliżu funkcji Cloud Functions aplikacji 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 Firehose, np. us-central1. Aby uzyskać najlepsze wyniki, wybierz tę samą lub pobliskie miejsce co funkcje aplikacji Google Chat w Cloud Functions.

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 reagowania na zdarzenia interakcji z Google Chat, a drugi do reagowania 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ę z 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łą repozytoriusz 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 z identyfikatorem 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 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. Ten region musi 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 reguły 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 wybierz Przesyłanie 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. a następnie skopiuje pliki komponentu 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 funkcji w Cloud Functions, na której pojawi się Twoja funkcja z 2 wskaźnikami postępu: 1 dla kompilacji i 1 dla usługi. Gdy oba wskaźniki postępu znikają i zastępujesz znacznikiem wyboru, funkcja jest wdrożona i gotowa.

  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 wstawiania otwórz i 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.
  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 z identyfikatorem klienta OAuth na potrzeby uwierzytelniania i autoryzacji.

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

    1. Ustaw wartość project na identyfikator projektu Cloud.
    2. Ustaw wartość location na region funkcji 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 pasowała do regionu ustawionego 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 aplikacji Google Chat.

  2. Kliknij Utwórz funkcję.

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

    1. W sekcji Środowisko wybierz Funkcja w Cloud Run.
    2. W polu Nazwa funkcji wpisz eventsApp.
    3. W polu Region wybierz region, np. us-central1. Ten region musi być zgodny z regionem ustawionym w autoryzowanym identyfikatorze URI przekierowania podczas tworzenia danych logowania 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 pojawi się komunikat rozpoczynający się do 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 Cloud Functions app.

  9. Kliknij przesłany plik ZIP.

  10. Kliknij Wybierz.

  11. Kliknij Wdróż.

    Otworzy się strona Szczegóły funkcji w Cloud Functions, na której zobaczysz swoją funkcję z 3 wskaźnikami postępu: jeden dla pakietu, jeden dla usługi i jeden dla aktywatora. Gdy wszystkie 3 wskaźniki postępu znikają i zastępujesz znacznikiem wyboru, funkcja jest wdrożona i gotowa.

  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 wstawiania otwórz i 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.
  13. Kliknij Wdróż.

interfejs wiersza poleceń gcloud

  1. W interfejsie wiersza poleceń gcloud przejdź do katalogu zawierającego kod tej aplikacji Google Chat Asystenta wiedzy o AI, która została sklonowana wcześniej 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 z identyfikatorem 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ę 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 pasowała do regionu ustawionego w pliku env.js, np. us-central1.

Skopiuj adres URL app Cloud Functions, który aktywuje funkcję

W następnej sekcji wklej adres URL wyzwalacza funkcji app Cloud Functions, 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 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, podając informacje o aplikacji do obsługi czatu, w tym jej nazwę i adres URL wywołania funkcji 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 Funkcjonalność wybierz Dołączanie do pokoi i rozmów grupowych.

  7. W sekcji Ustawienia połączenia wybierz 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 określonym osobom i grupom w domenie Workspace, a następnie wpisz swój adres e-mail.

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

  11. Kliknij Zapisz. Pojawi się komunikat o zapisanej konfiguracji, co oznacza, że aplikacja Google Chat jest gotowa do testowania.

Testowanie aplikacji Google Chat

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

Oto kilka sposobów przetestowania aplikacji Asystent wiedzy o AI Google Chat:

  • Dodaj aplikację Google Chat Asystent wiedzy o AI do istniejącego pokoju czatu i zadawaj pytania związane z tym pokojem.
  • Utwórz pokój czatu i opublikuj kilka wiadomości, które będą służyć jako źródło danych. Wiadomości można pobierać z Gemini za pomocą promptów, takich jak Answer 20 common onboarding questions employees ask their teams.. Możesz też wkleić kilka akapitów z przewodnika programowanie z omówieniem Google Chat, a potem zadać pytania na ten temat.

W tym samouczku możemy utworzyć pokój czatu i wkleić kilka akapitów z przewodnika Programowanie z Google Chat z omówieniem.

  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 uzyskiwać 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 zawartość przewodnika do utworzonego pokoju czatu.

  4. Dodaj aplikację Google Chat Asystent wiedzy o AI:

    1. Na pasku tworzenia wiadomości wpisz @AI knowledge assistant. W wyświetlonym menu sugestii wybierz aplikację Asystent wiedzy o AI i naciśnij enter.

    2. Pojawi się komunikat z pytaniem, czy chcesz dodać do pokoju aplikację Asystent wiedzy o AI. Kliknij Dodaj do pokoju.

    3. Jeśli dodajesz aplikację Google Chat do pokoju po raz pierwszy, musisz skonfigurować dla niej 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, na którym chcesz przeprowadzić test.
      3. Przejrzyj uprawnienia, o które prosi asystent wiedzy AI. 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 czatu.
  5. Zadaj pytanie:

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

    2. Asystent wiedzy o AI odpowiada aplikacji Google Chat.

    3. Opcjonalnie, jeśli odpowiedź jest niedokładna lub wystarczająca, aby pomóc w ulepszeniu historii rozmowy 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 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 czatu, takich jak wiadomości, w bazie danych Firestore, 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. Ponadto wielokrotne wywoływanie interfejsulist messages może spowodować przekroczenie limitu interfejsu API przez aplikację Google Chat.

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żdy pokój, w którym działa aplikacja Google Chat asystenta wiedzy o AI, otrzymuje własny obiekt, a każdy obiekt to plik tekstowy zawierający wszystkie wiadomości w danym pokoju. 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ć. To rozwiązanie nie ma sensu, jeśli regularnie aktualizujesz historię wiadomości, ale warto aktualizować historię wiadomości zbiorczo co jakiś czas, na przykład raz w tygodniu.

Rozwiązywanie problemów

Gdy aplikacja lub karta w Google Chat zwróci błąd, w interfejsie Google Chat pojawi się 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 daje nieoczekiwany wynik. Na przykład może nie wyświetlić się wiadomość na karcie.

Mimo że komunikat o błędzie może nie być wyświetlany w interfejsie Google Chat, są dostępne opisowe komunikaty o błędach i dane logów, które pomogą Ci w naprawianiu błędów, gdy logowanie błędów w aplikacjach Google Chat jest włączone. Informacje o wyświetlaniu, debugowaniu i naprawianiu błędów znajdziesz w artykule Rozwiązywanie problemów z błędami w 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.