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

Z tego samouczka dowiesz się, jak utworzyć aplikację Google Chat, która odpowiada na pytania na podstawie rozmów w pokojach czatu z użyciem generatywnej AI, która korzysta z Vertex AI, i 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. Przy każdej odpowiedzi użytkownicy mogą kliknąć przycisk polecenia akcesorium, aby dodać @wzmiankę o menedżerze pokoju i poprosić o odpowiedź. Dzięki wykorzystaniu Gemini AI aplikacja Google Chat dostosowuje się i poszerza swoją bazę wiedzy w miarę jak stale trenuje na rozmowach w pokojach, do których jest dodawana.

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. Karol dodaje aplikację Google Chat Asystenta wiedzy AI do pokoju czatu.
  • Dana zadaje pytanie.
    Rysunek 2. Daria pyta, czy firma oferuje szkolenia z wymowy publicznie.
  • 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:
    • Wykrywaj pytania pracowników i odpowiadaj na nie.
    • Możesz stale uczyć się na podstawie trwają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.
  • Utrwalanie wiadomości przez zapisywanie i odczytywanie danych w bazie danych Firestore.
  • Ułatwianie współpracy w pokoju czatu przez wspominanie o menedżerach pokoju, gdy nie ma odpowiedzi na pytanie.

Architektura

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

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ę Asystenta wiedzy o 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 rozpocząć nasłuchiwanie 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 opublikuje wiadomość:

    1. Aplikacja Google Chat odbiera 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 odbierze 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. Poleca on Vertex AI w Gemini, aby sprawdził, czy wiadomość zawiera pytanie. Jeśli tak, Gemini odpowie na pytanie na podstawie historii wiadomości z 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 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 odpowie na to pytanie, aplikacja Google Chat wyśle komunikat z informacją, że nie może znaleźć odpowiedzi na to pytanie w historii pokoju czatu.

        Wiadomości zawsze zawierają przycisk polecenia akcesorium, który użytkownicy mogą kliknąć, co powoduje, że aplikacja Google Chat dodaje w aplikacji Google Chat @wzmiankę o menedżerze pokoju, który prosi 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 usunie dane pokoju czatu z Firestore.

Przeglądanie usług używanych przez aplikację Google Chat Asystent wiedzy o 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 o AI Aplikacja Google Chat używa interfejsu Vertex AI API z Gemini do rozpoznawania, rozumienia i odpowiadania na pytania pracowników.
  • Chat API: interfejs API do tworzenia aplikacji w Google Chat, które odbierają zdarzenia interakcji z Google Chat (np. wiadomości) i odpowiadają na nie. Aplikacja Google Chat Asystent wiedzy o AI używa interfejsu Chat API do:
    • Otrzymywać zdarzenia interakcji wysyłane przez Google Chat i odpowiadać na nie.
    • Wyświetlanie listy 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 Events API: ten interfejs API pozwala subskrybować wydarzenia i zarządzać powiadomieniami o zmianach w aplikacjach Google Workspace. Aplikacja Google Chat – asystent wiedzy na temat AI korzysta z interfejsu Google Workspace Events API do nasłuchiwania wiadomości publikowanych w pokoju czatu, dzięki czemu będzie w stanie wykrywać pytania i odpowiadać na nie, nawet jeśli się o nich nie mowa.
  • 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 z usług przetwarzających te wiadomości. Aplikacja Google Chat Asystent wiedzy o AI używa Pub/Sub do odbierania zdarzeń subskrypcji z pokoi czatu.
  • Eventarc: umożliwia tworzenie architektur opartych na zdarzeniach bez konieczności wdrażania, dostosowywania czy utrzymywania bazowej 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: lekka, bezserwerowa usługa obliczeniowa, która umożliwia tworzenie samodzielnych funkcji o jednym przeznaczeniu, które mogą reagować na interakcje z Google Chat i zdarzenia subskrypcji 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: hostuj punkt końcowy HTTP, do którego Google Chat wysyła zdarzenia interakcji, i jako platformę obliczeniową, aby uruchamiać logikę przetwarzania tych zdarzeń i reagowania na nie.
    • 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 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

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

Utwórz projekt Google Cloud

Konsola Google Cloud

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

    Otwórz stronę Tworzenie projektu

  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 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 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 initialize interfejs wiersza poleceń gcloud.
    Aby utworzyć projekt Google Cloud, użyj polecenia `gcloud projects create`command:
    gcloud projects create PROJECT_ID
    Zastąp PROJECT_ID, ustawiając identyfikator projektu, który chcesz utworzyć.

Włącz płatności za projekt Cloud

Konsola Google Cloud

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

    Otwórz Płatności za 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 Ustaw konto.

interfejs wiersza poleceń gcloud

  1. Aby wyświetlić dostępne konta rozliczeniowe, 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 dla projektu Cloud, w którym chcesz włączyć płatności.
    • BILLING_ACCOUNT_ID to identyfikator konta rozliczeniowego, które ma być połączone z projektem Google Cloud.

Włączanie interfejsów 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 Events API, Eventarc API i Cloud Run Admin API.

    Włączanie interfejsów 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 następnie 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 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 aplikację Google Chat opublikujesz wewnętrznie, więc można też używać 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 otwórz Menu > Interfejsy API i usługi > Ekran zgody 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 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 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 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 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 plik JSON.

  9. Zapisz pobrany plik jako client_secrets.json. Później, gdy utworzysz 2 funkcje 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 Events API, aby subskrybować zdarzenia w pokoju czatu, np. wiadomości, i powiadamiać aplikację Google Chat w czasie rzeczywistym.

Aby utworzyć temat Pub/Sub:

Konsola Google Cloud

  1. W konsoli Google Cloud otwórz Menu > Pub/Sub.

    Otwórz stronę 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 z interfejsem Google Workspace Events API, przyznaj użytkownikowi uprawnień 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 tematu events-api:

    gcloud pubsub topics create events-api
    
  2. Przyznaj użytkownikowi uprawnień 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 zachowuje zgodność z zasadami i pobiera dane z pokoi czatu, np. wiadomości. Nie definiujesz modelu danych, który jest ustawiany domyślnie w przykładowym kodzie przez pliki model/message.js i services/firestore-service.js.

Baza danych aplikacji Google Chat Asystent wiedzy o AI wykorzystuje model danych NoSQL oparty na dokumentach podzielonych na kolekcje. Więcej informacji znajdziesz w artykule na temat modelu danych Firestore.

Poniższy diagram przedstawia przegląd modelu danych aplikacji Google Chat Asystenta wiedzy o 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 podkolekcji 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 ID elementu message w Firebase.
spaceNameString
Unikalna nazwa pokoju w interfejsie Chat API. Odpowiada 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 nazwie zasobu wiadomości w interfejsie Chat API.
textString
Treść wiadomości.
timeString (Timestamp format)
Czas utworzenia wiadomości.

users

Użytkownicy, którzy dodali aplikację Google Chat Asystent wiedzy o AI do pokoju czatu.

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 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ć najlepsze wyniki, wybierz tę samą lub pobliskie lokalizację co funkcje aplikacji Google Chat w Cloud Functions.

  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ć 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:

  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ę Google Chat 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 nazwie:

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

Łącznie te funkcje w Cloud Functions tworzą logikę aplikacji Asystenta wiedzy o AI aplikacji Google Chat.

Opcjonalnie przed utworzeniem funkcji w Cloud Functions poświęć chwilę na przejrzenie i zapoznanie się przykładowym kodem hostowanym na GitHubie.

Wyświetl w GitHubie

Utwórz i wdróż app

Konsola Google Cloud

  1. Pobierz kod z GitHuba jako plik ZIP.

    Pobieranie pliku ZIP

  2. Rozpakuj pobrany plik ZIP.

    Wyodrębniony folder zawiera całe repozytorium przykładów 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 2 generacji.
    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 uwierzytelniających identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.
    4. W sekcji Typ reguły 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ń 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 do tego zasobnika i rozpakowuje pliki komponentu. a następnie skopiuje pliki komponentu do funkcji w Cloud Functions.

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

    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, 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, by 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 Wbudowany edytor.
    4. W edytorze bezpośrednim 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 Google Chat Asystent wiedzy 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 uwierzytelniających z identyfikatorem klienta OAuth na potrzeby uwierzytelniania i autoryzacji.

  4. Edytuj plik env.js, aby ustawić zmienne środowiskowe:

    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 pasowała do regionu ustawionego w pliku env.js, np. us-central1.

Utwórz i wdróż 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 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. Ten region 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 aktywatora wybierz Cloud Pub/Sub.
    5. W sekcji Temat Cloud Pub/Sub wybierz nazwę utworzonego tematu Pub/Sub w formacie 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 Source code (Kod źródłowy) wybierz Zip from 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 w Cloud Functions.

  9. Kliknij przesłany plik ZIP.

  10. Kliknij Wybierz.

  11. Kliknij Wdróż.

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

  12. Zmień przykładowy kod, by 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 Wbudowany edytor.
    4. W edytorze bezpośrednim 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, na przykład 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 sklonowanej 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. Edytuj plik env.js, aby ustawić zmienne środowiskowe:

    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 pasowała 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

Z tej sekcji dowiesz się, jak skonfigurować interfejs Chat API w konsoli Google Cloud przy użyciu informacji o aplikacji Google Chat, w tym jej nazwy i adresu URL aktywatora funkcji w Cloud Functions, do której wysyła 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 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 ustawić go w pozycji włączenia.

  6. W sekcji Funkcjonalność wybierz Dołączanie 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 to identyfikator projektu utworzonego przez Ciebie projektu Cloud.PROJECT_ID

  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, aby wykorzystać je 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 utworzysz pokój czatu i wkleimy 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. Dodaj wiadomości, które będą używane jako źródło danych:

    1. W przeglądarce otwórz przewodnik Programowanie z Google Chat – omówienie.

    2. Skopiuj treść przewodnika i wklej ją 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 Konfiguruj.
      2. Otworzy się nowe okno lub nowa karta przeglądarki z prośbą o wybranie konta Google. Wybierz konto, na którym przeprowadzasz 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 pokoju czatu.
  5. Zadaj pytanie:

    1. Na pasku tworzenia wiadomości wpisz pytanie, np. 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 Asystent wiedzy o AI z Google Chat zna odpowiedź.

Uwagi, alternatywna architektura i kolejne kroki

W tej sekcji omawiamy inne sposoby tworzenia aplikacji Asystent wiedzy o AI.

Firestore, Cloud Storage lub możliwość wywoływania wiadomości z listy 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. Powtarzające się wywoływanie funkcji list messages może też spowodować osiągnięcie przez aplikację Google Chat limitów związanych z interfejsem API.

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

Cloud Storage jest alternatywą 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łną zawartość pliku tekstowego można przesłać do Vertex AI za pomocą Gemini. Wadą jest jednak to, że aktualizacja historii rozmowy wymaga więcej pracy, ponieważ nie można dołączyć do obiektu w Cloud Storage. W tym celu trzeba jedynie go zastąpić. 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 można przetworzyć żądania”. Czasami w UI Google Chat nie wyświetla się żaden komunikat o błędzie, ale aplikacja lub karta Google Chat zwraca nieoczekiwany wynik, na przykład wiadomość na karcie.

Mimo że komunikat o błędzie może nie być wyświetlany w interfejsie Google Chat, dostępne są 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 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 do usunięcia, a następnie kliknij Usuń .
  3. W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.